//////////////////////////////////////////////////////////////////////// /// \class RAT::Classifiers::OptimisedClassifier /// /// \brief All classifiers with optimisers derive from this /// /// \author Phil G Jones /// \author Evelina Arushanova -- contact person /// \author Matt Mottram -- contact person /// /// REVISION HISTORY:\n /// 2013-10-26 : P G Jones - New file. \n /// /// \details Adds extra optimiser code, and forces definitions of setters /// for optimised values. /// //////////////////////////////////////////////////////////////////////// #ifndef __RAT_Classifier_OptimisedClassifier_ #define __RAT_Classifier_OptimisedClassifier_ #include #include #include namespace RAT { namespace Optimisers { class Optimiser; } namespace Classifiers { //Note virtual inheritance. class OptimisedClassifier : public OptimisedComponent, public virtual Classifier { public: /// Constructor OptimisedClassifier() {} /// Empty virtual destructor virtual ~OptimisedClassifier() {} /// To set a fit quality FOM void SetFOM( const std::string& fomName, const double value ) { fClassifierResult.SetFOM( fomName, value ); } /// To retrieve a fit quality FOM double GetFOM( const std::string& fomName ) { return fClassifierResult.GetFOM( fomName ); } /// Converts the vector of params into the fFitResult virtual void SetParams( const std::vector& params ) = 0; /// Converts the vector of errors into the fFitResult virtual void SetPositiveErrors( const std::vector& errors ) = 0; virtual void SetNegativeErrors( const std::vector& errors ) = 0; }; } //::Classifier } //::RAT #endif