///////////////////////////////////////////////////////////////////////// // Conditional return on the reconstructed radius. Returns OKTRUE if the // event is kept or OKFALSE if event is cut. // // Author: J. Walker // // REVISION HISTORY: // 2015-10-28 : J Walker - new file. // ////////////////////////////////////////////////////////////////////////// #ifndef __RAT_RadiusCutProc__ #define __RAT_RadiusCutProc__ #include namespace RAT { class RadiusCutProc : public Processor { public: // Create a new cut processor RadiusCutProc() : Processor("RadiusCutProc") { }; // Destroy the processor virtual ~RadiusCutProc() { }; // Applies the radius command // // param should be radius // value should be the maximum value // throws ParamUnknown if param is not radius // throws ParamInvalid if value is not >=0.0 virtual void SetD( const std::string& param, const double value ); // Applies the fitName and mode commands // // param should be fitName or mode // value should be the fit name to access or mode (cut greater or less) // throws ParamUnknown if param is not fitName mode virtual void SetS( const std::string& param, const std::string& value ); // Process the event // // Conditional on the reconstructed radius // // run: Data structure for the run // ds: Data structure for the event // returns OKTRUE if the event is kept or OKFALSE if event is cut virtual Processor::Result DSEvent( DS::Run& run, DS::Entry& ds ); protected: double fRadius; // Radius to cut on std::string fFitName; // Name of FitResult to access std::string fMode; // Cut mode (cut greater or less than specified radius) }; } // namespace RAT #endif // __RAT_RadiusCutProc__