//////////////////////////////////////////////////////////////////////// /// \class RAT::ClassifierProcessor /// /// \brief RAT Processor which invokes classifiers /// /// \author Phil Jones \n /// \author Matt Mottram < m.mottram@qmul.ac.uk> -- contact person /// /// REVISION HISTORY:\n /// - 27/04/2011 : P.Jones - First Revision, new file. /// - 2014-03-29 : P G Jones - Updated lifetime, added BeginOfRun method /// - 2015-03-23 : M Mottram - added ability to seed from previous passes /// /// \details Assembles the classifier components then invokes a classifier, /// based on command inputs /// //////////////////////////////////////////////////////////////////////// #ifndef __RAT_ClassifierProcessor__ #define __RAT_ClassifierProcessor__ #include #include namespace RAT { namespace Classifiers { class Classifier; } namespace PDFs { class PDF; } namespace Optimisers { class Optimiser; } namespace PMTSelectors { class PMTSelector; } class ClassifierProcessor : public Processor { public: /// Constructor, gets Factory instances ClassifierProcessor(); /// Destructor deletes the components virtual ~ClassifierProcessor(); /// Called at the start of a run virtual void BeginOfRun( DS::Run& run ); /// Called to invoke the ClassifierProcessor virtual Processor::Result DSEvent( DS::Run& run, DS::Entry& ds ); /// Called at the end of a run virtual void EndOfRun( DS::Run& run ); /// Set a int command /// /// @param[in] param is classifier, optimiser, pdf, seed or selector or something to be passed to the component /// @param[in] value is any value (component will check validity) virtual void SetI( const std::string& param, const int value ); /// Set a double command /// /// @param[in] param is classifier, optimiser, pdf, seed or selector or something to be passed to the component /// @param[in] value is any value (component will check validity) virtual void SetD( const std::string& param, const double value ); /// Set a string command /// /// @param[in] param is classifier, optimiser, pdf, seed or selector or something to be passed to the component /// @param[in] value is any value (component will check validity) virtual void SetS( const std::string& param, const std::string& value ); protected: std::vector< std::string > fSeeds; ///< Name of seeds must be full fit result name, optional std::vector< int > fSeedPass; ///< Pass number of seeds, defaults to current pass std::string fNickName; ///< Optional alternative name for the classifier Classifiers::Classifier* fClassifier; ///< The classifier PDFs::PDF* fPDF; ///< The PDF (optional) Optimisers::Optimiser* fOptimiser; ///< The optimiser (optional) PMTSelectors::PMTSelector* fSelector; ///< The selector (optional) }; } // ::RAT #endif