FairRoot/PandaRoot
PndMvaClassifier.h
Go to the documentation of this file.
1 /* **********************************************
2  * MVA classifiers interface. *
3  * Author: M.Babai@rug.nl *
4  * LICENSE: *
5  * Version: *
6  * License: *
7  * **********************************************
8  */
9 //#pragma once
10 #ifndef PND_MVA_CLASSIFIER_H
11 #define PND_MVA_CLASSIFIER_H
12 
13 // C++ includes
14 #include <iostream>
15 #include <vector>
16 #include <map>
17 #include <utility>
18 #include <algorithm>
19 #include <cmath>
20 #include <cassert>
21 
22 // PND PID includes.
23 #include "PndMvaDataSet.h"
24 #include "PndMvaUtil.h"
25 
30 {
31  public:
33 
38  explicit PndMvaClassifier(std::string const& InPut,
39  std::vector<std::string> const& ClassNames,
40  std::vector<std::string> const& VarNames);
42  virtual ~PndMvaClassifier();
43 
49  virtual void GetMvaValues( std::vector<float> EvtData,
50  std::map<std::string, float>& result ) = 0;
55  virtual std::string *Classify( std::vector<float> EvtData ) = 0;
56 
57  //virtual std::string *Classify( std::vector<float> EvtData,
58  // std::map<std::string, float>& result ) = 0;
59 
60  virtual void Initialize();
61 
63  inline std::vector<PndMvaClass> const& GetClasses() const;
64 
66  inline std::vector<PndMvaVariable> const& GetVariables() const;
67 
68  protected:
70  virtual void NormalizeEvent(std::vector<float>& EvtVector) const;
71 
72  inline void SetAppType(AppType t);
73 
76 
77  private:
78  // To avoid mistakes.
79  PndMvaClassifier (PndMvaClassifier const& other);
81 };
82 
84 {
86 };
87 //End of class interface
88 //___________________ Inline implement ___________
90 inline std::vector<PndMvaClass> const& PndMvaClassifier::GetClasses() const
91 {
92  return m_dataSets.GetClasses();
93 };
94 
96 inline std::vector<PndMvaVariable> const& PndMvaClassifier::GetVariables() const
97 {
98  return m_dataSets.GetVars();
99 };
100 #endif
PndMvaClassifier(std::string const &InPut, std::vector< std::string > const &ClassNames, std::vector< std::string > const &VarNames)
Constructor.
void SetAppType(AppType t)
virtual void GetMvaValues(std::vector< float > EvtData, std::map< std::string, float > &result)=0
std::vector< PndMvaVariable > const & GetVariables() const
Get the list of available variables.
void SetAppType(AppType t)
PndMvaDataSet m_dataSets
Data set. Holds event Weights.
virtual std::string * Classify(std::vector< float > EvtData)=0
virtual void NormalizeEvent(std::vector< float > &EvtVector) const
Normalize the given event vector.
PndMvaClassifier & operator=(PndMvaClassifier const &other)
virtual void Initialize()
std::vector< PndMvaClass > const & GetClasses() const
Get the list of available classes (labels).
TTree * t
Definition: bump_analys.C:13
virtual ~PndMvaClassifier()
Destructor.
std::vector< PndMvaVariable > const & GetVars() const
Get the list of available variables.
AppType
Definition: PndMvaDataSet.h:38
std::vector< PndMvaClass > const & GetClasses() const
Get the list of available classes (labels).