ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/src/ElectronIDMVA.cc
(Generate patch)

Comparing UserCode/MitPhysics/Utils/src/ElectronIDMVA.cc (file contents):
Revision 1.6 by sixie, Sat Dec 31 23:21:22 2011 UTC vs.
Revision 1.8 by sixie, Wed Jan 4 13:37:14 2012 UTC

# Line 245 | Line 245 | Double_t ElectronIDMVA::MVAValue(Double_
245      return -9999;
246    }
247  
248 +  Double_t Rho = 0;
249 +  if (!(TMath::IsNaN(PileupEnergyDensity) || isinf(PileupEnergyDensity))) Rho = PileupEnergyDensity;
250 +
251    Int_t subdet = 0;
252    if (fabs(EleEta) < 1.0) subdet = 0;
253    else if (fabs(EleEta) < 1.479) subdet = 1;
# Line 278 | Line 281 | Double_t ElectronIDMVA::MVAValue(Double_
281    fMVAVar_ElePreShowerOverRaw = ElePreShowerOverRaw;
282    fMVAVar_EleChargedIso03OverPt
283      = (EleChargedIso03
284 <       - PileupEnergyDensity * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleChargedIso03, EleEta)) / ElePt;
284 >       - Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleChargedIso03, EleEta)) / ElePt;
285    fMVAVar_EleNeutralHadronIso03OverPt
286      = (EleNeutralHadronIso03
287 <       - PileupEnergyDensity * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleNeutralHadronIso03, EleEta)
288 <       + PileupEnergyDensity * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleNeutralHadronIso007,EleEta)) / ElePt;
287 >       - Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleNeutralHadronIso03, EleEta)
288 >       + Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleNeutralHadronIso007,EleEta)) / ElePt;
289    fMVAVar_EleGammaIso03OverPt
290      = (EleGammaIso03
291 <       - PileupEnergyDensity * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleGammaIso03, EleEta)
292 <       + PileupEnergyDensity * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleGammaIsoVetoEtaStrip03,EleEta))/ElePt;
291 >       - Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleGammaIso03, EleEta)
292 >       + Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleGammaIsoVetoEtaStrip03,EleEta))/ElePt;
293    fMVAVar_EleChargedIso04OverPt
294      = (EleChargedIso04
295 <       - PileupEnergyDensity * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleChargedIso04, EleEta))/ElePt;
295 >       - Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleChargedIso04, EleEta))/ElePt;
296    fMVAVar_EleNeutralHadronIso04OverPt
297      = (EleNeutralHadronIso04
298 <       - PileupEnergyDensity * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleNeutralHadronIso04, EleEta)
299 <       + PileupEnergyDensity * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleNeutralHadronIso007,EleEta))/ElePt;
298 >       - Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleNeutralHadronIso04, EleEta)
299 >       + Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleNeutralHadronIso007,EleEta))/ElePt;
300    fMVAVar_EleGammaIso04OverPt
301      = (EleGammaIso04
302 <       - PileupEnergyDensity * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleGammaIso04, EleEta)
303 <       + PileupEnergyDensity * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleGammaIsoVetoEtaStrip04,EleEta))/ElePt;
302 >       - Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleGammaIso04, EleEta)
303 >       + Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleGammaIsoVetoEtaStrip04,EleEta))/ElePt;
304    
305    Double_t mva = -9999;  
306    TMVA::Reader *reader = 0;
# Line 313 | Line 316 | Double_t ElectronIDMVA::MVAValue(Double_
316                                                  
317    mva = reader->EvaluateMVA( fMethodname );
318  
319 +  Bool_t printdebug = kTRUE;
320 +  if (printdebug == kTRUE) {
321 +    std::cout << "Debug Electron MVA: "
322 +         << ElePt << " " << EleEta << " " << " --> MVABin " << MVABin << " : "    
323 +         << fMVAVar_EleSigmaIEtaIEta << " "
324 +         << fMVAVar_EleDEtaIn << " "
325 +         << fMVAVar_EleDPhiIn << " "
326 +         << fMVAVar_EleHoverE << " "
327 +         << fMVAVar_EleD0 << " "
328 +         << fMVAVar_EleDZ << " "
329 +         << fMVAVar_EleFBrem << " "
330 +         << fMVAVar_EleEOverP << " "
331 +         << fMVAVar_EleESeedClusterOverPout << " "
332 +         << fMVAVar_EleSigmaIPhiIPhi << " "
333 +         << fMVAVar_EleNBrem << " "
334 +         << fMVAVar_EleOneOverEMinusOneOverP << " "
335 +         << fMVAVar_EleESeedClusterOverPIn << " "
336 +         << fMVAVar_EleIP3d << " "
337 +         << fMVAVar_EleIP3dSig << " "
338 +         << fMVAVar_EleGsfTrackChi2OverNdof << " "
339 +         << fMVAVar_EledEtaCalo << " "
340 +         << fMVAVar_EledPhiCalo << " "
341 +         << fMVAVar_EleR9 << " "
342 +         << fMVAVar_EleSCEtaWidth << " "
343 +         << fMVAVar_EleSCPhiWidth << " "
344 +         << fMVAVar_EleCovIEtaIPhi << " "
345 +         << fMVAVar_ElePreShowerOverRaw << " "
346 +         << fMVAVar_EleChargedIso03OverPt  << " "
347 +         << fMVAVar_EleNeutralHadronIso03OverPt  << " "
348 +         << fMVAVar_EleGammaIso03OverPt  << " "
349 +         << fMVAVar_EleChargedIso04OverPt  << " "
350 +         << fMVAVar_EleNeutralHadronIso04OverPt  << " "
351 +         << fMVAVar_EleGammaIso04OverPt  << " "
352 +         << " === : === "
353 +         << mva
354 +         << std::endl;
355 +  }
356 +
357    return mva;
358   }
359  
# Line 333 | Line 374 | Double_t ElectronIDMVA::MVAValue(const E
374    else subdet = 2;
375    Int_t ptBin = 0;
376    if (ele->Pt() > 20.0) ptBin = 1;
377 <  
377 >
378 >  Double_t Rho = 0;
379 >  if (!(TMath::IsNaN(PileupEnergyDensity->At(0)->Rho()) || isinf(PileupEnergyDensity->At(0)->Rho()))) Rho = PileupEnergyDensity->At(0)->Rho();
380 >
381    //set all input variables
382    fMVAVar_EleSigmaIEtaIEta = ele->CoviEtaiEta() ;
383    fMVAVar_EleDEtaIn = ele->DeltaEtaSuperClusterTrackAtVtx();
# Line 361 | Line 405 | Double_t ElectronIDMVA::MVAValue(const E
405    fMVAVar_ElePreShowerOverRaw = ele->SCluster()->PreshowerEnergy() / ele->SCluster()->RawEnergy();
406    fMVAVar_EleChargedIso03OverPt
407      = (IsolationTools::PFElectronIsolation(ele, PFCands, vertex, 0.1, 99999, 0.3, 0.0)
408 <       - PileupEnergyDensity->At(0)->Rho() * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleChargedIso03, ele->Eta())) / ele->Pt();
408 >       - Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleChargedIso03, ele->SCluster()->Eta())) / ele->Pt();
409    fMVAVar_EleNeutralHadronIso03OverPt
410      = (IsolationTools::PFElectronIsolation(ele, PFCands, vertex, 0.1, 0.5, 0.3, 0.0, PFCandidate::eNeutralHadron)
411 <       - PileupEnergyDensity->At(0)->Rho() * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleNeutralHadronIso03, ele->Eta())
412 <       + PileupEnergyDensity->At(0)->Rho() * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleNeutralHadronIso007,ele->Eta())) / ele->Pt();
411 >       - Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleNeutralHadronIso03, ele->SCluster()->Eta())
412 >       + Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleNeutralHadronIso007,ele->SCluster()->Eta())) / ele->Pt();
413    fMVAVar_EleGammaIso03OverPt
414      = (IsolationTools::PFElectronIsolation(ele, PFCands, vertex, 0.1, 0.5, 0.3, 0.0, PFCandidate::eGamma)
415 <       - PileupEnergyDensity->At(0)->Rho() * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleGammaIso03, ele->Eta())
416 <       + PileupEnergyDensity->At(0)->Rho() * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleGammaIsoVetoEtaStrip03,ele->Eta())) / ele->Pt();
415 >       - Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleGammaIso03, ele->SCluster()->Eta())
416 >       + Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleGammaIsoVetoEtaStrip03,ele->SCluster()->Eta())) / ele->Pt();
417    fMVAVar_EleChargedIso04OverPt
418      = (IsolationTools::PFElectronIsolation(ele, PFCands, vertex, 0.1, 99999, 0.4, 0.0)
419 <       - PileupEnergyDensity->At(0)->Rho() * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleChargedIso03, ele->Eta())) / ele->Pt();
419 >       - Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleChargedIso04, ele->SCluster()->Eta())) / ele->Pt();
420    fMVAVar_EleNeutralHadronIso04OverPt
421      = (IsolationTools::PFElectronIsolation(ele, PFCands, vertex, 0.1, 0.5, 0.4, 0.0, PFCandidate::eNeutralHadron)
422 <       - PileupEnergyDensity->At(0)->Rho() * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleChargedIso03, ele->Eta())
423 <       + PileupEnergyDensity->At(0)->Rho() * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleNeutralHadronIso007,ele->Eta())) / ele->Pt() ;
422 >       - Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleNeutralHadronIso04, ele->SCluster()->Eta())
423 >       + Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleNeutralHadronIso007,ele->SCluster()->Eta())) / ele->Pt() ;
424    fMVAVar_EleGammaIso04OverPt
425      = (IsolationTools::PFElectronIsolation(ele, PFCands, vertex, 0.1, 0.5, 0.4, 0.0, PFCandidate::eGamma)
426 <       - PileupEnergyDensity->At(0)->Rho() * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleChargedIso03, ele->Eta())
427 <       + PileupEnergyDensity->At(0)->Rho() * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleGammaIsoVetoEtaStrip04,ele->Eta())) / ele->Pt();
426 >       - Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleGammaIso04, ele->SCluster()->Eta())
427 >       + Rho * ElectronTools::ElectronEffectiveArea(ElectronTools::kEleGammaIsoVetoEtaStrip04,ele->SCluster()->Eta())) / ele->Pt();
428    
429    Double_t mva = -9999;  
430    TMVA::Reader *reader = 0;
# Line 396 | Line 440 | Double_t ElectronIDMVA::MVAValue(const E
440                                                  
441    mva = reader->EvaluateMVA( fMethodname );
442  
443 +  Bool_t printdebug = kTRUE;
444 +  if (printdebug == kTRUE) {
445 +    std::cout << "Debug Electron MVA: "
446 +              << ele->Pt() << " " << ele->Eta() << " " << ele->Phi() << " : "
447 +              << ele->Pt() << " " << ele->SCluster()->AbsEta() << " --> MVABin " << MVABin << " : "    
448 +              << fMVAVar_EleSigmaIEtaIEta << " "
449 +              << fMVAVar_EleDEtaIn << " "
450 +              << fMVAVar_EleDPhiIn << " "
451 +              << fMVAVar_EleHoverE << " "
452 +              << fMVAVar_EleD0 << " "
453 +              << fMVAVar_EleDZ << " "
454 +              << fMVAVar_EleFBrem << " "
455 +              << fMVAVar_EleEOverP << " "
456 +              << fMVAVar_EleESeedClusterOverPout << " "
457 +              << fMVAVar_EleSigmaIPhiIPhi << " "
458 +              << fMVAVar_EleNBrem << " "
459 +              << fMVAVar_EleOneOverEMinusOneOverP << " "
460 +              << fMVAVar_EleESeedClusterOverPIn << " "
461 +              << fMVAVar_EleIP3d << " "
462 +              << fMVAVar_EleIP3dSig << " "
463 +              << fMVAVar_EleGsfTrackChi2OverNdof << " "
464 +              << fMVAVar_EledEtaCalo << " "
465 +              << fMVAVar_EledPhiCalo << " "
466 +              << fMVAVar_EleR9 << " "
467 +              << fMVAVar_EleSCEtaWidth << " "
468 +              << fMVAVar_EleSCPhiWidth << " "
469 +              << fMVAVar_EleCovIEtaIPhi << " "
470 +              << fMVAVar_ElePreShowerOverRaw << " "
471 +              << fMVAVar_EleChargedIso03OverPt  << " "
472 +              << fMVAVar_EleNeutralHadronIso03OverPt  << " "
473 +              << fMVAVar_EleGammaIso03OverPt  << " "
474 +              << fMVAVar_EleChargedIso04OverPt  << " "
475 +              << fMVAVar_EleNeutralHadronIso04OverPt  << " "
476 +              << fMVAVar_EleGammaIso04OverPt  << " "
477 +              << " === : === "
478 +              << mva << " "    
479 +              << std::endl;
480 +    
481 +  }
482 +
483    return mva;
484   }
485  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines