//////////////////////////////////////////////////////////////////////// /// \class RAT::Methods::PartialEnergy /// /// \brief Energy scaling for partial scint fill /// /// \author Matt Mottram /// /// REVISION HISTORY: /// - 2015-04-24 : Matt Mottram - first instance /// - 2015-07-01 : Matt Mottram - bug fix in default seed /// /// \details This method scales an energy result assuming full /// scintillator fill to one for partial scintillator fill using /// positional and inner_av split material height information. /// Requires both an energy seed (from a fitter assuming full /// scint fill) and a position seed. See DocDB 3133 for details. //////////////////////////////////////////////////////////////////////// #ifndef __RAT_PartialEnergy__ #define __RAT_PartialEnergy__ #include #include namespace RAT { namespace Methods { class PartialEnergy : public SeededMethod { public: virtual std::string GetName() const { return PartialEnergy::Name(); } static std::string Name() { return std::string( "partialEnergy" ); } void Initialise(const std::string& ){}; void BeginOfRun(DS::Run& run); void EndOfRun(DS::Run&) {}; void DefaultSeed(); virtual DS::FitResult GetBestFit(); private: double fSplitZ; std::vector fZPositions; std::vector fZConstants; // Parameter a2 in DocDB 3133 eqn 3 double fZPower; // Parameter a3 in DocDB 3133 eqn 3 double fAbsScaling; // Parameter a1 in DocDB 3133 eqn 3 double fAVInnerRadius; }; // PartialEnergy } // Methods } // RAT #endif // __RAT_PartialEnergy__