FairRoot/PandaRoot
PndPidMvaAssociatorTask.h
Go to the documentation of this file.
1 /* ************************************
2  * Author: M. Babai (M.Babai@rug.nl) *
3  * *
4  * pid classifier *
5  * *
6  * Created: 23-03-2010 *
7  * Modified: *
8  * *
9  * ************************************/
10 //#pragma once
11 #ifndef PID_MVA_ASSOCIATOR_H
12 #define PID_MVA_ASSOCIATOR_H
13 
14 // Standard C++ includes
15 #include <string>
16 #include <vector>
17 
18 // Root includes.
19 class TClonesArray;
20 
21 // PANDA and Fair includes.
22 #include "FairTask.h"
23 class FairRootManager;
24 class PndPidCandidate;
25 class PndPidProbability;
26 
27 // MVA headers
28 class PndMvaClassifier;
29 
30 // ========================================================================
32 typedef enum
33  {
35  KNN = 1,// KNN methode
36  LVQ = 2, // LVQ
37  TMVA_MLP = 3, // Multi label TMVA ANN.
38  TMVA_BDT = 4 // Multi label TMVA BDT.
40 
41 // ========================================================================
42 class PndPidMvaAssociatorTask: public FairTask
43 {
44  public:
49 
53  PndPidMvaAssociatorTask(char const* name);
54 
58  virtual ~PndPidMvaAssociatorTask();
59 
63  virtual void Exec(Option_t* option);
64 
68  virtual InitStatus Init();
69 
70  void Register();
71 
72  void Reset();
73 
74  inline void SetVerbose(Bool_t verb);
75 
79  virtual void SetParContainers();
80 
81  virtual void Finish();
82 
86  inline virtual void SetVarNames(std::vector<std::string> const& vNames);
87 
91  inline void SetClassNames(std::vector<std::string> const& clNames);
92 
97  inline void SetWeightFileName(std::string const& wFileName);
98 
103  inline void SetClassifier(Mva_MethodType const& methodT);
104 
109  void SetClassifier(std::string const& methodName);
110 
111  //______________ KNN- Classifier parameter _____________
115  inline void SetNumNeigh(size_t val);
116 
122  inline void SetKnnEventParams(float scFact, double weight);
123 
124  //=============== Private members.
125  private:
126  // Copy const.
128  // Assignment operator.
130 
136  void DoPidMatch(PndPidCandidate& pidcand, PndPidProbability& prob);
137 
138  std::vector<float> const* PrepareEvtVect(PndPidCandidate const& pidcand) const;
139 
140  FairRootManager *fManager;
141 
142  // Classifiers variables and functions
143  /* Set the default path where the weights are stored. */
144  void SetDefaultWeightsPath();
145 
147  std::vector<std::string> fVarNames;
148 
150  std::vector<std::string> fClassNames;
151 
153  std::string fWeightsFileName;
154 
156  size_t fNumNeigh;
157  float fScFact;
158  double fWeight;
159 
162 
165 
166  TClonesArray* fPidChargedCand;
167  TClonesArray* fPidChargedProb;
168  TClonesArray* fMCTrack;
169  // TClonesArray* fPidNeutralCand; //! PndPidCandidate TCA for neutral particles
170  // TClonesArray* fPidNeutralProb; //! PndPidProbability TCA for neutral particles
171  std::string fMethodName;
172 
174 };
175 
177 {
178  fVerbose = verb;
179 };
180 
181 inline void PndPidMvaAssociatorTask::SetVarNames(std::vector<std::string> const& vNames)
182 {
183  fVarNames = vNames;
184 };
185 
186 inline void PndPidMvaAssociatorTask::SetClassNames(std::vector<std::string> const& clNames)
187 {
188  fClassNames = clNames;
189 };
190 
191 inline void PndPidMvaAssociatorTask::SetWeightFileName(std::string const& wFileName)
192 {
193  fWeightsFileName = wFileName;
194 };
195 
197 {
198  fNumNeigh = val;
199 };
200 
202 {
203  fMethodType = methodT;
204 };
205 
206 inline void PndPidMvaAssociatorTask::SetKnnEventParams(float scFact, double weight)
207 {
208  fScFact = scFact;
209  fWeight = weight;
210 };
211 #endif//End of interface definition (PndPidMvaAssociatorTask)
TClonesArray * fMCTrack
PndPidProbability TCA for charged particles.
int fVerbose
Definition: poormantracks.C:24
Mva_MethodType
Method types for selecting which classifier to use.
PndMvaClassifier * fClassifier
MVA classifier object.
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
std::vector< float > const * PrepareEvtVect(PndPidCandidate const &pidcand) const
virtual void Exec(Option_t *option)
void SetKnnEventParams(float scFact, double weight)
TClonesArray * fPidChargedProb
PndPidCandidate TCA for charged particles.
std::string fMethodName
Monte-Carlo Truth track TCA.
TString name
std::vector< std::string > fVarNames
Variable names container.
ClassDef(PndPidMvaAssociatorTask, 0)
size_t fNumNeigh
Number of neighbors.
void SetWeightFileName(std::string const &wFileName)
void SetClassifier(Mva_MethodType const &methodT)
void SetClassNames(std::vector< std::string > const &clNames)
std::vector< std::string > fClassNames
Class names container.
void DoPidMatch(PndPidCandidate &pidcand, PndPidProbability &prob)
std::string fWeightsFileName
Path to the file holding weights (proto-types, examples, ...)
Mva_MethodType fMethodType
MVA Method name.
PndPidMvaAssociatorTask & operator=(PndPidMvaAssociatorTask const &other)
virtual void SetVarNames(std::vector< std::string > const &vNames)