//////////////////////////////////////////////////////////////////////// /// \class RAT::PDFs::GV1D /// /// \brief Position based PDF with Group velocity residuals /// /// \author name Phil G Jones /// \author Matt Mottram < m.mottram@qmul.ac.uk> -- contact person /// /// REVISION HISTORY:\n /// 12/08/2011 : P G Jones - New file \n /// 2019/06/16 : Logan Lebanowski - Handle outlier positions /// /// \details Returns probabilities for a 1d pdf using the group velocity /// transit time routine. /// //////////////////////////////////////////////////////////////////////// #ifndef __RAT_PDF_GV1D__ #define __RAT_PDF_GV1D__ #include #include #include class G4PhysicsOrderedFreeVector; namespace RAT { class FitterPMT; namespace DS { class FitVertex; } namespace PDFs { class GV1D : 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( "gv1d" ); } /// Initialise the fProbability values vector void Initialise( const std::string& param ); void BeginOfRun( DS::Run& run ); void EndOfRun( DS::Run& run ); protected: std::string fIndex; ///< Optional database index G4PhysicsOrderedFreeVector* fProbability; ///< PDF in a convenient interpolating structure DU::TimeResidualCalculator fTRCalc; ///< Time residual calculator for a given run size_t fPSUPSystemId; // coordinate system id for Point3D }; } //::PDFs } //::RAT #endif