25 |
|
#include "MitAna/DataTree/interface/SuperCluster.h" |
26 |
|
#include "MitAna/DataTree/interface/SuperClusterCol.h" |
27 |
|
#include "MitCommon/MathTools/interface/MathUtils.h" |
28 |
< |
|
28 |
> |
#include "MitAna/DataTree/interface/PFCandidateCol.h" |
29 |
|
|
30 |
|
class TRandom3; |
31 |
|
namespace TMVA {//MVA |
34 |
|
|
35 |
|
namespace mithep { |
36 |
|
class MVATools { |
37 |
< |
public: |
38 |
< |
MVATools(); |
39 |
< |
|
40 |
< |
|
41 |
< |
//-------------------------- |
42 |
< |
//MVA |
43 |
< |
//-------------------------- |
44 |
< |
//void InitializeMVA(int VariableType, TString EndcapWeights,TString BarrelWeights); |
45 |
< |
//Bool_t PassMVASelection(const Photon* p,const Vertex* vtx,const TrackCol* trackCol,const VertexCol* vtxCol,Double_t _tRho,const ElectronCol *els); |
46 |
< |
|
47 |
< |
void InitializeMVA(int VariableType, TString EndcapWeights,TString BarrelWeights); |
48 |
< |
Bool_t PassMVASelection(const Photon* p,const Vertex* vtx,const TrackCol* trackCol,const VertexCol* vtxCol,Double_t _tRho,const ElectronCol* els,double MVAPtMin, Float_t bdtCutBarrel, Float_t bdtCutEndcap); |
49 |
< |
Int_t PassElectronVetoInt(const Photon* p, const ElectronCol* els); |
50 |
< |
Float_t GetMVAbdtValue(const Photon* p,const Vertex* vtx,const TrackCol* trackCol,const VertexCol* vtxCol,Double_t _tRho,const ElectronCol* els); |
51 |
< |
|
52 |
< |
TMVA::Reader *fReaderEndcap; |
53 |
< |
TMVA::Reader *fReaderBarrel; |
54 |
< |
|
55 |
< |
//MVA variables 0 |
56 |
< |
Float_t HoE; |
57 |
< |
Float_t covIEtaIEta; |
58 |
< |
Float_t tIso1; |
59 |
< |
Float_t tIso3; |
60 |
< |
Float_t tIso2; |
61 |
< |
Float_t R9; |
62 |
< |
|
63 |
< |
//MVA variables 1 |
64 |
< |
float RelIsoEcal; |
65 |
< |
float RelIsoHcal; |
66 |
< |
|
67 |
< |
float RelEMax; |
68 |
< |
float RelETop; |
69 |
< |
float RelEBottom; |
70 |
< |
float RelELeft; |
71 |
< |
float RelERight; |
72 |
< |
float RelE2x5Max; |
73 |
< |
float RelE2x5Top; |
74 |
< |
float RelE2x5Bottom; |
75 |
< |
float RelE2x5Left; |
76 |
< |
float RelE2x5Right; |
77 |
< |
float RelE5x5; |
78 |
< |
|
79 |
< |
//MVA variables 2 |
80 |
< |
float EtaWidth; |
81 |
< |
float PhiWidth; |
82 |
< |
float CoviEtaiPhi; |
83 |
< |
float CoviPhiiPhi; |
84 |
< |
float RelPreshowerEnergy; |
85 |
< |
|
86 |
< |
//variables used to compute mva variables |
87 |
< |
|
88 |
< |
Bool_t PassElecVeto; |
89 |
< |
|
90 |
< |
double ecalIso3; |
91 |
< |
double ecalIso4; |
92 |
< |
double hcalIso4; |
93 |
< |
|
94 |
< |
unsigned int wVtxInd; |
95 |
< |
|
96 |
< |
double trackIso1; |
97 |
< |
|
98 |
< |
// track iso only |
99 |
< |
double trackIso3; |
100 |
< |
|
101 |
< |
// track iso worst vtx |
102 |
< |
double trackIso2; |
103 |
< |
|
104 |
< |
double combIso1; |
105 |
< |
double combIso2; |
106 |
< |
|
107 |
< |
double RawEnergy; |
108 |
< |
|
109 |
< |
double dRTrack; |
110 |
< |
|
111 |
< |
//spectator variables |
112 |
< |
double Pt_MVA; |
113 |
< |
double ScEta_MVA; |
114 |
< |
|
115 |
< |
Bool_t isbarrel; |
37 |
> |
public: |
38 |
> |
MVATools(); |
39 |
|
|
40 |
< |
// check which category it is ... |
41 |
< |
int _tCat; |
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 |
> |
|
49 |
> |
//-------------------------- |
50 |
> |
//MVA |
51 |
> |
//-------------------------- |
52 |
> |
|
53 |
> |
//void InitializeMVA(int VariableType, TString EndcapWeights,TString BarrelWeights); |
54 |
> |
void InitializeMVA(IdMVAType type); |
55 |
> |
|
56 |
> |
// 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 |
< |
TMVA::Reader *reader; |
170 |
< |
Float_t bdt; |
171 |
< |
Int_t PassElecVetoInt; |
168 |
> |
/* Bool_t PassMVA; */ |
169 |
> |
/* //Float_t bdt; -> removed this, we should not have this a memeber variable !!! (fab) */ |
170 |
> |
/* Int_t PassElecVetoInt; */ |
171 |
> |
|
172 |
|
|
173 |
< |
ClassDef(MVATools, 0) // Muon tools |
173 |
> |
TMVA::Reader *reader; |
174 |
> |
ClassDef(MVATools, 0) |
175 |
|
}; |
176 |
|
} |
177 |
|
|