/////////////////////////////////////////////////////////////////////// // // Moves seed by requested amount along direction to Sun before // passing to current fitter. // // Author: Matt Mottram // // REVISION HISTORY: // - 2015-10-19: M Mottram - first instance // /////////////////////////////////////////////////////////////////////// #ifndef __RAT_Seed_SolarDriveModifier__ #define __RAT_Seed_SolarDriveModifier__ #include namespace RAT { namespace DS { class EV; class FitResult; } namespace SeedModifiers { class SolarDriveModifier: public SeedModifier { public: virtual ~SolarDriveModifier() {}; // GetName methods for SeedModifierFactory (and ability to call from macro) virtual std::string GetName() const { return SolarDriveModifier::Name(); } static std::string Name() { return std::string( "solarDriveModifier" ); } // Initialise sets fDriveCorrection value to 48 mm void Initialise(const std::string&) { fDriveCorrection = 48.0; }; // Begin and end of run calls are empty void BeginOfRun( DS::Run& ) { }; void EndOfRun( DS::Run& ) { }; // Parameter setters void SetD( const std::string& param, const double value ); // Modify seed by applying a drive correction DS::FitResult ModifySeed(const DS::EV& ev, const DS::FitResult& seedResult); protected: double fDriveCorrection; // correction [mm] applied to seed position along direction to Sun }; } } #endif