FairRoot/PandaRoot
PndProjectedKNN.h
Go to the documentation of this file.
1 /* ************************************
2  * Author: M. Babai (M.Babai@rug.nl) *
3  * *
4  * pid classifier *
5  * *
6  * Modified: *
7  * *
8  * ************************************/
9 #pragma once
10 #ifndef PND_PROJECTED_KNN_H
11 #define PND_PROJECTED_KNN_H
12 
13 // Local Headers
14 #include "PndKnnClassify.h"
15 
17 {
18  public:
20  explicit PndProjectedKNN(std::string const& inputFile,
21  std::vector<std::string> const& classNames,
22  std::vector<std::string> const& varNames,
23  std::vector< std::vector<std::string> > const& varCombinations);
25  virtual ~PndProjectedKNN();
26 
28  void GetMvaValues(std::vector<float> eventData,
29  std::map<std::string, float>& result);
30 
32  std::string* Classify(std::vector<float> EvtData);
33 
35  inline void SetEvtParam(float const scFact, double const weight);
36 
38  inline void SetKnn(unsigned int const val);
39 
41  void InitKNN();
42 
43  private:
45  PndProjectedKNN( PndProjectedKNN const& other);
47 
48  // Free allocated memory.
49  void destroy();
50 
51  std::vector<std::vector<std::string> > m_varCombinations;
52 
53  // First = classifier, Second = parameter indices
54  std::vector <std::pair<PndKnnClassify*, std::vector<int>*> > m_classifiers;
55 
56  float m_ScaleFact;
57  double m_weight;
58  unsigned int m_knn;
59 };
60 //End, class interface
61 
62 inline void PndProjectedKNN::SetEvtParam(float const scFact, double const weight)
63 {
64  m_ScaleFact = scFact;
65  m_weight = weight;
66 };
67 
68 inline void PndProjectedKNN::SetKnn(unsigned int const val)
69 {
70  m_knn = val;
71 };
72 #endif
void InitKNN()
Init classifiers.
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
PndProjectedKNN & operator=(PndProjectedKNN const &other)
std::vector< std::vector< std::string > > m_varCombinations
void SetKnn(unsigned int const val)
Set number of neighbors.
double m_weight
Scale factor.
void SetEvtParam(float const scFact, double const weight)
Set params.
void GetMvaValues(std::vector< float > eventData, std::map< std::string, float > &result)
Get pdf&#39;s.
std::string * Classify(std::vector< float > EvtData)
Classify Current event.
std::vector< std::pair< PndKnnClassify *, std::vector< int > * > > m_classifiers
virtual ~PndProjectedKNN()
Destructor.
unsigned int m_knn
Weight.
PndProjectedKNN(std::string const &inputFile, std::vector< std::string > const &classNames, std::vector< std::string > const &varNames, std::vector< std::vector< std::string > > const &varCombinations)
Constructor.