![]() |
![]() |
Definition at line 12 of file PFRecoTauDiscriminationAgainstElectron.cc.
PFRecoTauDiscriminationAgainstElectron::PFRecoTauDiscriminationAgainstElectron | ( | const edm::ParameterSet & | iConfig | ) | [inline, explicit] |
Definition at line 14 of file PFRecoTauDiscriminationAgainstElectron.cc.
References edm::ParameterSet::getParameter().
:PFTauDiscriminationProducerBase(iConfig) { emFraction_maxValue_ = iConfig.getParameter<double>("EmFraction_maxValue"); applyCut_emFraction_ = iConfig.getParameter<bool>("ApplyCut_EmFraction"); hcalTotOverPLead_minValue_ = iConfig.getParameter<double>("HcalTotOverPLead_minValue"); applyCut_hcalTotOverPLead_ = iConfig.getParameter<bool>("ApplyCut_HcalTotOverPLead"); hcalMaxOverPLead_minValue_ = iConfig.getParameter<double>("HcalMaxOverPLead_minValue"); applyCut_hcalMaxOverPLead_ = iConfig.getParameter<bool>("ApplyCut_HcalMaxOverPLead"); hcal3x3OverPLead_minValue_ = iConfig.getParameter<double>("Hcal3x3OverPLead_minValue"); applyCut_hcal3x3OverPLead_ = iConfig.getParameter<bool>("ApplyCut_Hcal3x3OverPLead"); EOverPLead_minValue_ = iConfig.getParameter<double>("EOverPLead_minValue"); EOverPLead_maxValue_ = iConfig.getParameter<double>("EOverPLead_maxValue"); applyCut_EOverPLead_ = iConfig.getParameter<bool>("ApplyCut_EOverPLead"); bremsRecoveryEOverPLead_minValue_ = iConfig.getParameter<double>("BremsRecoveryEOverPLead_minValue"); bremsRecoveryEOverPLead_maxValue_ = iConfig.getParameter<double>("BremsRecoveryEOverPLead_maxValue"); applyCut_bremsRecoveryEOverPLead_ = iConfig.getParameter<bool>("ApplyCut_BremsRecoveryEOverPLead"); applyCut_electronPreID_ = iConfig.getParameter<bool>("ApplyCut_ElectronPreID"); applyCut_electronPreID_2D_ = iConfig.getParameter<bool>("ApplyCut_ElectronPreID_2D"); elecPreID0_EOverPLead_maxValue_ = iConfig.getParameter<double>("ElecPreID0_EOverPLead_maxValue"); elecPreID0_HOverPLead_minValue_ = iConfig.getParameter<double>("ElecPreID0_HOverPLead_minValue"); elecPreID1_EOverPLead_maxValue_ = iConfig.getParameter<double>("ElecPreID1_EOverPLead_maxValue"); elecPreID1_HOverPLead_minValue_ = iConfig.getParameter<double>("ElecPreID1_HOverPLead_minValue"); applyCut_PFElectronMVA_ = iConfig.getParameter<bool>("ApplyCut_PFElectronMVA"); pfelectronMVA_maxValue_ = iConfig.getParameter<double>("PFElectronMVA_maxValue"); applyCut_ecalCrack_ = iConfig.getParameter<bool>("ApplyCut_EcalCrackCut"); }
PFRecoTauDiscriminationAgainstElectron::~PFRecoTauDiscriminationAgainstElectron | ( | ) | [inline] |
Definition at line 51 of file PFRecoTauDiscriminationAgainstElectron.cc.
{}
double PFRecoTauDiscriminationAgainstElectron::discriminate | ( | const PFTauRef & | pfTau | ) |
Definition at line 86 of file PFRecoTauDiscriminationAgainstElectron.cc.
References edm::Ref< C, T, F >::isNonnull().
{ // ensure tau has at least one charged object if( (*thePFTauRef).leadPFChargedHadrCand().isNull() ) { return 0.; } else { // Check if track goes to Ecal crack TrackRef myleadTk; myleadTk=(*thePFTauRef).leadPFChargedHadrCand()->trackRef(); math::XYZPointF myleadTkEcalPos = (*thePFTauRef).leadPFChargedHadrCand()->positionAtECALEntrance(); if(myleadTk.isNonnull()) { if (applyCut_ecalCrack_ && isInEcalCrack(myleadTkEcalPos.eta())) { return 0.; } } } bool decision = false; bool emfPass = true, htotPass = true, hmaxPass = true; bool h3x3Pass = true, estripPass = true, erecovPass = true; bool epreidPass = true, epreid2DPass = true; bool mvaPass = true; if (applyCut_emFraction_) { if ((*thePFTauRef).emFraction() > emFraction_maxValue_) { emfPass = false; } } if (applyCut_hcalTotOverPLead_) { if ((*thePFTauRef).hcalTotOverPLead() < hcalTotOverPLead_minValue_) { htotPass = false; } } if (applyCut_hcalMaxOverPLead_) { if ((*thePFTauRef).hcalMaxOverPLead() < hcalMaxOverPLead_minValue_) { hmaxPass = false; } } if (applyCut_hcal3x3OverPLead_) { if ((*thePFTauRef).hcal3x3OverPLead() < hcal3x3OverPLead_minValue_) { h3x3Pass = false; } } if (applyCut_EOverPLead_) { if ((*thePFTauRef).ecalStripSumEOverPLead() > EOverPLead_minValue_ && (*thePFTauRef).ecalStripSumEOverPLead() < EOverPLead_maxValue_) { estripPass = false; } else { estripPass = true; } } if (applyCut_bremsRecoveryEOverPLead_) { if ((*thePFTauRef).bremsRecoveryEOverPLead() > bremsRecoveryEOverPLead_minValue_ && (*thePFTauRef).bremsRecoveryEOverPLead() < bremsRecoveryEOverPLead_maxValue_) { erecovPass = false; } else { erecovPass = true; } } if (applyCut_electronPreID_) { if ((*thePFTauRef).electronPreIDDecision()) { epreidPass = false; } else { epreidPass = true; } } if (applyCut_electronPreID_2D_) { if ( ((*thePFTauRef).electronPreIDDecision() && ((*thePFTauRef).ecalStripSumEOverPLead() < elecPreID1_EOverPLead_maxValue_ || (*thePFTauRef).hcal3x3OverPLead() > elecPreID1_HOverPLead_minValue_)) || (!(*thePFTauRef).electronPreIDDecision() && ((*thePFTauRef).ecalStripSumEOverPLead() < elecPreID0_EOverPLead_maxValue_ || (*thePFTauRef).hcal3x3OverPLead() > elecPreID0_HOverPLead_minValue_)) ){ epreid2DPass = true; } else { epreid2DPass = false; } } if (applyCut_PFElectronMVA_) { if ((*thePFTauRef).electronPreIDOutput()>pfelectronMVA_maxValue_) { mvaPass = false; } } decision = emfPass && htotPass && hmaxPass && h3x3Pass && estripPass && erecovPass && epreidPass && epreid2DPass && mvaPass; return (decision ? 1. : 0.); }
bool PFRecoTauDiscriminationAgainstElectron::isInEcalCrack | ( | double | eta | ) | const [private] |
Definition at line 68 of file PFRecoTauDiscriminationAgainstElectron.cc.
bool PFRecoTauDiscriminationAgainstElectron::applyCut_ecalCrack_ [private] |
Definition at line 82 of file PFRecoTauDiscriminationAgainstElectron.cc.
Definition at line 72 of file PFRecoTauDiscriminationAgainstElectron.cc.
Definition at line 74 of file PFRecoTauDiscriminationAgainstElectron.cc.
bool PFRecoTauDiscriminationAgainstElectron::applyCut_emFraction_ [private] |
Definition at line 56 of file PFRecoTauDiscriminationAgainstElectron.cc.
bool PFRecoTauDiscriminationAgainstElectron::applyCut_EOverPLead_ [private] |
Definition at line 65 of file PFRecoTauDiscriminationAgainstElectron.cc.
Definition at line 62 of file PFRecoTauDiscriminationAgainstElectron.cc.
Definition at line 60 of file PFRecoTauDiscriminationAgainstElectron.cc.
Definition at line 58 of file PFRecoTauDiscriminationAgainstElectron.cc.
Definition at line 80 of file PFRecoTauDiscriminationAgainstElectron.cc.
Definition at line 70 of file PFRecoTauDiscriminationAgainstElectron.cc.
Definition at line 69 of file PFRecoTauDiscriminationAgainstElectron.cc.
Definition at line 75 of file PFRecoTauDiscriminationAgainstElectron.cc.
Definition at line 76 of file PFRecoTauDiscriminationAgainstElectron.cc.
Definition at line 77 of file PFRecoTauDiscriminationAgainstElectron.cc.
Definition at line 78 of file PFRecoTauDiscriminationAgainstElectron.cc.
double PFRecoTauDiscriminationAgainstElectron::emFraction_maxValue_ [private] |
Definition at line 57 of file PFRecoTauDiscriminationAgainstElectron.cc.
double PFRecoTauDiscriminationAgainstElectron::EOverPLead_maxValue_ [private] |
Definition at line 67 of file PFRecoTauDiscriminationAgainstElectron.cc.
double PFRecoTauDiscriminationAgainstElectron::EOverPLead_minValue_ [private] |
Definition at line 66 of file PFRecoTauDiscriminationAgainstElectron.cc.
double PFRecoTauDiscriminationAgainstElectron::hcal3x3OverPLead_minValue_ [private] |
Definition at line 63 of file PFRecoTauDiscriminationAgainstElectron.cc.
double PFRecoTauDiscriminationAgainstElectron::hcalMaxOverPLead_minValue_ [private] |
Definition at line 61 of file PFRecoTauDiscriminationAgainstElectron.cc.
double PFRecoTauDiscriminationAgainstElectron::hcalTotOverPLead_minValue_ [private] |
Definition at line 59 of file PFRecoTauDiscriminationAgainstElectron.cc.
double PFRecoTauDiscriminationAgainstElectron::pfelectronMVA_maxValue_ [private] |
Definition at line 81 of file PFRecoTauDiscriminationAgainstElectron.cc.
Definition at line 55 of file PFRecoTauDiscriminationAgainstElectron.cc.