//////////////////////////////////////////////////////////////////////// /// \class RAT::PMTSelectors::PMTCalSelector /// /// \brief Select PMTs tagged as good by the PMT calibration /// /// \author J. Caravaca -- contact person /// /// REVISION HISTORY:\n /// 2017/4/5: J. Caravaca. - add PMTCal selector for first time \n /// 2014/4/25: T. Kaptanoglu - add crosstalk to PMTCal selector /// 2017/10/13: B. Liggins - add css to PMTCal selector /// /// \details Returns the set of well calibrated PMTs /// //////////////////////////////////////////////////////////////////////// #ifndef __RAT_PMTSelector_PMTCalSelector__ #define __RAT_PMTSelector_PMTCalSelector__ #include #include namespace RAT { namespace PMTSelectors { class PMTCalSelector : public PMTSelector { public: /// Return the selector name std::string GetName() const { return Name(); }; /// Return the selector name static std::string Name() { return std::string( "PMTCalSelector" ); } /// Initialise the selector /// /// @param[in] param option setting void Initialise( const std::string& param ); void BeginOfRun( DS::Run& ) { } void EndOfRun( DS::Run& ) { } /// Set flags to enable/disable checks void SetZ( const std::string& param, bool value ); /// Set PMT status masks to check against void SetI( const std::string& param, int value ); /// Main Selector function /// /// @param[in] data pmt data from the fitter component /// @param[in] vertex of the fit std::vector GetSelectedPMTs( const std::vector& data, const DS::FitVertex& vertex ); private: bool fapplyECA; bool fapplyPCA; bool fapplyCHS; bool fapplyCrossTalk; bool fapplyCSS; int fECAMask; int fPCAMask; }; // PMTCalSelector } // namespace PMTSelectors } // namespace RAT #endif // __RAT_PMTSelector_PMTCalSelector__