//////////////////////////////////////////////////////////////////////////////////// /// \class RAT::Classifiers::NearAVAngularClassifier /// /// \brief Calculates the ratio value for use in classifying events as NearAV or not /// /// \author name: Krish Majumdar --contact person /// /// REVISION HISTORY:\n /// 2012-10-22 : K Majumdar - New file \n /// 2013-01-22 : K Majumdar - revisions for pull request: removing underscores, tab/space consistency, definition of pi from CLHEP /// 2013-01-29 : K Majumdar - revisions for pull request: changed to CamelCase /// 2014-10-15 : K Majumdar - added comments for Doxygen /// 2016-06-20 : M Mottram - Use PMT selection to estimate event orientation /// /// \details The fraction of PMT hits with PMT-centre-event angle in some small range /// can be used as a basis for classifying an event as near-AV or not near-AV /// //////////////////////////////////////////////////////////////////////////////////// #ifndef __RAT_Classifiers_NearAVAngularClassifier_ #define __RAT_Classifiers_NearAVAngularClassifier_ #include #include #include namespace RAT { namespace DS { class Entry; class EV; } namespace Classifiers { class NearAVAngularClassifier : public Classifier { public: /// Get the method's name /// /// @return the methods name virtual std::string GetName() const {return NearAVAngularClassifier::Name();} /// @copydoc GetName() static std::string Name() {return std::string("nearAVAngular");} void Initialise(const std::string&) {} /// Load the table from the database void BeginOfRun(DS::Run&); void EndOfRun(DS::Run&); /// Calculate and return the classification result virtual DS::ClassifierResult GetClassification(); private: size_t fNhitsCut; ///< minimum Nhits required to reliably calculate ratio value double fDipRegionStart; ///< lower limit of the dip region for ratio calculation double fDipRegionEnd; ///< upper limit of the dip region for ratio calculation }; } // End of namespace Classifiers } // End of namespace RAT #endif