//////////////////////////////////////////////////////////////////////// /// \class RAT::PDFs::SimpleTiming /// /// \brief A simple PDF that uses the scintillator emission time profile /// /// \author Phil G Jones /// \author Matt Mottram < m.mottram@qmul.ac.uk> -- contact person /// /// REVISION HISTORY:\n /// 26/04/2011 : P G Jones - New file \n /// 2019/06/16 : Logan Lebanowski - Handle outlier positions /// /// \details The PDF retrieves the scintillator emission time profile. The /// proposed vertex to PMT straight line time is calculated and /// taken away from the hit time. This time residual is then compared /// against the emission time profile to give the probability. /// //////////////////////////////////////////////////////////////////////// #ifndef __RAT_PDF_SimpleTiming_ #define __RAT_PDF_SimpleTiming_ #include #include #include class G4PhysicsOrderedFreeVector; namespace RAT { class FitterPMT; namespace DS { class FitVertex; } namespace PDFs { class SimpleTiming : public PDF { public: double GetProbability( const FitterPMT& pmt, const DS::FitVertex& vertex ); std::string GetName() const { return Name(); } static std::string Name() { return std::string( "simpleTiming" ); } /// Initialise the scintTiming PDF void Initialise( const std::string& param ); void BeginOfRun( DS::Run& run ); void EndOfRun( DS::Run& ) { } protected: std::string fIndex; ///< Optional database index G4PhysicsOrderedFreeVector* fProbability; ///< Scintillator emission time DU::TimeResidualCalculator fTRCalc; ///< Time residual calculator for a given run }; } //::PDFs } //::RAT #endif