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

Comparing UserCode/MitPhysics/Utils/src/MuonIDMVA.cc (file contents):
Revision 1.8 by sixie, Mon Apr 16 11:08:47 2012 UTC vs.
Revision 1.14 by ceballos, Fri May 4 21:57:19 2012 UTC

# Line 87 | Line 87 | void MuonIDMVA::Initialize(  std::string
87    UInt_t ExpectedNBins = 0;
88    if (!fUseBinnedVersion) {
89      ExpectedNBins = 1;
90 <  } else if (type == kV2
91 <             ||type == kV3
92 <             ||type == kV8
93 <             ||type == kIDIsoCombinedDetIso) {
90 >  } else if    (type == kV2
91 >             || type == kV3
92 >             || type == kV8
93 >             || type == kIDIsoCombinedDetIso
94 >             || type == kIsoRingsV0
95 >             || type == kIDV0
96 >             || type == kIDIsoCombinedIsoRingsV0
97 >    ) {
98      ExpectedNBins = 6;
99 <  } else if (type == kIDIsoCombinedIsoRingsV0) {
96 <    ExpectedNBins = 5;
97 <  } else if (type == kIsoRingsV0) {
99 >  } else if (type == kIsoDeltaR){
100      ExpectedNBins = 4;
101    }
102 +
103    fNMVABins = ExpectedNBins;
104  
105    //Check number of weight files given
# Line 197 | Line 200 | void MuonIDMVA::Initialize(  std::string
200        tmpTMVAReader->AddVariable( "HadIso05OverPt",       &fMVAVar_MuHadIso05OverPt        );
201      }
202  
203 +    if (type == kIDV0) {
204 +      tmpTMVAReader->AddVariable( "TkNchi2",              &fMVAVar_MuTkNchi2               );
205 +      if (i!=4) tmpTMVAReader->AddVariable( "GlobalNchi2",&fMVAVar_MuGlobalNchi2           );
206 +      if (i!=4) tmpTMVAReader->AddVariable( "NValidHits", &fMVAVar_MuNValidHits            );
207 +      tmpTMVAReader->AddVariable( "NTrackerHits",         &fMVAVar_MuNTrackerHits          );
208 +      tmpTMVAReader->AddVariable( "NPixelHits",           &fMVAVar_MuNPixelHits            );
209 +      if (i!=5) tmpTMVAReader->AddVariable( "NMatches",   &fMVAVar_MuNMatches              );
210 +      tmpTMVAReader->AddVariable( "TrkKink",              &fMVAVar_MuTrkKink               );      
211 +      tmpTMVAReader->AddVariable( "SegmentCompatibility", &fMVAVar_MuSegmentCompatibility  );      
212 +      tmpTMVAReader->AddVariable( "CaloCompatibility",    &fMVAVar_MuCaloCompatibility     );      
213 +      tmpTMVAReader->AddVariable( "HadEnergy",            &fMVAVar_MuHadEnergy             );      
214 +      tmpTMVAReader->AddVariable( "EmEnergy",             &fMVAVar_MuEmEnergy              );      
215 +      tmpTMVAReader->AddVariable( "HadS9Energy",          &fMVAVar_MuHadS9Energy           );      
216 +      tmpTMVAReader->AddVariable( "EmS9Energy",           &fMVAVar_MuEmS9Energy            );
217 +    }
218 +
219      if (type == kIsoRingsV0) {
220        tmpTMVAReader->AddVariable( "ChargedIso_DR0p0To0p1",         &fMVAVar_ChargedIso_DR0p0To0p1        );
221        tmpTMVAReader->AddVariable( "ChargedIso_DR0p1To0p2",         &fMVAVar_ChargedIso_DR0p1To0p2        );
# Line 213 | Line 232 | void MuonIDMVA::Initialize(  std::string
232        tmpTMVAReader->AddVariable( "NeutralHadronIso_DR0p2To0p3",   &fMVAVar_NeutralHadronIso_DR0p2To0p3  );
233        tmpTMVAReader->AddVariable( "NeutralHadronIso_DR0p3To0p4",   &fMVAVar_NeutralHadronIso_DR0p3To0p4  );
234        tmpTMVAReader->AddVariable( "NeutralHadronIso_DR0p4To0p5",   &fMVAVar_NeutralHadronIso_DR0p4To0p5  );
235 <      tmpTMVAReader->AddSpectator("eta",            &fMVAVar_MuEta);
236 <      tmpTMVAReader->AddSpectator("pt",             &fMVAVar_MuPt);
235 >    }
236 >
237 >    if (type == kIsoDeltaR) {
238 >      tmpTMVAReader->AddVariable("PFCharged",                     &fMVAVar_MuRelIsoPFCharged       );
239 >      tmpTMVAReader->AddVariable("PFNeutral",                     &fMVAVar_MuRelIsoPFNeutral       );
240 >      tmpTMVAReader->AddVariable("PFPhotons",                     &fMVAVar_MuRelIsoPFPhotons       );
241 >      tmpTMVAReader->AddVariable("SumDeltaR",                     &fMVAVar_MuDeltaRSum             );
242 >      tmpTMVAReader->AddVariable("DeltaRMean",                    &fMVAVar_MuDeltaRMean            );
243 >      tmpTMVAReader->AddVariable("Density",                       &fMVAVar_MuDensity               );
244      }
245      
246      tmpTMVAReader->BookMVA(fMethodname , weightsfiles[i] );
# Line 250 | Line 276 | UInt_t MuonIDMVA::GetMVABin( double eta,
276        if (pt >= 20 && fabs(eta) >= 1.5) bin = 5;
277      }
278  
279 <    if (fMVAType == MuonIDMVA::kIDIsoCombinedIsoRingsV0) {
279 >    if (fMVAType == MuonIDMVA::kIsoRingsV0 || fMVAType == MuonIDMVA::kIDV0
280 >        || fMVAType == MuonIDMVA::kIDIsoCombinedIsoRingsV0) {
281        if (isGlobal && isTrackerMuon) {
282          if (pt < 10 && fabs(eta) < 1.479) bin = 0;
283 <        if (pt < 10 && fabs(eta) >= 1.479) bin = 1;
284 <        if (pt >= 10 && fabs(eta) < 1.479) bin = 2;
283 >        if (pt >= 10 && fabs(eta) < 1.479) bin = 1;
284 >        if (pt < 10 && fabs(eta) >= 1.479) bin = 2;
285          if (pt >= 10 && fabs(eta) >= 1.479) bin = 3;
286        } else if (!isGlobal && isTrackerMuon) {
287          bin = 4;
288 +      } else if (isGlobal && !isTrackerMuon) {
289 +        bin = 5;
290        } else {
291          std::cout << "Warning: Muon is not a tracker muon. Such muons are not supported. \n";
292          bin = 0;
293        }
294      }
295  
296 <    if (fMVAType == MuonIDMVA::kIsoRingsV0) {
297 <      if (pt < 10 && fabs(eta) < 1.479) bin = 0;
298 <      if (pt < 10 && fabs(eta) >= 1.479) bin = 1;
299 <      if (pt >= 10 && fabs(eta) < 1.479) bin = 2;
300 <      if (pt >= 10 && fabs(eta) >= 1.479) bin = 3;
296 >    if (fMVAType == MuonIDMVA::kIsoDeltaR){
297 >      if (pt <  20 && fabs(eta) <  1.479) bin = 0;
298 >      if (pt <  20 && fabs(eta) >= 1.479) bin = 1;
299 >      if (pt >= 20 && fabs(eta) <  1.479) bin = 2;
300 >      if (pt >= 20 && fabs(eta) >= 1.479) bin = 3;
301      }
302  
303      return bin;
# Line 473 | Line 502 | Double_t MuonIDMVA::MVAValue(Double_t Mu
502   }
503  
504  
505 + Double_t MuonIDMVA::MVAValue_IsoRings( Double_t MuPt,
506 +                                       Double_t MuEta,
507 +                                       Double_t ChargedIso_DR0p0To0p1,
508 +                                       Double_t ChargedIso_DR0p1To0p2,
509 +                                       Double_t ChargedIso_DR0p2To0p3,
510 +                                       Double_t ChargedIso_DR0p3To0p4,
511 +                                       Double_t ChargedIso_DR0p4To0p5,
512 +                                       Double_t GammaIso_DR0p0To0p1,
513 +                                       Double_t GammaIso_DR0p1To0p2,
514 +                                       Double_t GammaIso_DR0p2To0p3,
515 +                                       Double_t GammaIso_DR0p3To0p4,
516 +                                       Double_t GammaIso_DR0p4To0p5,
517 +                                       Double_t NeutralHadronIso_DR0p0To0p1,
518 +                                       Double_t NeutralHadronIso_DR0p1To0p2,
519 +                                       Double_t NeutralHadronIso_DR0p2To0p3,
520 +                                       Double_t NeutralHadronIso_DR0p3To0p4,
521 +                                       Double_t NeutralHadronIso_DR0p4To0p5,
522 +                                       Bool_t printDebug) {
523 +
524 +  if (fMVAType != MuonIDMVA::kIsoRingsV0) {
525 +    std::cout << "Error: This function is only supported for MVAType == kIsoRingsV0.\n" << std::endl;
526 +    assert(kFALSE);
527 +  }
528 +
529 +  fMVAVar_MuPt = MuPt;
530 +  fMVAVar_MuEta = MuEta;
531 +  fMVAVar_ChargedIso_DR0p0To0p1 = ChargedIso_DR0p0To0p1;
532 +  fMVAVar_ChargedIso_DR0p1To0p2 = ChargedIso_DR0p1To0p2;
533 +  fMVAVar_ChargedIso_DR0p2To0p3 = ChargedIso_DR0p2To0p3;
534 +  fMVAVar_ChargedIso_DR0p3To0p4 = ChargedIso_DR0p3To0p4;
535 +  fMVAVar_ChargedIso_DR0p4To0p5 = ChargedIso_DR0p4To0p5;
536 +  fMVAVar_GammaIso_DR0p0To0p1 = GammaIso_DR0p0To0p1;
537 +  fMVAVar_GammaIso_DR0p1To0p2 = GammaIso_DR0p1To0p2;
538 +  fMVAVar_GammaIso_DR0p2To0p3 = GammaIso_DR0p2To0p3;
539 +  fMVAVar_GammaIso_DR0p3To0p4 = GammaIso_DR0p3To0p4;
540 +  fMVAVar_GammaIso_DR0p4To0p5 = GammaIso_DR0p4To0p5;
541 +  fMVAVar_NeutralHadronIso_DR0p0To0p1 = NeutralHadronIso_DR0p0To0p1;
542 +  fMVAVar_NeutralHadronIso_DR0p1To0p2 = NeutralHadronIso_DR0p1To0p2;
543 +  fMVAVar_NeutralHadronIso_DR0p2To0p3 = NeutralHadronIso_DR0p2To0p3;
544 +  fMVAVar_NeutralHadronIso_DR0p3To0p4 = NeutralHadronIso_DR0p3To0p4;
545 +  fMVAVar_NeutralHadronIso_DR0p4To0p5 = NeutralHadronIso_DR0p4To0p5;
546 +
547 +  Double_t mva = -9999;  
548 +  TMVA::Reader *reader = 0;
549 +
550 +  if (printDebug == kTRUE) {
551 +    std::cout <<" -> BIN: " << fMVAVar_MuEta << " " << fMVAVar_MuPt << " : "
552 +              << GetMVABin( fMVAVar_MuEta , fMVAVar_MuPt) << std::endl;
553 +  }
554 +  reader = fTMVAReader[GetMVABin( fMVAVar_MuEta , fMVAVar_MuPt)];                                              
555 +  mva = reader->EvaluateMVA( fMethodname );
556 +
557 +  if (printDebug == kTRUE) {
558 +
559 +    std::cout << "Debug Muon MVA: \n";
560 +    std::cout << fMVAVar_ChargedIso_DR0p0To0p1 << " "
561 +              << fMVAVar_ChargedIso_DR0p1To0p2 << " "
562 +              << fMVAVar_ChargedIso_DR0p2To0p3 << " "
563 +              << fMVAVar_ChargedIso_DR0p3To0p4 << " "
564 +              << fMVAVar_ChargedIso_DR0p4To0p5 << " "
565 +              << fMVAVar_GammaIso_DR0p0To0p1 << " "
566 +              << fMVAVar_GammaIso_DR0p1To0p2 << " "
567 +              << fMVAVar_GammaIso_DR0p2To0p3 << " "
568 +              << fMVAVar_GammaIso_DR0p3To0p4 << " "
569 +              << fMVAVar_GammaIso_DR0p4To0p5 << " "
570 +              << fMVAVar_NeutralHadronIso_DR0p0To0p1 << " "
571 +              << fMVAVar_NeutralHadronIso_DR0p1To0p2 << " "
572 +              << fMVAVar_NeutralHadronIso_DR0p2To0p3 << " "
573 +              << fMVAVar_NeutralHadronIso_DR0p3To0p4 << " "
574 +              << fMVAVar_NeutralHadronIso_DR0p4To0p5 << " "  
575 +              << std::endl;
576 +    std::cout << "MVA: " << mva << " "    
577 +              << std::endl;    
578 +  }  
579 +  return mva;
580 + }
581 +
582 +
583 +
584 + Double_t MuonIDMVA::MVAValue_ID( Double_t MuPt,
585 +                                 Double_t MuEta,
586 +                                 Bool_t MuIsGlobal,
587 +                                 Bool_t MuIsTracker,                                
588 +                                 Double_t MuTkNchi2,
589 +                                 Double_t MuGlobalNchi2,
590 +                                 Double_t MuNValidHits,
591 +                                 Double_t MuNTrackerHits,
592 +                                 Double_t MuNPixelHits,
593 +                                 Double_t MuNMatches,
594 +                                 Double_t MuTrkKink,
595 +                                 Double_t MuSegmentCompatibility,
596 +                                 Double_t MuCaloCompatibility,
597 +                                 Double_t MuHadEnergy,
598 +                                 Double_t MuEmEnergy,
599 +                                 Double_t MuHadS9Energy,
600 +                                 Double_t MuEmS9Energy,
601 +                                 Bool_t printDebug) {
602 +
603 +  if (fMVAType != MuonIDMVA::kIDV0) {
604 +    std::cout << "Error: This function is only supported for MVAType == kIDV0.\n" << std::endl;
605 +    assert(kFALSE);
606 +  }
607 +
608 +  fMVAVar_MuPt = MuPt;
609 +  fMVAVar_MuEta = MuEta;
610 +
611 +  fMVAVar_MuTkNchi2 = MuTkNchi2;
612 +  fMVAVar_MuGlobalNchi2 = MuGlobalNchi2;
613 +  fMVAVar_MuNValidHits = MuNValidHits;
614 +  fMVAVar_MuNTrackerHits = MuNTrackerHits;
615 +  fMVAVar_MuNPixelHits = MuNPixelHits;
616 +  fMVAVar_MuNMatches = MuNMatches;
617 +  fMVAVar_MuTrkKink = MuTrkKink;
618 +  fMVAVar_MuSegmentCompatibility = MuSegmentCompatibility;
619 +  fMVAVar_MuCaloCompatibility = MuCaloCompatibility;
620 +  fMVAVar_MuHadEnergy = MuHadEnergy;
621 +  fMVAVar_MuEmEnergy = MuEmEnergy;
622 +  fMVAVar_MuHadS9Energy = MuHadS9Energy;
623 +  fMVAVar_MuEmS9Energy = MuEmS9Energy;
624 +
625 +  Double_t mva = -9999;  
626 +  TMVA::Reader *reader = 0;
627 +
628 +  if (printDebug == kTRUE) {
629 +    std::cout <<" -> BIN: " << fMVAVar_MuEta << " " << fMVAVar_MuPt << " : "
630 +              << GetMVABin( fMVAVar_MuEta , fMVAVar_MuPt, MuIsGlobal, MuIsTracker) << std::endl;
631 +  }
632 +  reader = fTMVAReader[GetMVABin( fMVAVar_MuEta , fMVAVar_MuPt, MuIsGlobal, MuIsTracker)];                                              
633 +  mva = reader->EvaluateMVA( fMethodname );
634 +
635 +  if (printDebug == kTRUE) {
636 +
637 +    std::cout << "Debug Muon MVA: \n";
638 +    std::cout << fMVAVar_MuTkNchi2              << " "
639 +              << fMVAVar_MuGlobalNchi2          << " "
640 +              << fMVAVar_MuNValidHits           << " "
641 +              << fMVAVar_MuNTrackerHits         << " "
642 +              << fMVAVar_MuNPixelHits           << " "  
643 +              << fMVAVar_MuNMatches             << " "      
644 +              << fMVAVar_MuTrkKink              << " "
645 +              << fMVAVar_MuSegmentCompatibility << " "
646 +              << fMVAVar_MuCaloCompatibility    << " "
647 +              << fMVAVar_MuHadEnergy            << " "  
648 +              << fMVAVar_MuEmEnergy             << " "
649 +              << fMVAVar_MuHadS9Energy          << " "  
650 +              << fMVAVar_MuEmS9Energy           << " "    
651 +              << std::endl;
652 +    std::cout << "MVA: " << mva << " "    
653 +              << std::endl;    
654 +  }
655 +  return mva;
656 + }
657 +
658 +
659  
660   //--------------------------------------------------------------------------------------------------
661   Double_t MuonIDMVA::MVAValue(const Muon *mu, const Vertex *vertex, MuonTools *fMuonTools,
# Line 667 | Line 850 | Double_t MuonIDMVA::MVAValue(const Muon
850    Double_t tmpNeutralHadronIso_DR0p3To0p4  = 0;
851    Double_t tmpNeutralHadronIso_DR0p4To0p5  = 0;
852  
853 +  Double_t tmpMuDeltaRMean = 0;
854 +  Double_t tmpMuDeltaRSum = 0;
855 +  Double_t tmpMuDensity = 0;
856 +  Double_t tmpMuNPFCand = 0;
857 +
858    for (UInt_t p=0; p<PFCands->GetEntries();p++) {  
859      const PFCandidate *pf = PFCands->At(p);
860        
# Line 684 | Line 872 | Double_t MuonIDMVA::MVAValue(const Muon
872        //************************************************************
873        // Lepton Footprint Removal
874        //************************************************************            
875 <      for (UInt_t q=0; q < goodElectrons->GetEntries() ; ++q) {
876 <        //if pf candidate matches an electron passing ID cuts, then veto it
877 <        if(pf->GsfTrk() && goodElectrons->At(q)->GsfTrk() &&
878 <           pf->GsfTrk() == goodElectrons->At(q)->GsfTrk()) IsLeptonFootprint = kTRUE;
879 <        if(pf->TrackerTrk() && goodElectrons->At(q)->TrackerTrk() &&
880 <           pf->TrackerTrk() == goodElectrons->At(q)->TrackerTrk()) IsLeptonFootprint = kTRUE;
881 <        //if pf candidate lies in veto regions of electron passing ID cuts, then veto it
882 <        if(pf->BestTrk() && fabs(goodElectrons->At(q)->SCluster()->Eta()) >= 1.479
883 <           && MathUtils::DeltaR(goodElectrons->At(q)->Mom(), pf->Mom()) < 0.015) IsLeptonFootprint = kTRUE;
884 <        if(pf->PFType() == PFCandidate::eGamma && fabs(goodElectrons->At(q)->SCluster()->Eta()) >= 1.479 &&
885 <           MathUtils::DeltaR(goodElectrons->At(q)->Mom(), pf->Mom()) < 0.08) IsLeptonFootprint = kTRUE;
875 >      if(goodElectrons) {
876 >        for (UInt_t q=0; q < goodElectrons->GetEntries() ; ++q) {
877 >          //if pf candidate matches an electron passing ID cuts, then veto it
878 >          if(pf->GsfTrk() && goodElectrons->At(q)->GsfTrk() &&
879 >             pf->GsfTrk() == goodElectrons->At(q)->GsfTrk()) IsLeptonFootprint = kTRUE;
880 >          if(pf->TrackerTrk() && goodElectrons->At(q)->TrackerTrk() &&
881 >             pf->TrackerTrk() == goodElectrons->At(q)->TrackerTrk()) IsLeptonFootprint = kTRUE;
882 >          //if pf candidate lies in veto regions of electron passing ID cuts, then veto it
883 >          if(pf->BestTrk() && fabs(goodElectrons->At(q)->SCluster()->Eta()) >= 1.479
884 >             && MathUtils::DeltaR(goodElectrons->At(q)->Mom(), pf->Mom()) < 0.015) IsLeptonFootprint = kTRUE;
885 >          if(pf->PFType() == PFCandidate::eGamma && fabs(goodElectrons->At(q)->SCluster()->Eta()) >= 1.479 &&
886 >             MathUtils::DeltaR(goodElectrons->At(q)->Mom(), pf->Mom()) < 0.08) IsLeptonFootprint = kTRUE;
887 >        }
888        }
889 <      for (UInt_t q=0; q < goodMuons->GetEntries() ; ++q) {
890 <        //if pf candidate matches an muon passing ID cuts, then veto it
891 <        if(pf->TrackerTrk() && goodMuons->At(q)->TrackerTrk() &&
892 <           pf->TrackerTrk() == goodMuons->At(q)->TrackerTrk()) IsLeptonFootprint = kTRUE;
893 <        //if pf candidate lies in veto regions of muon passing ID cuts, then veto it
894 <        if(pf->BestTrk() && MathUtils::DeltaR(goodMuons->At(q)->Mom(), pf->Mom()) < 0.01) IsLeptonFootprint = kTRUE;
889 >      if(goodMuons) {
890 >        for (UInt_t q=0; q < goodMuons->GetEntries() ; ++q) {
891 >          //if pf candidate matches an muon passing ID cuts, then veto it
892 >          if(pf->TrackerTrk() && goodMuons->At(q)->TrackerTrk() &&
893 >             pf->TrackerTrk() == goodMuons->At(q)->TrackerTrk()) IsLeptonFootprint = kTRUE;
894 >          //if pf candidate lies in veto regions of muon passing ID cuts, then veto it
895 >          if(pf->BestTrk() && MathUtils::DeltaR(goodMuons->At(q)->Mom(), pf->Mom()) < 0.01) IsLeptonFootprint = kTRUE;
896 >        }
897        }
898  
899        if (!IsLeptonFootprint) {
# Line 741 | Line 933 | Double_t MuonIDMVA::MVAValue(const Muon
933             if (dr >= 0.3 && dr < 0.4) tmpNeutralHadronIso_DR0p3To0p4 += pf->Pt();
934             if (dr >= 0.4 && dr < 0.5) tmpNeutralHadronIso_DR0p4To0p5 += pf->Pt();
935           }
936 +
937 +         if (dr < 0.5) {
938 +           tmpMuNPFCand++;
939 +           tmpMuDeltaRMean += dr;
940 +           tmpMuDeltaRSum  += dr;
941 +           tmpMuDensity    += pf->Pt() / dr;
942 +         }
943        } //not lepton footprint
944      } //in 1.0 dr cone
945    } //loop over PF candidates
946    
947 <  Double_t fMVAVar_ChargedIso_DR0p0To0p1  = 0;
948 <  Double_t fMVAVar_ChargedIso_DR0p1To0p2  = 0;
949 <  Double_t fMVAVar_ChargedIso_DR0p2To0p3  = 0;
950 <  Double_t fMVAVar_ChargedIso_DR0p3To0p4  = 0;
951 <  Double_t fMVAVar_ChargedIso_DR0p4To0p5  = 0;
952 <  Double_t fMVAVar_GammaIso_DR0p0To0p1  = 0;
953 <  Double_t fMVAVar_GammaIso_DR0p1To0p2  = 0;
954 <  Double_t fMVAVar_GammaIso_DR0p2To0p3  = 0;
955 <  Double_t fMVAVar_GammaIso_DR0p3To0p4  = 0;
956 <  Double_t fMVAVar_GammaIso_DR0p4To0p5  = 0;
957 <  Double_t fMVAVar_NeutralHadronIso_DR0p0To0p1  = 0;
958 <  Double_t fMVAVar_NeutralHadronIso_DR0p1To0p2  = 0;
959 <  Double_t fMVAVar_NeutralHadronIso_DR0p2To0p3  = 0;
960 <  Double_t fMVAVar_NeutralHadronIso_DR0p3To0p4  = 0;
961 <  Double_t fMVAVar_NeutralHadronIso_DR0p4To0p5  = 0;
947 > //   Double_t fMVAVar_ChargedIso_DR0p0To0p1  = 0;
948 > //   Double_t fMVAVar_ChargedIso_DR0p1To0p2  = 0;
949 > //   Double_t fMVAVar_ChargedIso_DR0p2To0p3  = 0;
950 > //   Double_t fMVAVar_ChargedIso_DR0p3To0p4  = 0;
951 > //   Double_t fMVAVar_ChargedIso_DR0p4To0p5  = 0;
952 > //   Double_t fMVAVar_GammaIso_DR0p0To0p1  = 0;
953 > //   Double_t fMVAVar_GammaIso_DR0p1To0p2  = 0;
954 > //   Double_t fMVAVar_GammaIso_DR0p2To0p3  = 0;
955 > //   Double_t fMVAVar_GammaIso_DR0p3To0p4  = 0;
956 > //   Double_t fMVAVar_GammaIso_DR0p4To0p5  = 0;
957 > //   Double_t fMVAVar_NeutralHadronIso_DR0p0To0p1  = 0;
958 > //   Double_t fMVAVar_NeutralHadronIso_DR0p1To0p2  = 0;
959 > //   Double_t fMVAVar_NeutralHadronIso_DR0p2To0p3  = 0;
960 > //   Double_t fMVAVar_NeutralHadronIso_DR0p3To0p4  = 0;
961 > //   Double_t fMVAVar_NeutralHadronIso_DR0p4To0p5  = 0;
962  
963 <  fMVAVar_ChargedIso_DR0p0To0p1   = TMath::Min((tmpChargedIso_DR0p0To0p1)/mu->Pt(), 2.5);
964 <  fMVAVar_ChargedIso_DR0p1To0p2   = TMath::Min((tmpChargedIso_DR0p1To0p2)/mu->Pt(), 2.5);
963 >  fMVAVar_ChargedIso_DR0p0To0p1 = TMath::Min((tmpChargedIso_DR0p0To0p1)/mu->Pt(), 2.5);
964 >  fMVAVar_ChargedIso_DR0p1To0p2 = TMath::Min((tmpChargedIso_DR0p1To0p2)/mu->Pt(), 2.5);
965    fMVAVar_ChargedIso_DR0p2To0p3 = TMath::Min((tmpChargedIso_DR0p2To0p3)/mu->Pt(), 2.5);
966    fMVAVar_ChargedIso_DR0p3To0p4 = TMath::Min((tmpChargedIso_DR0p3To0p4)/mu->Pt(), 2.5);
967    fMVAVar_ChargedIso_DR0p4To0p5 = TMath::Min((tmpChargedIso_DR0p4To0p5)/mu->Pt(), 2.5);
# Line 776 | Line 975 | Double_t MuonIDMVA::MVAValue(const Muon
975    fMVAVar_NeutralHadronIso_DR0p2To0p3 = TMath::Max(TMath::Min((tmpNeutralHadronIso_DR0p2To0p3 - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuNeutralHadronIsoDR0p2To0p3, mu->Eta(), EffectiveAreaTarget))/mu->Pt(), 2.5), 0.0);
976    fMVAVar_NeutralHadronIso_DR0p3To0p4 = TMath::Max(TMath::Min((tmpNeutralHadronIso_DR0p3To0p4 - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuNeutralHadronIsoDR0p3To0p4, mu->Eta(), EffectiveAreaTarget))/mu->Pt(), 2.5), 0.0);
977    fMVAVar_NeutralHadronIso_DR0p4To0p5 = TMath::Max(TMath::Min((tmpNeutralHadronIso_DR0p4To0p5 - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuNeutralHadronIsoDR0p4To0p5, mu->Eta(), EffectiveAreaTarget))/mu->Pt(), 2.5), 0.0);
779  
978  
979 +  // Variables for dR MVA
980 +  fMVAVar_MuRelIsoPFCharged  = 0.;
981 +  fMVAVar_MuRelIsoPFCharged += TMath::Min((tmpChargedIso_DR0p0To0p1)/mu->Pt(), 2.5);
982 +  fMVAVar_MuRelIsoPFCharged += TMath::Min((tmpChargedIso_DR0p1To0p2)/mu->Pt(), 2.5);
983 +  fMVAVar_MuRelIsoPFCharged += TMath::Min((tmpChargedIso_DR0p2To0p3)/mu->Pt(), 2.5);
984 +  fMVAVar_MuRelIsoPFCharged += TMath::Min((tmpChargedIso_DR0p3To0p4)/mu->Pt(), 2.5);
985 +  fMVAVar_MuRelIsoPFCharged += TMath::Min((tmpChargedIso_DR0p4To0p5)/mu->Pt(), 2.5);
986 +  
987 +  fMVAVar_MuRelIsoPFNeutral  = 0.;
988 +  fMVAVar_MuRelIsoPFNeutral += TMath::Max(TMath::Min((tmpNeutralHadronIso_DR0p0To0p1 - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuNeutralHadronIsoDR0p0To0p1, mu->Eta(), EffectiveAreaTarget))/mu->Pt(), 2.5), 0.0);
989 +  fMVAVar_MuRelIsoPFNeutral += TMath::Max(TMath::Min((tmpNeutralHadronIso_DR0p1To0p2 - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuNeutralHadronIsoDR0p1To0p2, mu->Eta(), EffectiveAreaTarget))/mu->Pt(), 2.5), 0.0);
990 +  fMVAVar_MuRelIsoPFNeutral += TMath::Max(TMath::Min((tmpNeutralHadronIso_DR0p2To0p3 - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuNeutralHadronIsoDR0p2To0p3, mu->Eta(), EffectiveAreaTarget))/mu->Pt(), 2.5), 0.0);
991 +  fMVAVar_MuRelIsoPFNeutral += TMath::Max(TMath::Min((tmpNeutralHadronIso_DR0p3To0p4 - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuNeutralHadronIsoDR0p3To0p4, mu->Eta(), EffectiveAreaTarget))/mu->Pt(), 2.5), 0.0);
992 +  fMVAVar_MuRelIsoPFNeutral += TMath::Max(TMath::Min((tmpNeutralHadronIso_DR0p4To0p5 - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuNeutralHadronIsoDR0p4To0p5, mu->Eta(), EffectiveAreaTarget))/mu->Pt(), 2.5), 0.0);
993 +
994 +  fMVAVar_MuRelIsoPFPhotons  = 0.;
995 +  fMVAVar_MuRelIsoPFPhotons += TMath::Max(TMath::Min((tmpGammaIso_DR0p0To0p1 - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuGammaIsoDR0p0To0p1, mu->Eta(), EffectiveAreaTarget))/mu->Pt(), 2.5), 0.0);
996 +  fMVAVar_MuRelIsoPFPhotons += TMath::Max(TMath::Min((tmpGammaIso_DR0p1To0p2 - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuGammaIsoDR0p1To0p2, mu->Eta(), EffectiveAreaTarget))/mu->Pt(), 2.5), 0.0);
997 +  fMVAVar_MuRelIsoPFPhotons += TMath::Max(TMath::Min((tmpGammaIso_DR0p2To0p3 - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuGammaIsoDR0p2To0p3, mu->Eta(), EffectiveAreaTarget))/mu->Pt(), 2.5), 0.0);
998 +  fMVAVar_MuRelIsoPFPhotons += TMath::Max(TMath::Min((tmpGammaIso_DR0p3To0p4 - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuGammaIsoDR0p3To0p4, mu->Eta(), EffectiveAreaTarget))/mu->Pt(), 2.5), 0.0);
999 +  fMVAVar_MuRelIsoPFPhotons += TMath::Max(TMath::Min((tmpGammaIso_DR0p4To0p5 - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuGammaIsoDR0p4To0p5, mu->Eta(), EffectiveAreaTarget))/mu->Pt(), 2.5), 0.0);
1000 +
1001 +  fMVAVar_MuDeltaRMean      = tmpMuDeltaRMean/TMath::Max(1.0,tmpMuNPFCand);
1002 +  fMVAVar_MuDeltaRSum       = tmpMuDeltaRSum;
1003 +  fMVAVar_MuDensity         = tmpMuDensity;
1004  
1005    Double_t mva = -9999;  
1006    TMVA::Reader *reader = 0;
# Line 793 | Line 1016 | Double_t MuonIDMVA::MVAValue(const Muon
1016    mva = reader->EvaluateMVA( fMethodname );
1017  
1018    if (printDebug) {
1019 <    std::cout << "Debug Muon MVA: \n";
1019 >    std::cout << "Debug Muon MVA: ";
1020      std::cout << " MuTkNchi2 " << fMVAVar_MuTkNchi2              
1021                << " MuGlobalNchi2 " << fMVAVar_MuGlobalNchi2          
1022                << " MuNValidHits " << fMVAVar_MuNValidHits          
# Line 811 | Line 1034 | Double_t MuonIDMVA::MVAValue(const Muon
1034                << " MuHadS9Energy " << fMVAVar_MuHadS9Energy    
1035                << " MuEmS9Energy " << fMVAVar_MuEmS9Energy    
1036                << " eta " << fMVAVar_MuEta  
1037 <              << " pt " << fMVAVar_MuPt << std::endl;
1038 <    
1037 >              << " pt " << fMVAVar_MuPt
1038 >              << " isoInfo: ";
1039      std::cout << fMVAVar_ChargedIso_DR0p0To0p1 << " "
1040                << fMVAVar_ChargedIso_DR0p1To0p2 << " "
1041                << fMVAVar_ChargedIso_DR0p2To0p3 << " "
# Line 827 | Line 1050 | Double_t MuonIDMVA::MVAValue(const Muon
1050                << fMVAVar_NeutralHadronIso_DR0p1To0p2 << " "
1051                << fMVAVar_NeutralHadronIso_DR0p2To0p3 << " "
1052                << fMVAVar_NeutralHadronIso_DR0p3To0p4 << " "
1053 <              << fMVAVar_NeutralHadronIso_DR0p4To0p5 << " "
1054 <              << std::endl;
1055 <    std::cout << "MVA: " << mva
1053 >              << fMVAVar_NeutralHadronIso_DR0p4To0p5;
1054 >    std::cout << " MuRelIsoPFCharged: " << fMVAVar_MuRelIsoPFCharged
1055 >              << " MuRelIsoPFNeutral: " << fMVAVar_MuRelIsoPFNeutral
1056 >              << " MuRelIsoPFPhotons: " << fMVAVar_MuRelIsoPFPhotons
1057 >              << " MuDeltaRMean: "      << fMVAVar_MuDeltaRMean
1058 >              << " MuDeltaRMean: "      << fMVAVar_MuDeltaRMean
1059 >              << " MuDensity: "         << fMVAVar_MuDensity;        
1060 >    std::cout << " MVA: " << mva
1061                << std::endl;
1062    }
1063  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines