//////////////////////////////////////////////////////////////////////// /// \class RAT::PMTSelectors::PMTSelector /// /// \brief Base class for PMTSelectors /// /// \author Phil G Jones /// \author Matt Mottram < m.mottram@qmul.ac.uk> -- contact person /// /// REVISION HISTORY: /// - 26/04/2011 : P G Jones - New file /// - 24/01/2013 : P G Jones - Changed to derive from the FitterComponent /// class. Allows variable setting. /// - 2014-03-29 : P G Jones - Updated lifetime, added BeginOfRun method /// - 2014-02-02 : Matt Strait - Minor changes to comply with CIC rules. /// /// \details All PMT Selectors derive from this. /// //////////////////////////////////////////////////////////////////////// #ifndef __RAT_PMTSelector_PMTSelector_hh__ #define __RAT_PMTSelector_PMTSelector_hh__ #include #include #include namespace RAT { class FitterPMT; namespace DS { class EV; class FitVertex; class Run; } namespace PMTSelectors { class PMTSelector : public FitterComponent { public: /// Initialise the selector /// /// @param[in] param Option string, typically ratdb index virtual void Initialise( const std::string& param ) = 0; /// Main Selector function /// /// @param[in] data PMT data to select from /// @param[in] vertex of interest to select by /// @returns selected FitterPMTs virtual std::vector GetSelectedPMTs( const std::vector& data, const DS::FitVertex& vertex ) = 0; }; } //::PMTSelector } //::RAT #endif