ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/MVATools.h
Revision: 1.12
Committed: Thu Aug 2 12:30:55 2012 UTC (12 years, 9 months ago) by fabstoec
Content type: text/plain
Branch: MAIN
Changes since 1.11: +130 -103 lines
Log Message:
updated MVATools

File Contents

# User Rev Content
1 mingyang 1.1 //--------------------------------------------------------------------------------------------------
2     // $Id $
3     //
4     // MVATools
5     //
6     // Helper Class for photon Identification decisions.
7     //
8     // Authors: M.Yang 2011/10/12
9     //--------------------------------------------------------------------------------------------------
10    
11     #ifndef MITPHYSICS_UTILS_MVATOOLS_H
12     #define MITPHYSICS_UTILS_MVATOOLS_H
13    
14     #include "MitAna/DataTree/interface/Photon.h"
15     #include "MitAna/DataTree/interface/PhotonCol.h"
16     #include "MitAna/DataTree/interface/TrackCol.h"
17     #include "MitAna/DataTree/interface/Electron.h"
18     #include "MitAna/DataTree/interface/ElectronCol.h"
19     #include "MitAna/DataTree/interface/BaseVertex.h"
20     #include "MitAna/DataTree/interface/DecayParticleCol.h"
21     #include "MitAna/DataTree/interface/VertexCol.h"
22     #include "MitAna/DataTree/interface/BeamSpotCol.h"
23     #include "MitAna/DataTree/interface/TriggerObjectCol.h"
24     #include "MitAna/DataTree/interface/MCParticleCol.h"
25     #include "MitAna/DataTree/interface/SuperCluster.h"
26     #include "MitAna/DataTree/interface/SuperClusterCol.h"
27     #include "MitCommon/MathTools/interface/MathUtils.h"
28 mingyang 1.8 #include "MitAna/DataTree/interface/PFCandidateCol.h"
29 mingyang 1.1
30     class TRandom3;
31     namespace TMVA {//MVA
32     class Reader;
33     }
34    
35     namespace mithep {
36     class MVATools {
37 fabstoec 1.12 public:
38 mingyang 1.4 MVATools();
39 fabstoec 1.12
40     // MVA Typles
41     enum IdMVAType {
42     kNone = 0,
43     k2011IdMVA,
44     k2012IdMVA_globe,
45     k2012IdMVA, // same as above, but more logical name...
46     k2011IdMVA_HZg
47     };
48 mingyang 1.4
49     //--------------------------
50     //MVA
51     //--------------------------
52    
53 fabstoec 1.12 //void InitializeMVA(int VariableType, TString EndcapWeights,TString BarrelWeights);
54     void InitializeMVA(IdMVAType type);
55 mingyang 1.1
56 fabstoec 1.12 // removed this (fab): if a mod want to cuty on BDT values, compute them in the mod using GetMVAbdtValue(..) and make the cut in the mod
57     //Bool_t PassMVASelection (const Photon* p,const Vertex* vtx,const TrackCol* trackCol,const VertexCol* vtxCol,Double_t _tRho,Float_t bdtCutBarrel, Float_t bdtCutEndcap, const ElectronCol* els=0, Bool_t applyElectronVeto=kTRUE);
58     // removed this (fab): no needed naywhere...
59     //Int_t PassElectronVetoInt(const Photon* p, const ElectronCol* els);
60    
61     Double_t GetMVAbdtValue (const Photon* p,const Vertex* vtx,const TrackCol* trackCol,const VertexCol* vtxCol,Double_t _tRho, const PFCandidateCol *fPFCands=NULL ,const ElectronCol* els=0, Bool_t applyElectronVeto=kTRUE);
62    
63     // these we can remove at some point
64     /* Float_t GetMVAbdtValue_2011 (const Photon* p,const Vertex* vtx,const TrackCol* trackCol,const VertexCol* vtxCol,Double_t _tRho, const ElectronCol* els=0, Bool_t applyElectronVeto=kTRUE); */
65     /* Float_t GetMVAbdtValue_2012_globe(const Photon* p,const Vertex* vtx,const TrackCol* trackCol,const VertexCol* vtxCol,Double_t _tRho, const PFCandidateCol *fPFCands=NULL ,const ElectronCol* els=0, Bool_t applyElectronVeto=kTRUE); */
66    
67    
68     private:
69    
70     TMVA::Reader *fReaderEndcap;
71     TMVA::Reader *fReaderBarrel;
72    
73     IdMVAType fMVAType;
74     std::vector<float> mvaVars;
75     std::map<std::string,float*> mvaVarMapEB;
76     std::map<std::string,float*> mvaVarMapEE;
77    
78     // -------------------------------------------------
79     // fab: these guys should all go away...
80     //MVA Variables
81     /* float HoE; */
82     /* float covIEtaIEta; */
83     /* float tIso1abs; */
84     /* float tIso3abs; */
85     /* float tIso2abs; */
86     /* float R9; */
87    
88     /* float absIsoEcal; */
89     /* float absIsoHcal; */
90     /* float RelEMax; */
91     /* float RelETop; */
92     /* float RelEBottom; */
93     /* float RelELeft; */
94     /* float RelERight; */
95     /* float RelE2x5Max; */
96     /* float RelE2x5Top; */
97     /* float RelE2x5Bottom; */
98     /* float RelE2x5Left; */
99     /* float RelE2x5Right; */
100     /* float RelE5x5; */
101    
102     /* float EtaWidth; */
103     /* float PhiWidth; */
104     /* float CoviEtaiPhi; */
105     /* float CoviPhiiPhi; */
106    
107     /* float NVertexes; */
108     /* float RelPreshowerEnergy; */
109    
110     /* //variable for v2 and v1 */
111     /* float RelIsoEcal; */
112     /* float RelIsoHcal; */
113     /* float tIso1; */
114     /* float tIso3; */
115     /* float tIso2; */
116    
117     /* float ScEta; */
118    
119     /* //variables used to compute mva variables */
120    
121     /* Bool_t PassElecVeto; */
122    
123     /* double ecalIso3; */
124     /* double ecalIso4; */
125     /* double hcalIso4; */
126    
127     /* unsigned int wVtxInd; */
128    
129     /* double trackIso1; */
130    
131     /* // track iso only */
132     /* double trackIso3; */
133    
134     /* // track iso worst vtx */
135     /* double trackIso2; */
136    
137     /* double combIso1; */
138     /* double combIso2; */
139    
140     /* double RawEnergy; */
141    
142     /* double dRTrack; */
143    
144     /* //spectator variables */
145     /* double Pt_MVA; */
146     /* double ScEta_MVA; */
147    
148     /* Bool_t isbarrel; */
149    
150     /* // check which category it is ... */
151     /* int _tCat; */
152    
153     /* //1201 variable */
154     /* float myphoton_pfchargedisogood03; */
155     /* float myphoton_pfchargedisobad03; */
156     /* float myphoton_pfphotoniso03; */
157     /* float myphoton_sieie; */
158     /* float myphoton_sieip; */
159     /* float myphoton_etawidth; */
160     /* float myphoton_phiwidth; */
161     /* float myphoton_r9; */
162     /* float myphoton_s4ratio; */
163     /* float myphoton_SCeta; */
164     /* float event_rho; */
165     /* float myphoton_ESEffSigmaRR; */
166    
167     //MVA
168     /* Bool_t PassMVA; */
169     /* //Float_t bdt; -> removed this, we should not have this a memeber variable !!! (fab) */
170     /* Int_t PassElecVetoInt; */
171 mingyang 1.8
172    
173 fabstoec 1.12 TMVA::Reader *reader;
174     ClassDef(MVATools, 0)
175     };
176 mingyang 1.1 }
177    
178     #endif