/* ************************************ * Author: M. Babai (M.Babai@rug.nl) * * * * pid classifier * * * * Modified: * * * * ************************************/ #ifndef PND_PROJECTED_KNN_H #define PND_PROJECTED_KNN_H // Local Headers #include "PndKnnClassify.h" class PndProjectedKNN: public PndGpidClassifier { public: //! Constructor PndProjectedKNN(const std::string& inputFile, const std::vector& classNames, const std::vector& varNames, const std::vector< std::vector >& varCombinations); //! Destructor virtual ~PndProjectedKNN(); //! Classify void GetMvaValues(std::vector eventData, std::map& result); const std::string& Classify(std::vector EvtData)const; //! Set params inline void SetEvtParam(const float scFact, const double weight) {m_ScaleFact = scFact; m_weight = weight; }; //! Set number of neighbors inline void SetKnn(const unsigned int N) {m_knn = N;}; //! Init classifiers void InitKNN(); private: //! to avoid mistakes. PndProjectedKNN(const PndProjectedKNN& other); inline PndProjectedKNN& operator= (const PndProjectedKNN& other); ///Free allocated memory. void destroy(); std::vector > m_varCombinations; // First = classifier, Second = parameter indices std::vector *> > m_classifiers; float m_ScaleFact; //! Scale factor. double m_weight; //! Weight. unsigned int m_knn;//! Number of neigbours. }; #endif//End, class interface