////////////////////////////////////////////////////////////////////////
/// \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