95 |
|
||type == kIDIsoCombined) { |
96 |
|
ExpectedNBins = 6; |
97 |
|
} else if (type == kIDEGamma2012TrigV0 || |
98 |
< |
type == kIDEGamma2012NonTrigV0) { |
98 |
> |
type == kIDEGamma2012NonTrigV0 || |
99 |
> |
type == kIDHWW2012TrigV0) { |
100 |
|
ExpectedNBins = 6; |
101 |
|
} else if (type == kIsoRingsV0) { |
102 |
|
ExpectedNBins = 4; |
184 |
|
|
185 |
|
} |
186 |
|
|
187 |
< |
if (type == kIDEGamma2012TrigV0 || type == kIDEGamma2012NonTrigV0 ) { |
187 |
> |
if (type == kIDEGamma2012TrigV0 || type == kIDHWW2012TrigV0) { |
188 |
|
// Pure tracking variables |
189 |
|
tmpTMVAReader->AddVariable("fbrem", &fMVAVar_EleFBrem); |
190 |
|
tmpTMVAReader->AddVariable("kfchi2", &fMVAVar_EleKFTrkChiSqr); |
191 |
< |
tmpTMVAReader->AddVariable("kfhits", &fMVAVar_EleKFTrkNHits); //Don't have this in BAMBU |
192 |
< |
tmpTMVAReader->AddVariable("kfhitsall", &fMVAVar_EleKFTrkNHits); |
191 |
> |
tmpTMVAReader->AddVariable("kfhits", &fMVAVar_EleKFTrkNLayers); //Don't have this in (BAMBU <= 025) |
192 |
> |
if(type == kIDEGamma2012TrigV0) |
193 |
> |
tmpTMVAReader->AddVariable("kfhitsall", &fMVAVar_EleKFTrkNHits); |
194 |
|
tmpTMVAReader->AddVariable("gsfchi2", &fMVAVar_EleGsfTrackChi2OverNdof); |
195 |
|
tmpTMVAReader->AddVariable("deta", &fMVAVar_EleDEtaIn); |
196 |
|
tmpTMVAReader->AddVariable("dphi", &fMVAVar_EleDPhiIn); |
204 |
|
tmpTMVAReader->AddVariable("HoE", &fMVAVar_EleHoverE); |
205 |
|
tmpTMVAReader->AddVariable("EoP", &fMVAVar_EleEOverP); |
206 |
|
tmpTMVAReader->AddVariable("IoEmIoP", &fMVAVar_EleOneOverEMinusOneOverP); |
207 |
< |
tmpTMVAReader->AddVariable("eleEoPout", &fMVAVar_EleEEleClusterOverPout); |
208 |
< |
tmpTMVAReader->AddVariable("EoPout", &fMVAVar_EleESeedClusterOverPout); //we have this only in BAMBU |
209 |
< |
tmpTMVAReader->AddVariable("PreShowerOverRaw",&fMVAVar_ElePreShowerOverRaw); |
207 |
> |
tmpTMVAReader->AddVariable("eleEoPout", &fMVAVar_EleEEleClusterOverPout); //Don't have this in (BAMBU <= 025) |
208 |
> |
if(type == kIDEGamma2012TrigV0) |
209 |
> |
tmpTMVAReader->AddVariable("EoPout", &fMVAVar_EleESeedClusterOverPout); |
210 |
> |
if (i == 2 || i == 5) { |
211 |
> |
tmpTMVAReader->AddVariable( "PreShowerOverRaw", &fMVAVar_ElePreShowerOverRaw ); |
212 |
> |
} |
213 |
> |
tmpTMVAReader->AddVariable( "d0", &fMVAVar_EleD0); |
214 |
> |
tmpTMVAReader->AddVariable( "ip3d", &fMVAVar_EleIP3d); |
215 |
|
|
216 |
|
tmpTMVAReader->AddSpectator("eta", &fMVAVar_EleEta); |
217 |
|
tmpTMVAReader->AddSpectator("pt", &fMVAVar_ElePt); |
218 |
|
} |
219 |
< |
|
219 |
> |
|
220 |
> |
if (type == kIDEGamma2012NonTrigV0 ) { |
221 |
> |
// Pure tracking variables |
222 |
> |
tmpTMVAReader->AddVariable("fbrem", &fMVAVar_EleFBrem); |
223 |
> |
tmpTMVAReader->AddVariable("kfchi2", &fMVAVar_EleKFTrkChiSqr); |
224 |
> |
tmpTMVAReader->AddVariable("kfhitsall", &fMVAVar_EleKFTrkNHits); |
225 |
> |
tmpTMVAReader->AddVariable("gsfchi2", &fMVAVar_EleGsfTrackChi2OverNdof); |
226 |
> |
tmpTMVAReader->AddVariable("deta", &fMVAVar_EleDEtaIn); |
227 |
> |
tmpTMVAReader->AddVariable("dphi", &fMVAVar_EleDPhiIn); |
228 |
> |
tmpTMVAReader->AddVariable("detacalo", &fMVAVar_EledEtaCalo); |
229 |
> |
tmpTMVAReader->AddVariable("see", &fMVAVar_EleSigmaIEtaIEta); |
230 |
> |
tmpTMVAReader->AddVariable("spp", &fMVAVar_EleSigmaIPhiIPhi); |
231 |
> |
tmpTMVAReader->AddVariable("etawidth", &fMVAVar_EleSCEtaWidth); |
232 |
> |
tmpTMVAReader->AddVariable("phiwidth", &fMVAVar_EleSCPhiWidth); |
233 |
> |
tmpTMVAReader->AddVariable("e1x5e5x5", &fMVAVar_EleE1x5OverE5x5); |
234 |
> |
tmpTMVAReader->AddVariable("R9", &fMVAVar_EleR9); |
235 |
> |
tmpTMVAReader->AddVariable("HoE", &fMVAVar_EleHoverE); |
236 |
> |
tmpTMVAReader->AddVariable("EoP", &fMVAVar_EleEOverP); |
237 |
> |
tmpTMVAReader->AddVariable("IoEmIoP", &fMVAVar_EleOneOverEMinusOneOverP); |
238 |
> |
tmpTMVAReader->AddVariable("EoPout", &fMVAVar_EleESeedClusterOverPout); |
239 |
> |
if (i==2 || i==5) { |
240 |
> |
tmpTMVAReader->AddVariable("PreShowerOverRaw",&fMVAVar_ElePreShowerOverRaw); |
241 |
> |
} |
242 |
> |
tmpTMVAReader->AddSpectator("eta", &fMVAVar_EleEta); |
243 |
> |
tmpTMVAReader->AddSpectator("pt", &fMVAVar_ElePt); |
244 |
> |
} |
245 |
> |
|
246 |
|
if (type == kIsoRingsV0) { |
247 |
|
tmpTMVAReader->AddVariable( "ChargedIso_DR0p0To0p1", &fMVAVar_ChargedIso_DR0p0To0p1 ); |
248 |
|
tmpTMVAReader->AddVariable( "ChargedIso_DR0p1To0p2", &fMVAVar_ChargedIso_DR0p1To0p2 ); |
281 |
|
//Default is to return the first bin |
282 |
|
uint bin = 0; |
283 |
|
|
284 |
+ |
//return the first bin if not using binned version |
285 |
+ |
if (!fUseBinnedVersion) return 0; |
286 |
+ |
|
287 |
|
if (fMVAType == ElectronIDMVA::kBaseline |
288 |
|
||fMVAType == ElectronIDMVA::kNoIPInfo |
289 |
|
||fMVAType == ElectronIDMVA::kWithIPInfo |
303 |
|
if (pt >= 10 && fabs(eta) >= 1.479) bin = 3; |
304 |
|
} |
305 |
|
|
306 |
< |
if (fMVAType == ElectronIDMVA::kIDEGamma2012TrigV0 || |
271 |
< |
fMVAType == ElectronIDMVA::kIDEGamma2012NonTrigV0 ) { |
306 |
> |
if (fMVAType == ElectronIDMVA::kIDEGamma2012NonTrigV0) { |
307 |
|
bin = 0; |
308 |
|
if (pt < 10 && fabs(eta) < 0.8) bin = 0; |
309 |
|
if (pt < 10 && fabs(eta) >= 0.8 && fabs(eta) < 1.479 ) bin = 1; |
313 |
|
if (pt >= 10 && fabs(eta) >= 1.479) bin = 5; |
314 |
|
} |
315 |
|
|
316 |
+ |
if (fMVAType == ElectronIDMVA::kIDEGamma2012TrigV0 || |
317 |
+ |
fMVAType == ElectronIDMVA::kIDHWW2012TrigV0) { |
318 |
+ |
bin = 0; |
319 |
+ |
if (pt < 20 && fabs(eta) < 0.8) bin = 0; |
320 |
+ |
if (pt < 20 && fabs(eta) >= 0.8 && fabs(eta) < 1.479 ) bin = 1; |
321 |
+ |
if (pt < 20 && fabs(eta) >= 1.479) bin = 2; |
322 |
+ |
if (pt >= 20 && fabs(eta) < 0.8) bin = 3; |
323 |
+ |
if (pt >= 20 && fabs(eta) >= 0.8 && fabs(eta) < 1.479 ) bin = 4; |
324 |
+ |
if (pt >= 20 && fabs(eta) >= 1.479) bin = 5; |
325 |
+ |
} |
326 |
+ |
|
327 |
|
return bin; |
328 |
|
} |
329 |
|
|
353 |
|
return -9999; |
354 |
|
} |
355 |
|
|
310 |
– |
Int_t subdet = 0; |
311 |
– |
if (fabs(EleEta) < 1.0) subdet = 0; |
312 |
– |
else if (fabs(EleEta) < 1.479) subdet = 1; |
313 |
– |
else subdet = 2; |
314 |
– |
Int_t ptBin = 0; |
315 |
– |
if (ElePt > 20.0) ptBin = 1; |
316 |
– |
|
356 |
|
//set all input variables |
357 |
|
fMVAVar_EleSigmaIEtaIEta = EleSigmaIEtaIEta; |
358 |
|
fMVAVar_EleDEtaIn = EleDEtaIn; |
372 |
|
|
373 |
|
Double_t mva = -9999; |
374 |
|
TMVA::Reader *reader = 0; |
375 |
< |
Int_t MVABin = -1; |
337 |
< |
if (subdet == 0 && ptBin == 0) MVABin = 0; |
338 |
< |
if (subdet == 1 && ptBin == 0) MVABin = 1; |
339 |
< |
if (subdet == 2 && ptBin == 0) MVABin = 2; |
340 |
< |
if (subdet == 0 && ptBin == 1) MVABin = 3; |
341 |
< |
if (subdet == 1 && ptBin == 1) MVABin = 4; |
342 |
< |
if (subdet == 2 && ptBin == 1) MVABin = 5; |
343 |
< |
assert(MVABin >= 0 && MVABin <= 5); |
344 |
< |
reader = fTMVAReader[MVABin]; |
375 |
> |
reader = fTMVAReader[GetMVABin( EleEta, ElePt)]; |
376 |
|
|
377 |
|
mva = reader->EvaluateMVA( fMethodname ); |
378 |
|
|
421 |
|
Double_t Rho = 0; |
422 |
|
if (!(TMath::IsNaN(PileupEnergyDensity) || isinf(PileupEnergyDensity))) Rho = PileupEnergyDensity; |
423 |
|
|
393 |
– |
Int_t subdet = 0; |
394 |
– |
if (fabs(EleEta) < 1.0) subdet = 0; |
395 |
– |
else if (fabs(EleEta) < 1.479) subdet = 1; |
396 |
– |
else subdet = 2; |
397 |
– |
Int_t ptBin = 0; |
398 |
– |
if (ElePt > 20.0) ptBin = 1; |
399 |
– |
|
424 |
|
//set all input variables |
425 |
|
fMVAVar_EleSigmaIEtaIEta = EleSigmaIEtaIEta; |
426 |
|
fMVAVar_EleDEtaIn = EleDEtaIn; |
473 |
|
|
474 |
|
Double_t mva = -9999; |
475 |
|
TMVA::Reader *reader = 0; |
476 |
< |
Int_t MVABin = -1; |
453 |
< |
if (subdet == 0 && ptBin == 0) MVABin = 0; |
454 |
< |
if (subdet == 1 && ptBin == 0) MVABin = 1; |
455 |
< |
if (subdet == 2 && ptBin == 0) MVABin = 2; |
456 |
< |
if (subdet == 0 && ptBin == 1) MVABin = 3; |
457 |
< |
if (subdet == 1 && ptBin == 1) MVABin = 4; |
458 |
< |
if (subdet == 2 && ptBin == 1) MVABin = 5; |
459 |
< |
assert(MVABin >= 0 && MVABin <= 5); |
460 |
< |
reader = fTMVAReader[MVABin]; |
461 |
< |
|
476 |
> |
reader = fTMVAReader[GetMVABin( EleEta, ElePt)]; |
477 |
|
mva = reader->EvaluateMVA( fMethodname ); |
478 |
|
|
479 |
|
if (printDebug == kTRUE) { |
480 |
|
std::cout << "Debug Electron MVA: " |
481 |
< |
<< ElePt << " " << EleEta << " " << " --> MVABin " << MVABin << " : " |
481 |
> |
<< ElePt << " " << EleEta << " " << " --> MVABin " << GetMVABin( EleEta, ElePt) << " : " |
482 |
|
<< fMVAVar_EleSigmaIEtaIEta << " " |
483 |
|
<< fMVAVar_EleDEtaIn << " " |
484 |
|
<< fMVAVar_EleDPhiIn << " " |
516 |
|
return mva; |
517 |
|
} |
518 |
|
|
519 |
+ |
Double_t ElectronIDMVA::MVAValue_IsoRings( Double_t ElePt, |
520 |
+ |
Double_t EleSCEta, |
521 |
+ |
Double_t ChargedIso_DR0p0To0p1, |
522 |
+ |
Double_t ChargedIso_DR0p1To0p2, |
523 |
+ |
Double_t ChargedIso_DR0p2To0p3, |
524 |
+ |
Double_t ChargedIso_DR0p3To0p4, |
525 |
+ |
Double_t ChargedIso_DR0p4To0p5, |
526 |
+ |
Double_t GammaIso_DR0p0To0p1, |
527 |
+ |
Double_t GammaIso_DR0p1To0p2, |
528 |
+ |
Double_t GammaIso_DR0p2To0p3, |
529 |
+ |
Double_t GammaIso_DR0p3To0p4, |
530 |
+ |
Double_t GammaIso_DR0p4To0p5, |
531 |
+ |
Double_t NeutralHadronIso_DR0p0To0p1, |
532 |
+ |
Double_t NeutralHadronIso_DR0p1To0p2, |
533 |
+ |
Double_t NeutralHadronIso_DR0p2To0p3, |
534 |
+ |
Double_t NeutralHadronIso_DR0p3To0p4, |
535 |
+ |
Double_t NeutralHadronIso_DR0p4To0p5, |
536 |
+ |
Bool_t printDebug) { |
537 |
+ |
|
538 |
+ |
if (fMVAType != ElectronIDMVA::kIsoRingsV0) { |
539 |
+ |
std::cout << "Error: This function is only supported for MVAType == kIsoRingsV0.\n" << std::endl; |
540 |
+ |
assert(kFALSE); |
541 |
+ |
} |
542 |
+ |
|
543 |
+ |
fMVAVar_ElePt = ElePt; |
544 |
+ |
fMVAVar_EleEta = EleSCEta; |
545 |
+ |
fMVAVar_ChargedIso_DR0p0To0p1 = ChargedIso_DR0p0To0p1; |
546 |
+ |
fMVAVar_ChargedIso_DR0p1To0p2 = ChargedIso_DR0p1To0p2; |
547 |
+ |
fMVAVar_ChargedIso_DR0p2To0p3 = ChargedIso_DR0p2To0p3; |
548 |
+ |
fMVAVar_ChargedIso_DR0p3To0p4 = ChargedIso_DR0p3To0p4; |
549 |
+ |
fMVAVar_ChargedIso_DR0p4To0p5 = ChargedIso_DR0p4To0p5; |
550 |
+ |
fMVAVar_GammaIso_DR0p0To0p1 = GammaIso_DR0p0To0p1; |
551 |
+ |
fMVAVar_GammaIso_DR0p1To0p2 = GammaIso_DR0p1To0p2; |
552 |
+ |
fMVAVar_GammaIso_DR0p2To0p3 = GammaIso_DR0p2To0p3; |
553 |
+ |
fMVAVar_GammaIso_DR0p3To0p4 = GammaIso_DR0p3To0p4; |
554 |
+ |
fMVAVar_GammaIso_DR0p4To0p5 = GammaIso_DR0p4To0p5; |
555 |
+ |
fMVAVar_NeutralHadronIso_DR0p0To0p1 = NeutralHadronIso_DR0p0To0p1; |
556 |
+ |
fMVAVar_NeutralHadronIso_DR0p1To0p2 = NeutralHadronIso_DR0p1To0p2; |
557 |
+ |
fMVAVar_NeutralHadronIso_DR0p2To0p3 = NeutralHadronIso_DR0p2To0p3; |
558 |
+ |
fMVAVar_NeutralHadronIso_DR0p3To0p4 = NeutralHadronIso_DR0p3To0p4; |
559 |
+ |
fMVAVar_NeutralHadronIso_DR0p4To0p5 = NeutralHadronIso_DR0p4To0p5; |
560 |
+ |
|
561 |
+ |
Double_t mva = -9999; |
562 |
+ |
TMVA::Reader *reader = 0; |
563 |
+ |
|
564 |
+ |
if (printDebug == kTRUE) { |
565 |
+ |
std::cout <<" -> BIN: " << fMVAVar_EleEta << " " << fMVAVar_ElePt << " : " << GetMVABin( fMVAVar_EleEta , fMVAVar_ElePt) << std::endl; |
566 |
+ |
} |
567 |
+ |
reader = fTMVAReader[GetMVABin( fMVAVar_EleEta , fMVAVar_ElePt)]; |
568 |
+ |
mva = reader->EvaluateMVA( fMethodname ); |
569 |
+ |
|
570 |
+ |
if (printDebug == kTRUE) { |
571 |
+ |
|
572 |
+ |
std::cout << "Debug Electron MVA-ISO: "; |
573 |
+ |
std::cout << fMVAVar_ChargedIso_DR0p0To0p1 << " " |
574 |
+ |
<< fMVAVar_ChargedIso_DR0p1To0p2 << " " |
575 |
+ |
<< fMVAVar_ChargedIso_DR0p2To0p3 << " " |
576 |
+ |
<< fMVAVar_ChargedIso_DR0p3To0p4 << " " |
577 |
+ |
<< fMVAVar_ChargedIso_DR0p4To0p5 << " " |
578 |
+ |
<< fMVAVar_GammaIso_DR0p0To0p1 << " " |
579 |
+ |
<< fMVAVar_GammaIso_DR0p1To0p2 << " " |
580 |
+ |
<< fMVAVar_GammaIso_DR0p2To0p3 << " " |
581 |
+ |
<< fMVAVar_GammaIso_DR0p3To0p4 << " " |
582 |
+ |
<< fMVAVar_GammaIso_DR0p4To0p5 << " " |
583 |
+ |
<< fMVAVar_NeutralHadronIso_DR0p0To0p1 << " " |
584 |
+ |
<< fMVAVar_NeutralHadronIso_DR0p1To0p2 << " " |
585 |
+ |
<< fMVAVar_NeutralHadronIso_DR0p2To0p3 << " " |
586 |
+ |
<< fMVAVar_NeutralHadronIso_DR0p3To0p4 << " " |
587 |
+ |
<< fMVAVar_NeutralHadronIso_DR0p4To0p5 << " " |
588 |
+ |
<< std::endl; |
589 |
+ |
std::cout << "MVA: " << mva << " " |
590 |
+ |
<< std::endl; |
591 |
+ |
} |
592 |
+ |
return mva; |
593 |
+ |
} |
594 |
+ |
|
595 |
+ |
Double_t ElectronIDMVA::MVAValue_IDNonTrig( Double_t ElePt, |
596 |
+ |
Double_t EleSCEta, |
597 |
+ |
Double_t EleFBrem, |
598 |
+ |
Double_t EleKFTrkChiSqr, |
599 |
+ |
Double_t EleKFTrkNHits, |
600 |
+ |
Double_t EleGsfTrackChi2OverNdof, |
601 |
+ |
Double_t EleDEtaIn, |
602 |
+ |
Double_t EleDPhiIn, |
603 |
+ |
Double_t EledEtaCalo, |
604 |
+ |
Double_t EleSigmaIEtaIEta, |
605 |
+ |
Double_t EleSigmaIPhiIPhi, |
606 |
+ |
Double_t EleSCEtaWidth, |
607 |
+ |
Double_t EleSCPhiWidth, |
608 |
+ |
Double_t EleE1x5OverE5x5, |
609 |
+ |
Double_t EleR9, |
610 |
+ |
Double_t EleHoverE, |
611 |
+ |
Double_t EleEOverP, |
612 |
+ |
Double_t EleOneOverEMinusOneOverP, |
613 |
+ |
Double_t EleESeedClusterOverPout, |
614 |
+ |
Double_t ElePreShowerOverRaw, |
615 |
+ |
Bool_t printDebug) { |
616 |
+ |
|
617 |
+ |
if (fMVAType != ElectronIDMVA::kIDEGamma2012NonTrigV0) { |
618 |
+ |
std::cout << "Error: This function is only supported for MVAType == kIDEGamma2012NonTrigV0.\n" << std::endl; |
619 |
+ |
assert(kFALSE); |
620 |
+ |
} |
621 |
+ |
|
622 |
+ |
fMVAVar_ElePt = ElePt; |
623 |
+ |
fMVAVar_EleEta = EleSCEta; |
624 |
+ |
fMVAVar_EleFBrem = EleFBrem; |
625 |
+ |
fMVAVar_EleKFTrkChiSqr = EleKFTrkChiSqr; |
626 |
+ |
fMVAVar_EleKFTrkNHits = EleKFTrkNHits; |
627 |
+ |
fMVAVar_EleGsfTrackChi2OverNdof = EleGsfTrackChi2OverNdof; |
628 |
+ |
fMVAVar_EleDEtaIn = EleDEtaIn; |
629 |
+ |
fMVAVar_EleDPhiIn = EleDPhiIn; |
630 |
+ |
fMVAVar_EledEtaCalo = EledEtaCalo; |
631 |
+ |
fMVAVar_EleSigmaIEtaIEta = EleSigmaIEtaIEta; |
632 |
+ |
fMVAVar_EleSigmaIPhiIPhi = EleSigmaIPhiIPhi; |
633 |
+ |
fMVAVar_EleSCEtaWidth = EleSCEtaWidth; |
634 |
+ |
fMVAVar_EleSCPhiWidth = EleSCPhiWidth; |
635 |
+ |
fMVAVar_EleE1x5OverE5x5 = EleE1x5OverE5x5; |
636 |
+ |
fMVAVar_EleR9 = EleR9; |
637 |
+ |
fMVAVar_EleHoverE = EleHoverE; |
638 |
+ |
fMVAVar_EleEOverP = EleEOverP; |
639 |
+ |
fMVAVar_EleOneOverEMinusOneOverP = EleOneOverEMinusOneOverP; |
640 |
+ |
fMVAVar_EleESeedClusterOverPout = EleESeedClusterOverPout; |
641 |
+ |
fMVAVar_ElePreShowerOverRaw = ElePreShowerOverRaw; |
642 |
+ |
|
643 |
+ |
Double_t mva = -9999; |
644 |
+ |
TMVA::Reader *reader = 0; |
645 |
+ |
|
646 |
+ |
if (printDebug == kTRUE) { |
647 |
+ |
std::cout <<" -> BIN: " << fMVAVar_EleEta << " " << fMVAVar_ElePt << " : " << GetMVABin( fMVAVar_EleEta , fMVAVar_ElePt) << std::endl; |
648 |
+ |
} |
649 |
+ |
reader = fTMVAReader[GetMVABin( fMVAVar_EleEta , fMVAVar_ElePt)]; |
650 |
+ |
mva = reader->EvaluateMVA( fMethodname ); |
651 |
+ |
|
652 |
+ |
if (printDebug == kTRUE) { |
653 |
+ |
std::cout << "Debug Electron MVA: "; |
654 |
+ |
std::cout << " fbrem " << fMVAVar_EleFBrem |
655 |
+ |
<< " kfchi2 " << fMVAVar_EleKFTrkChiSqr |
656 |
+ |
<< " kfhits " << fMVAVar_EleKFTrkNHits |
657 |
+ |
<< " kfhitsall " << fMVAVar_EleKFTrkNLayers |
658 |
+ |
<< " gsfchi2 " << fMVAVar_EleGsfTrackChi2OverNdof |
659 |
+ |
<< " deta " << fMVAVar_EleDEtaIn |
660 |
+ |
<< " dphi " << fMVAVar_EleDPhiIn |
661 |
+ |
<< " detacalo " << fMVAVar_EledEtaCalo |
662 |
+ |
<< " see " << fMVAVar_EleSigmaIEtaIEta |
663 |
+ |
<< " spp " << fMVAVar_EleSigmaIPhiIPhi |
664 |
+ |
<< " etawidth " << fMVAVar_EleSCEtaWidth |
665 |
+ |
<< " phiwidth " << fMVAVar_EleSCPhiWidth |
666 |
+ |
<< " e1x5e5x5 " << fMVAVar_EleE1x5OverE5x5 |
667 |
+ |
<< " R9 " << fMVAVar_EleR9 |
668 |
+ |
<< " HoE " << fMVAVar_EleHoverE |
669 |
+ |
<< " EoP " << fMVAVar_EleEOverP |
670 |
+ |
<< " IoEmIoP " << fMVAVar_EleOneOverEMinusOneOverP |
671 |
+ |
<< " eleEoPout " << fMVAVar_EleESeedClusterOverPout |
672 |
+ |
<< " EoPout " << fMVAVar_EleESeedClusterOverPout |
673 |
+ |
<< " d0 " << fMVAVar_EleD0 |
674 |
+ |
<< " ip3d " << fMVAVar_EleIP3d |
675 |
+ |
<< " eta " << fMVAVar_EleEta |
676 |
+ |
<< " pt " << fMVAVar_ElePt << std::endl; |
677 |
+ |
std::cout << "MVA: " << mva << " " |
678 |
+ |
<< std::endl; |
679 |
+ |
} |
680 |
+ |
return mva; |
681 |
+ |
} |
682 |
+ |
|
683 |
|
|
684 |
|
//-------------------------------------------------------------------------------------------------- |
685 |
|
Double_t ElectronIDMVA::MVAValue(const Electron *ele, const Vertex *vertex, |
693 |
|
return -9999; |
694 |
|
} |
695 |
|
|
517 |
– |
Int_t subdet = 0; |
518 |
– |
if (ele->SCluster()->AbsEta() < 1.0) subdet = 0; |
519 |
– |
else if (ele->SCluster()->AbsEta() < 1.479) subdet = 1; |
520 |
– |
else subdet = 2; |
521 |
– |
Int_t ptBin = 0; |
522 |
– |
if (ele->Pt() > 20.0) ptBin = 1; |
523 |
– |
|
696 |
|
Double_t Rho = 0; |
697 |
|
if (!(TMath::IsNaN(PileupEnergyDensity->At(0)->Rho()) || isinf(PileupEnergyDensity->At(0)->Rho()))) Rho = PileupEnergyDensity->At(0)->Rho(); |
698 |
|
|
745 |
|
+ Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleGammaIsoVetoEtaStrip04,ele->SCluster()->Eta())) / ele->Pt(); |
746 |
|
|
747 |
|
//Additional vars |
748 |
< |
fMVAVar_EleEEleClusterOverPout = 0; |
749 |
< |
fMVAVar_EleKFTrkChiSqr = ele->TrackerTrk()->RChi2(); |
750 |
< |
fMVAVar_EleKFTrkNHits = ele->TrackerTrk()->NHits(); |
748 |
> |
fMVAVar_EleEEleClusterOverPout = ele->EEleClusterOverPout(); |
749 |
> |
if (ele->TrackerTrk()) { |
750 |
> |
fMVAVar_EleKFTrkChiSqr = ele->TrackerTrk()->RChi2(); |
751 |
> |
fMVAVar_EleKFTrkNHits = ele->TrackerTrk()->NHits(); |
752 |
> |
} else { |
753 |
> |
fMVAVar_EleKFTrkChiSqr = -1; |
754 |
> |
fMVAVar_EleKFTrkNHits = 0; |
755 |
> |
} |
756 |
|
fMVAVar_EleE1x5OverE5x5 = ele->SCluster()->Seed()->E1x5() / ele->SCluster()->Seed()->E5x5(); |
757 |
|
|
758 |
|
|
582 |
– |
|
583 |
– |
|
759 |
|
Double_t mva = -9999; |
760 |
|
TMVA::Reader *reader = 0; |
761 |
< |
Int_t MVABin = -1; |
587 |
< |
if (subdet == 0 && ptBin == 0) MVABin = 0; |
588 |
< |
if (subdet == 1 && ptBin == 0) MVABin = 1; |
589 |
< |
if (subdet == 2 && ptBin == 0) MVABin = 2; |
590 |
< |
if (subdet == 0 && ptBin == 1) MVABin = 3; |
591 |
< |
if (subdet == 1 && ptBin == 1) MVABin = 4; |
592 |
< |
if (subdet == 2 && ptBin == 1) MVABin = 5; |
593 |
< |
assert(MVABin >= 0 && MVABin <= 5); |
594 |
< |
reader = fTMVAReader[MVABin]; |
595 |
< |
|
761 |
> |
reader = fTMVAReader[GetMVABin( ele->SCluster()->Eta(), ele->Pt())]; |
762 |
|
mva = reader->EvaluateMVA( fMethodname ); |
763 |
|
|
764 |
|
if (printDebug == kTRUE) { |
599 |
– |
// std::cout << "Debug Electron MVA: " |
600 |
– |
// << ele->Pt() << " " << ele->Eta() << " " << ele->Phi() << " : " |
601 |
– |
// << ele->Pt() << " " << ele->SCluster()->AbsEta() << " --> MVABin " << MVABin << " : " |
602 |
– |
// << fMVAVar_EleSigmaIEtaIEta << " " |
603 |
– |
// << fMVAVar_EleDEtaIn << " " |
604 |
– |
// << fMVAVar_EleDPhiIn << " " |
605 |
– |
// << fMVAVar_EleHoverE << " " |
606 |
– |
// << fMVAVar_EleD0 << " " |
607 |
– |
// << fMVAVar_EleDZ << " " |
608 |
– |
// << fMVAVar_EleFBrem << " " |
609 |
– |
// << fMVAVar_EleEOverP << " " |
610 |
– |
// << fMVAVar_EleESeedClusterOverPout << " " |
611 |
– |
// << fMVAVar_EleSigmaIPhiIPhi << " " |
612 |
– |
// << fMVAVar_EleNBrem << " " |
613 |
– |
// << fMVAVar_EleOneOverEMinusOneOverP << " " |
614 |
– |
// << fMVAVar_EleESeedClusterOverPIn << " " |
615 |
– |
// << fMVAVar_EleIP3d << " " |
616 |
– |
// << fMVAVar_EleIP3dSig << " " |
617 |
– |
// << fMVAVar_EleGsfTrackChi2OverNdof << " " |
618 |
– |
// << fMVAVar_EledEtaCalo << " " |
619 |
– |
// << fMVAVar_EledPhiCalo << " " |
620 |
– |
// << fMVAVar_EleR9 << " " |
621 |
– |
// << fMVAVar_EleSCEtaWidth << " " |
622 |
– |
// << fMVAVar_EleSCPhiWidth << " " |
623 |
– |
// << fMVAVar_EleCovIEtaIPhi << " " |
624 |
– |
// << fMVAVar_ElePreShowerOverRaw << " " |
625 |
– |
// << fMVAVar_EleChargedIso03OverPt << " " |
626 |
– |
// << fMVAVar_EleNeutralHadronIso03OverPt << " " |
627 |
– |
// << fMVAVar_EleGammaIso03OverPt << " " |
628 |
– |
// << fMVAVar_EleChargedIso04OverPt << " " |
629 |
– |
// << fMVAVar_EleNeutralHadronIso04OverPt << " " |
630 |
– |
// << fMVAVar_EleGammaIso04OverPt << " " |
631 |
– |
// << " === : === " |
632 |
– |
// << mva << " " |
633 |
– |
// << std::endl; |
765 |
|
std::cout << "Debug Electron MVA: " |
766 |
|
<< ele->Pt() << " " << ele->Eta() << " " << ele->Phi() << " : " |
767 |
< |
<< ele->Pt() << " " << ele->SCluster()->AbsEta() << " --> MVABin " << MVABin << " : " |
767 |
> |
<< ele->Pt() << " " << ele->SCluster()->AbsEta() << " --> MVABin " << GetMVABin( ele->SCluster()->Eta(), ele->Pt()) << " : " |
768 |
|
<< fMVAVar_EleSigmaIEtaIEta << " " |
769 |
|
<< fMVAVar_EleDEtaIn << " " |
770 |
|
<< fMVAVar_EleDPhiIn << " " |
811 |
|
return -9999; |
812 |
|
} |
813 |
|
|
683 |
– |
Int_t subdet = 0; |
684 |
– |
if (ele->SCluster()->AbsEta() < 1.0) subdet = 0; |
685 |
– |
else if (ele->SCluster()->AbsEta() < 1.479) subdet = 1; |
686 |
– |
else subdet = 2; |
687 |
– |
Int_t ptBin = 0; |
688 |
– |
if (ele->Pt() > 20.0) ptBin = 1; |
689 |
– |
|
814 |
|
fMVAVar_ElePt = ele->Pt(); |
815 |
|
fMVAVar_EleEta = ele->Eta(); |
816 |
|
|
834 |
|
|
835 |
|
|
836 |
|
fMVAVar_EleEEleClusterOverPout = 0; |
837 |
< |
fMVAVar_EleKFTrkChiSqr = ele->TrackerTrk()->RChi2(); |
838 |
< |
fMVAVar_EleKFTrkNHits = ele->TrackerTrk()->NHits(); |
837 |
> |
if (ele->TrackerTrk()) { |
838 |
> |
fMVAVar_EleKFTrkChiSqr = ele->TrackerTrk()->RChi2(); |
839 |
> |
fMVAVar_EleKFTrkNHits = ele->TrackerTrk()->NHits(); |
840 |
> |
} else { |
841 |
> |
fMVAVar_EleKFTrkChiSqr = -1; |
842 |
> |
fMVAVar_EleKFTrkNHits = 0; |
843 |
> |
} |
844 |
|
fMVAVar_EleGsfTrackChi2OverNdof = ele->BestTrk()->Chi2() / ele->BestTrk()->Ndof(); |
845 |
|
fMVAVar_EledEtaCalo = ele->DeltaEtaSeedClusterTrackAtCalo(); |
846 |
|
fMVAVar_EleSCEtaWidth = ele->SCluster()->EtaWidth(); |
856 |
|
|
857 |
|
Double_t mva = -9999; |
858 |
|
TMVA::Reader *reader = 0; |
859 |
< |
Int_t MVABin = -1; |
731 |
< |
if (subdet == 0 && ptBin == 0) MVABin = 0; |
732 |
< |
if (subdet == 1 && ptBin == 0) MVABin = 1; |
733 |
< |
if (subdet == 2 && ptBin == 0) MVABin = 2; |
734 |
< |
if (subdet == 0 && ptBin == 1) MVABin = 3; |
735 |
< |
if (subdet == 1 && ptBin == 1) MVABin = 4; |
736 |
< |
if (subdet == 2 && ptBin == 1) MVABin = 5; |
737 |
< |
assert(MVABin >= 0 && MVABin <= 5); |
738 |
< |
reader = fTMVAReader[MVABin]; |
739 |
< |
|
859 |
> |
reader = fTMVAReader[GetMVABin( ele->SCluster()->Eta(), ele->Pt())]; |
860 |
|
mva = reader->EvaluateMVA( fMethodname ); |
861 |
|
|
862 |
|
if (printDebug == kTRUE) { |
863 |
|
std::cout << "Debug Electron MVA: " |
864 |
|
<< ele->Pt() << " " << ele->Eta() << " " << ele->Phi() << " : " |
865 |
< |
<< ele->Pt() << " " << ele->SCluster()->AbsEta() << " --> MVABin " << MVABin << " : " |
865 |
> |
<< ele->Pt() << " " << ele->SCluster()->AbsEta() << " --> MVABin " << GetMVABin( ele->SCluster()->Eta(), ele->Pt()) << " : " |
866 |
|
<< fMVAVar_EleSigmaIEtaIEta << " " |
867 |
|
<< fMVAVar_EleDEtaIn << " " |
868 |
|
<< fMVAVar_EleDPhiIn << " " |
925 |
|
//set all input variables |
926 |
|
fMVAVar_ElePt = ele->Pt(); |
927 |
|
fMVAVar_EleEta = ele->SCluster()->Eta(); |
928 |
< |
fMVAVar_EleSigmaIEtaIEta = ele->CoviEtaiEta() ; |
929 |
< |
fMVAVar_EleDEtaIn = ele->DeltaEtaSuperClusterTrackAtVtx(); |
930 |
< |
fMVAVar_EleDPhiIn = ele->DeltaPhiSuperClusterTrackAtVtx(); |
928 |
> |
fMVAVar_EleSigmaIEtaIEta = ele->CoviEtaiEta() ; |
929 |
> |
|
930 |
> |
if (fMVAType == ElectronIDMVA::kIDEGamma2012TrigV0 || |
931 |
> |
fMVAType == ElectronIDMVA::kIDEGamma2012NonTrigV0 || |
932 |
> |
fMVAType == ElectronIDMVA::kIDHWW2012TrigV0) { |
933 |
> |
fMVAVar_EleDEtaIn = TMath::Min(fabs(double(ele->DeltaEtaSuperClusterTrackAtVtx())),0.06); ; |
934 |
> |
fMVAVar_EleDPhiIn = TMath::Min(fabs(double(ele->DeltaPhiSuperClusterTrackAtVtx())),0.6); |
935 |
> |
fMVAVar_EleFBrem = TMath::Max(double(ele->FBrem()),-1.0); |
936 |
> |
fMVAVar_EleEOverP = TMath::Min(double(ele->ESuperClusterOverP()), 20.0); |
937 |
> |
fMVAVar_EleESeedClusterOverPout = TMath::Min(double(ele->ESeedClusterOverPout()),20.0); |
938 |
> |
fMVAVar_EleOneOverEMinusOneOverP = (1.0/(ele->SCluster()->Energy())) - 1.0 / ele->P(); |
939 |
> |
fMVAVar_EleGsfTrackChi2OverNdof = TMath::Min(double( ele->BestTrk()->Chi2() / ele->BestTrk()->Ndof()),200.0); |
940 |
> |
fMVAVar_EledEtaCalo = TMath::Min(fabs(double(ele->DeltaEtaSeedClusterTrackAtCalo())),0.2); |
941 |
> |
fMVAVar_EleR9 = TMath::Min(double(ele->SCluster()->R9()), 5.0); |
942 |
> |
} else { |
943 |
> |
fMVAVar_EleDEtaIn = ele->DeltaEtaSuperClusterTrackAtVtx(); |
944 |
> |
fMVAVar_EleDPhiIn = ele->DeltaPhiSuperClusterTrackAtVtx(); |
945 |
> |
fMVAVar_EleFBrem = ele->FBrem(); |
946 |
> |
fMVAVar_EleEOverP = ele->ESuperClusterOverP(); |
947 |
> |
fMVAVar_EleESeedClusterOverPout = ele->ESeedClusterOverPout(); |
948 |
> |
fMVAVar_EleOneOverEMinusOneOverP = (1.0/(ele->SCluster()->Energy())) - 1.0 / ele->BestTrk()->P(); |
949 |
> |
fMVAVar_EleGsfTrackChi2OverNdof = ele->BestTrk()->Chi2() / ele->BestTrk()->Ndof(); |
950 |
> |
fMVAVar_EledEtaCalo = ele->DeltaEtaSeedClusterTrackAtCalo(); |
951 |
> |
fMVAVar_EleR9 = ele->SCluster()->R9(); |
952 |
> |
} |
953 |
> |
|
954 |
|
fMVAVar_EleHoverE = ele->HadronicOverEm(); |
955 |
|
fMVAVar_EleD0 = ele->BestTrk()->D0Corrected(*vertex); |
956 |
|
fMVAVar_EleDZ = ele->BestTrk()->DzCorrected(*vertex); |
814 |
– |
fMVAVar_EleFBrem = ele->FBrem(); |
815 |
– |
fMVAVar_EleEOverP = ele->ESuperClusterOverP(); |
816 |
– |
fMVAVar_EleESeedClusterOverPout = ele->ESeedClusterOverPout(); |
957 |
|
if (!TMath::IsNaN(ele->SCluster()->Seed()->CoviPhiiPhi())) fMVAVar_EleSigmaIPhiIPhi = TMath::Sqrt(ele->SCluster()->Seed()->CoviPhiiPhi()); |
958 |
|
else fMVAVar_EleSigmaIPhiIPhi = ele->CoviEtaiEta(); |
959 |
|
fMVAVar_EleNBrem = ele->NumberOfClusters() - 1; |
820 |
– |
|
821 |
– |
if (fMVAType == ElectronIDMVA::kIDEGamma2012TrigV0 |
822 |
– |
|| fMVAType == ElectronIDMVA::kIDEGamma2012NonTrigV0 |
823 |
– |
|| fMVAType == ElectronIDMVA::kIsoRingsV0) { |
824 |
– |
fMVAVar_EleOneOverEMinusOneOverP = (1.0/(ele->SCluster()->Energy())) - 1.0 / ele->P(); |
825 |
– |
} else { |
826 |
– |
fMVAVar_EleOneOverEMinusOneOverP = (1.0/(ele->SCluster()->Energy())) - 1.0 / ele->BestTrk()->P(); |
827 |
– |
} |
828 |
– |
|
960 |
|
fMVAVar_EleESeedClusterOverPIn = ele->ESeedClusterOverPIn(); |
961 |
|
fMVAVar_EleIP3d = ele->Ip3dPV(); |
962 |
|
fMVAVar_EleIP3dSig = ele->Ip3dPVSignificance(); |
832 |
– |
fMVAVar_EleGsfTrackChi2OverNdof = ele->BestTrk()->Chi2() / ele->BestTrk()->Ndof(); |
833 |
– |
fMVAVar_EledEtaCalo = ele->DeltaEtaSeedClusterTrackAtCalo(); |
963 |
|
fMVAVar_EledPhiCalo = ele->DeltaPhiSeedClusterTrackAtCalo(); |
835 |
– |
fMVAVar_EleR9 = ele->SCluster()->R9(); |
964 |
|
fMVAVar_EleSCEtaWidth = ele->SCluster()->EtaWidth(); |
965 |
|
fMVAVar_EleSCPhiWidth = ele->SCluster()->PhiWidth(); |
966 |
|
fMVAVar_EleCovIEtaIPhi = ele->SCluster()->Seed()->CoviEtaiPhi(); |
969 |
|
//Additional vars |
970 |
|
fMVAVar_EleEEleClusterOverPout = 0; |
971 |
|
if (ele->TrackerTrk()) { |
972 |
< |
fMVAVar_EleKFTrkChiSqr = ele->TrackerTrk()->RChi2(); |
972 |
> |
if (fMVAType == ElectronIDMVA::kIDEGamma2012TrigV0 || |
973 |
> |
fMVAType == ElectronIDMVA::kIDEGamma2012NonTrigV0 || |
974 |
> |
fMVAType == ElectronIDMVA::kIDHWW2012TrigV0 ) { |
975 |
> |
fMVAVar_EleKFTrkChiSqr = TMath::Min(double(ele->TrackerTrk()->RChi2()),10.0); |
976 |
> |
} else { |
977 |
> |
fMVAVar_EleKFTrkChiSqr = ele->TrackerTrk()->RChi2(); |
978 |
> |
} |
979 |
|
fMVAVar_EleKFTrkNHits = ele->TrackerTrk()->NHits(); |
980 |
+ |
fMVAVar_EleKFTrkNLayers = ele->CTFTrkNLayersWithMeasurement(); |
981 |
|
} else { |
982 |
< |
fMVAVar_EleKFTrkChiSqr = 0; |
983 |
< |
fMVAVar_EleKFTrkNHits = -1; |
982 |
> |
fMVAVar_EleKFTrkChiSqr = -1; |
983 |
> |
fMVAVar_EleKFTrkNHits = 0; |
984 |
> |
fMVAVar_EleKFTrkNLayers = 0; |
985 |
|
} |
986 |
|
|
987 |
< |
fMVAVar_EleE1x5OverE5x5 = (ele->SCluster()->Seed()->E5x5() > 0.0) ? 1.0-ele->SCluster()->Seed()->E1x5() / ele->SCluster()->Seed()->E5x5() : -1. ; |
987 |
> |
if( ele->SCluster()->Seed()->E5x5() > 0.0 ) { |
988 |
> |
if (fMVAType == ElectronIDMVA::kIDEGamma2012TrigV0 || |
989 |
> |
fMVAType == ElectronIDMVA::kIDEGamma2012NonTrigV0 || |
990 |
> |
fMVAType == ElectronIDMVA::kIDHWW2012TrigV0 ) { |
991 |
> |
fMVAVar_EleE1x5OverE5x5 = TMath::Min(TMath::Max(1 - double(ele->SCluster()->Seed()->E1x5()/ele->SCluster()->Seed()->E5x5()) , -1.0),2.0); |
992 |
> |
} else { |
993 |
> |
fMVAVar_EleE1x5OverE5x5 = ele->SCluster()->Seed()->E1x5()/ele->SCluster()->Seed()->E5x5(); |
994 |
> |
} |
995 |
> |
} else { |
996 |
> |
fMVAVar_EleE1x5OverE5x5 = -1.0; |
997 |
> |
} |
998 |
> |
|
999 |
|
|
1000 |
|
Double_t tmpChargedIso_DR0p0To0p1 = 0; |
1001 |
|
Double_t tmpChargedIso_DR0p1To0p2 = 0; |
1133 |
|
fMVAVar_NeutralHadronIso_DR0p1To0p2 = TMath::Max(TMath::Min((tmpNeutralHadronIso_DR0p1To0p2 - Rho*ElectronTools::ElectronEffectiveArea(ElectronTools::kEleNeutralHadronIsoDR0p1To0p2, ele->SCluster()->Eta(), EffectiveAreaTarget))/ele->Pt(), 2.5), 0.0); |
1134 |
|
fMVAVar_NeutralHadronIso_DR0p2To0p3 = TMath::Max(TMath::Min((tmpNeutralHadronIso_DR0p2To0p3 - Rho*ElectronTools::ElectronEffectiveArea(ElectronTools::kEleNeutralHadronIsoDR0p2To0p3, ele->SCluster()->Eta(), EffectiveAreaTarget))/ele->Pt(), 2.5), 0.0); |
1135 |
|
fMVAVar_NeutralHadronIso_DR0p3To0p4 = TMath::Max(TMath::Min((tmpNeutralHadronIso_DR0p3To0p4 - Rho*ElectronTools::ElectronEffectiveArea(ElectronTools::kEleNeutralHadronIsoDR0p3To0p4, ele->SCluster()->Eta(), EffectiveAreaTarget))/ele->Pt(), 2.5), 0.0); |
1136 |
< |
fMVAVar_NeutralHadronIso_DR0p4To0p5 = TMath::Max(TMath::Min((tmpNeutralHadronIso_DR0p4To0p5 - Rho*ElectronTools::ElectronEffectiveArea(ElectronTools::kEleNeutralHadronIsoDR0p4To0p5, ele->SCluster()->Eta(), EffectiveAreaTarget))/ele->Pt(), 2.5), 0.0); |
990 |
< |
|
991 |
< |
// cout << "gg: " << tmpGammaIso_DR0p4To0p5 << " : " << ElectronTools::ElectronEffectiveArea(ElectronTools::kEleGammaIsoDR0p4To0p5, ele->SCluster()->Eta(), EffectiveAreaTarget) << " " << EffectiveAreaTarget << endl; |
1136 |
> |
fMVAVar_NeutralHadronIso_DR0p4To0p5 = TMath::Max(TMath::Min((tmpNeutralHadronIso_DR0p4To0p5 - Rho*ElectronTools::ElectronEffectiveArea(ElectronTools::kEleNeutralHadronIsoDR0p4To0p5, ele->SCluster()->Eta(), EffectiveAreaTarget))/ele->Pt(), 2.5), 0.0); |
1137 |
|
|
1138 |
|
//Do Binding of MVA input variables |
1139 |
< |
if (fMVAType == ElectronIDMVA::kIDEGamma2012TrigV0 |
1139 |
> |
if ( fMVAType == ElectronIDMVA::kIDEGamma2012TrigV0 |
1140 |
|
|| fMVAType == ElectronIDMVA::kIDEGamma2012NonTrigV0 |
1141 |
< |
|| fMVAType == ElectronIDMVA::kIsoRingsV0) { |
1141 |
> |
|| fMVAType == ElectronIDMVA::kIsoRingsV0 |
1142 |
> |
|| fMVAType == ElectronIDMVA::kIDHWW2012TrigV0) { |
1143 |
|
bindVariables(); |
1144 |
|
} |
1145 |
|
|
1146 |
|
Double_t mva = -9999; |
1147 |
|
TMVA::Reader *reader = 0; |
1002 |
– |
Int_t MVABin = -1; |
1003 |
– |
|
1004 |
– |
if (fMVAVar_ElePt < 10 && fabs(fMVAVar_EleEta) < 1.479) MVABin = 0; |
1005 |
– |
if (fMVAVar_ElePt < 10 && fabs(fMVAVar_EleEta) >= 1.479) MVABin = 1; |
1006 |
– |
if (fMVAVar_ElePt > 10 && fabs(fMVAVar_EleEta) < 1.479) MVABin = 2; |
1007 |
– |
if (fMVAVar_ElePt > 10 && fabs(fMVAVar_EleEta) >= 1.479) MVABin = 3; |
1148 |
|
|
1149 |
< |
std::cout <<" -> BIN: " << fMVAVar_EleEta << " " << fMVAVar_ElePt << " : " << MVABin << std::endl; |
1010 |
< |
|
1011 |
< |
if (!fUseBinnedVersion) { |
1012 |
< |
reader = fTMVAReader[0]; |
1013 |
< |
} else { |
1014 |
< |
reader = fTMVAReader[MVABin]; |
1015 |
< |
} |
1016 |
< |
|
1017 |
< |
|
1149 |
> |
reader = fTMVAReader[GetMVABin( fMVAVar_EleEta , fMVAVar_ElePt)]; |
1150 |
|
mva = reader->EvaluateMVA( fMethodname ); |
1151 |
|
|
1152 |
|
if (printDebug == kTRUE) { |
1153 |
|
|
1154 |
< |
std::cout << "Debug Electron MVA: \n"; |
1155 |
< |
std::cout << " fbrem " << fMVAVar_EleFBrem |
1154 |
> |
std::cout << "Debug Electron MVA-ID: " |
1155 |
> |
<< fMVAVar_ElePt<< " " << fMVAVar_EleEta << " " |
1156 |
> |
<< " --> MVABin " << GetMVABin( fMVAVar_EleEta , fMVAVar_ElePt) << " : " |
1157 |
> |
<< " fbrem " << fMVAVar_EleFBrem |
1158 |
|
<< " kfchi2 " << fMVAVar_EleKFTrkChiSqr |
1159 |
|
<< " kfhits " << fMVAVar_EleKFTrkNHits |
1160 |
< |
<< " kfhitsall " << fMVAVar_EleKFTrkNHits |
1160 |
> |
<< " kfhitsall " << fMVAVar_EleKFTrkNLayers |
1161 |
|
<< " gsfchi2 " << fMVAVar_EleGsfTrackChi2OverNdof |
1162 |
|
<< " deta " << fMVAVar_EleDEtaIn |
1163 |
|
<< " dphi " << fMVAVar_EleDPhiIn |
1176 |
|
<< " d0 " << fMVAVar_EleD0 |
1177 |
|
<< " ip3d " << fMVAVar_EleIP3d |
1178 |
|
<< " eta " << fMVAVar_EleEta |
1179 |
< |
<< " pt " << fMVAVar_ElePt << std::endl; |
1180 |
< |
|
1181 |
< |
std::cout << fMVAVar_ChargedIso_DR0p0To0p1 << " " |
1179 |
> |
<< " pt " << fMVAVar_ElePt |
1180 |
> |
<< " === : === " |
1181 |
> |
<< mva << " " |
1182 |
> |
<< std::endl; |
1183 |
> |
std::cout << "Debug Electron MVA-ISO: " |
1184 |
> |
<< fMVAVar_ChargedIso_DR0p0To0p1 << " " |
1185 |
|
<< fMVAVar_ChargedIso_DR0p1To0p2 << " " |
1186 |
|
<< fMVAVar_ChargedIso_DR0p2To0p3 << " " |
1187 |
|
<< fMVAVar_ChargedIso_DR0p3To0p4 << " " |
1197 |
|
<< fMVAVar_NeutralHadronIso_DR0p3To0p4 << " " |
1198 |
|
<< fMVAVar_NeutralHadronIso_DR0p4To0p5 << " " |
1199 |
|
<< std::endl; |
1063 |
– |
std::cout << "MVA: " << mva << " " |
1064 |
– |
<< std::endl; |
1200 |
|
} |
1201 |
|
|
1202 |
|
return mva; |