52 |
|
fTMVAReader[i] = new TMVA::Reader( "!Color:!Silent:Error" ); |
53 |
|
fTMVAReader[i]->SetVerbose(kTRUE); |
54 |
|
|
55 |
+ |
if (type == kV2) { |
56 |
+ |
fTMVAReader[i]->AddVariable( "TkNchi2", &fMVAVar_MuTkNchi2 ); |
57 |
+ |
fTMVAReader[i]->AddVariable( "GlobalNchi2", &fMVAVar_MuGlobalNchi2 ); |
58 |
+ |
fTMVAReader[i]->AddVariable( "NValidHits", &fMVAVar_MuNValidHits ); |
59 |
+ |
fTMVAReader[i]->AddVariable( "NTrackerHits", &fMVAVar_MuNTrackerHits ); |
60 |
+ |
fTMVAReader[i]->AddVariable( "NPixelHits", &fMVAVar_MuNPixelHits ); |
61 |
+ |
fTMVAReader[i]->AddVariable( "NMatches", &fMVAVar_MuNMatches ); |
62 |
+ |
fTMVAReader[i]->AddVariable( "D0", &fMVAVar_MuD0 ); |
63 |
+ |
fTMVAReader[i]->AddVariable( "IP3d", &fMVAVar_MuIP3d ); |
64 |
+ |
fTMVAReader[i]->AddVariable( "IP3dSig", &fMVAVar_MuIP3dSig ); |
65 |
+ |
fTMVAReader[i]->AddVariable( "TrkKink", &fMVAVar_MuTrkKink ); |
66 |
+ |
fTMVAReader[i]->AddVariable( "SegmentCompatibility", &fMVAVar_MuSegmentCompatibility ); |
67 |
+ |
} |
68 |
+ |
|
69 |
|
if (type == kV3) { |
70 |
|
fTMVAReader[i]->AddVariable( "TkNchi2", &fMVAVar_MuTkNchi2 ); |
71 |
|
fTMVAReader[i]->AddVariable( "GlobalNchi2", &fMVAVar_MuGlobalNchi2 ); |
90 |
|
} |
91 |
|
fTMVAReader[i]->AddVariable( "EmS9EnergyOverPt", &fMVAVar_MuEmS9EnergyOverPt ); |
92 |
|
} |
93 |
+ |
|
94 |
+ |
if (type == kV8) { |
95 |
+ |
fTMVAReader[i]->AddVariable( "TkNchi2", &fMVAVar_MuTkNchi2 ); |
96 |
+ |
fTMVAReader[i]->AddVariable( "GlobalNchi2", &fMVAVar_MuGlobalNchi2 ); |
97 |
+ |
fTMVAReader[i]->AddVariable( "NValidHits", &fMVAVar_MuNValidHits ); |
98 |
+ |
fTMVAReader[i]->AddVariable( "NTrackerHits", &fMVAVar_MuNTrackerHits ); |
99 |
+ |
fTMVAReader[i]->AddVariable( "NPixelHits", &fMVAVar_MuNPixelHits ); |
100 |
+ |
fTMVAReader[i]->AddVariable( "NMatches", &fMVAVar_MuNMatches ); |
101 |
+ |
fTMVAReader[i]->AddVariable( "D0", &fMVAVar_MuD0 ); |
102 |
+ |
fTMVAReader[i]->AddVariable( "IP3d", &fMVAVar_MuIP3d ); |
103 |
+ |
fTMVAReader[i]->AddVariable( "IP3dSig", &fMVAVar_MuIP3dSig ); |
104 |
+ |
fTMVAReader[i]->AddVariable( "TrkKink", &fMVAVar_MuTrkKink ); |
105 |
+ |
fTMVAReader[i]->AddVariable( "SegmentCompatibility", &fMVAVar_MuSegmentCompatibility ); |
106 |
+ |
fTMVAReader[i]->AddVariable( "CaloCompatibility", &fMVAVar_MuCaloCompatibility ); |
107 |
+ |
fTMVAReader[i]->AddVariable( "HadEnergyOverPt", &fMVAVar_MuHadEnergyOverPt ); |
108 |
+ |
fTMVAReader[i]->AddVariable( "EmEnergyOverPt", &fMVAVar_MuEmEnergyOverPt ); |
109 |
+ |
fTMVAReader[i]->AddVariable( "HadS9EnergyOverPt", &fMVAVar_MuHadS9EnergyOverPt ); |
110 |
+ |
fTMVAReader[i]->AddVariable( "EmS9EnergyOverPt", &fMVAVar_MuEmS9EnergyOverPt ); |
111 |
+ |
fTMVAReader[i]->AddVariable( "ChargedIso03OverPt", &fMVAVar_MuChargedIso03OverPt ); |
112 |
+ |
fTMVAReader[i]->AddVariable( "NeutralIso03OverPt", &fMVAVar_MuNeutralIso03OverPt ); |
113 |
+ |
fTMVAReader[i]->AddVariable( "ChargedIso04OverPt", &fMVAVar_MuChargedIso04OverPt ); |
114 |
+ |
fTMVAReader[i]->AddVariable( "NeutralIso04OverPt", &fMVAVar_MuNeutralIso04OverPt ); |
115 |
+ |
} |
116 |
|
|
117 |
|
if (i==0) fTMVAReader[i]->BookMVA(fMethodname , Subdet0Pt10To14p5Weights ); |
118 |
|
if (i==1) fTMVAReader[i]->BookMVA(fMethodname , Subdet1Pt10To14p5Weights ); |
136 |
|
|
137 |
|
//-------------------------------------------------------------------------------------------------- |
138 |
|
Double_t MuonIDMVA::MVAValue(Double_t MuPt , Double_t MuEta, |
139 |
< |
Double_t MuTkNchi2, |
140 |
< |
Double_t MuGlobalNchi2, |
141 |
< |
Double_t MuNValidHits, |
142 |
< |
Double_t MuNTrackerHits, |
143 |
< |
Double_t MuNPixelHits, |
144 |
< |
Double_t MuNMatches, |
145 |
< |
Double_t MuD0, |
146 |
< |
Double_t MuIP3d, |
147 |
< |
Double_t MuIP3dSig, |
148 |
< |
Double_t MuTrkKink, |
149 |
< |
Double_t MuSegmentCompatibility, |
150 |
< |
Double_t MuCaloCompatibility, |
151 |
< |
Double_t MuHadEnergyOverPt, |
152 |
< |
Double_t MuHoEnergyOverPt, |
153 |
< |
Double_t MuEmEnergyOverPt, |
154 |
< |
Double_t MuHadS9EnergyOverPt, |
155 |
< |
Double_t MuHoS9EnergyOverPt, |
156 |
< |
Double_t MuEmS9EnergyOverPt |
139 |
> |
Double_t MuTkNchi2, |
140 |
> |
Double_t MuGlobalNchi2, |
141 |
> |
Double_t MuNValidHits, |
142 |
> |
Double_t MuNTrackerHits, |
143 |
> |
Double_t MuNPixelHits, |
144 |
> |
Double_t MuNMatches, |
145 |
> |
Double_t MuD0, |
146 |
> |
Double_t MuIP3d, |
147 |
> |
Double_t MuIP3dSig, |
148 |
> |
Double_t MuTrkKink, |
149 |
> |
Double_t MuSegmentCompatibility, |
150 |
> |
Double_t MuCaloCompatibility, |
151 |
> |
Double_t MuHadEnergyOverPt, |
152 |
> |
Double_t MuHoEnergyOverPt, |
153 |
> |
Double_t MuEmEnergyOverPt, |
154 |
> |
Double_t MuHadS9EnergyOverPt, |
155 |
> |
Double_t MuHoS9EnergyOverPt, |
156 |
> |
Double_t MuEmS9EnergyOverPt, |
157 |
> |
Double_t MuChargedIso03OverPt, |
158 |
> |
Double_t MuNeutralIso03OverPt, |
159 |
> |
Double_t MuChargedIso04OverPt, |
160 |
> |
Double_t MuNeutralIso04OverPt |
161 |
|
) { |
162 |
|
|
163 |
|
if (!fIsInitialized) { |
192 |
|
fMVAVar_MuHadS9EnergyOverPt = MuHadS9EnergyOverPt; |
193 |
|
fMVAVar_MuHoS9EnergyOverPt = MuHoS9EnergyOverPt; |
194 |
|
fMVAVar_MuEmS9EnergyOverPt = MuEmS9EnergyOverPt; |
195 |
< |
|
195 |
> |
fMVAVar_MuChargedIso03OverPt = MuChargedIso03OverPt; |
196 |
> |
fMVAVar_MuNeutralIso03OverPt = MuNeutralIso03OverPt; |
197 |
> |
fMVAVar_MuChargedIso04OverPt = MuChargedIso04OverPt; |
198 |
> |
fMVAVar_MuNeutralIso04OverPt = MuNeutralIso04OverPt; |
199 |
|
|
200 |
|
Double_t mva = -9999; |
201 |
|
TMVA::Reader *reader = 0; |
212 |
|
|
213 |
|
mva = reader->EvaluateMVA( fMethodname ); |
214 |
|
|
215 |
+ |
Bool_t printdebug = kFALSE; |
216 |
+ |
if (printdebug == kTRUE) { |
217 |
+ |
std::cout << "Debug Muon MVA: " |
218 |
+ |
<< MuPt << " " << MuEta << " --> MVABin " << MVABin << " : " |
219 |
+ |
<< fMVAVar_MuTkNchi2 << " " |
220 |
+ |
<< fMVAVar_MuGlobalNchi2 << " " |
221 |
+ |
<< fMVAVar_MuNValidHits << " " |
222 |
+ |
<< fMVAVar_MuNTrackerHits << " " |
223 |
+ |
<< fMVAVar_MuNPixelHits << " " |
224 |
+ |
<< fMVAVar_MuNMatches << " " |
225 |
+ |
<< fMVAVar_MuD0 << " " |
226 |
+ |
<< fMVAVar_MuIP3d << " " |
227 |
+ |
<< fMVAVar_MuIP3dSig << " " |
228 |
+ |
<< fMVAVar_MuTrkKink << " " |
229 |
+ |
<< fMVAVar_MuSegmentCompatibility << " " |
230 |
+ |
<< fMVAVar_MuCaloCompatibility << " " |
231 |
+ |
<< fMVAVar_MuHadEnergyOverPt << " " |
232 |
+ |
<< fMVAVar_MuHoEnergyOverPt << " " |
233 |
+ |
<< fMVAVar_MuEmEnergyOverPt << " " |
234 |
+ |
<< fMVAVar_MuHadS9EnergyOverPt << " " |
235 |
+ |
<< fMVAVar_MuHoS9EnergyOverPt << " " |
236 |
+ |
<< fMVAVar_MuEmS9EnergyOverPt << " " |
237 |
+ |
<< fMVAVar_MuChargedIso03OverPt << " " |
238 |
+ |
<< fMVAVar_MuNeutralIso03OverPt << " " |
239 |
+ |
<< fMVAVar_MuChargedIso04OverPt << " " |
240 |
+ |
<< fMVAVar_MuNeutralIso04OverPt << " " |
241 |
+ |
<< " === : === " |
242 |
+ |
<< mva |
243 |
+ |
<< std::endl; |
244 |
+ |
} |
245 |
+ |
|
246 |
|
return mva; |
247 |
|
} |
248 |
|
|