CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Public Attributes | Private Member Functions
Photon.Photon Class Reference
Inheritance diagram for Photon.Photon:

Public Member Functions

def __init__
 
def calScaledIsoValueExp
 
def calScaledIsoValueLin
 
def calScaledIsoValueQuadr
 
def chargedHadronIso
 
def CutBasedIDWP
 
def etaRegionID
 
def full5x5_r9
 
def full5x5_sigmaIetaIeta
 
def hOVERe
 
def neutralHadronIso
 
def passPhotonID
 
def passPhotonIso
 
def photonIDCSA14
 
def photonIso
 
def r9
 
def sigmaIetaIeta
 

Public Attributes

 rho
 

Private Member Functions

def _physObjInit
 

Detailed Description

Definition at line 8 of file Photon.py.

Constructor & Destructor Documentation

def Photon.Photon.__init__ (   self,
  args,
  kwargs 
)
Initializing rho to None. The user is responsible for setting it to the right value 
to get the rho-corrected isolation.

Definition at line 10 of file Photon.py.

References Electron.Electron._physObjInit(), Photon.Photon._physObjInit(), and Jet.Jet._physObjInit().

10 
11  def __init__(self, *args, **kwargs):
12  '''Initializing rho to None. The user is responsible for setting it to the right value
13  to get the rho-corrected isolation.'''
14  super(Photon, self).__init__(*args, **kwargs)
15  self._physObjInit()
def _physObjInit
Definition: Photon.py:16
def __init__
Definition: Photon.py:10

Member Function Documentation

def Photon.Photon._physObjInit (   self)
private

Definition at line 16 of file Photon.py.

Referenced by Photon.Photon.__init__().

16 
17  def _physObjInit(self):
18  self.rho = None
19 
def _physObjInit
Definition: Photon.py:16
def Photon.Photon.calScaledIsoValueExp (   self,
  offset,
  slope_exp,
  offset_exp 
)

Definition at line 158 of file Photon.py.

References funct.exp(), PuppiCandidate.pt, eetest::CandForTest.pt(), btagbtvdeep::TrackPairFeatures.pt, btagbtvdeep::JetFeatures.pt, btagbtvdeep::SecondaryVertexFeatures.pt, mypt.pt, btagbtvdeep::SeedingTrackFeatures.pt, res::HelperElectron.pt(), res::HelperMuon.pt(), hi::TrackStructure.pt, res::HelperJet.pt(), L1TkMuMantraDF::track_df.pt, Run3ScoutingParticle.pt(), ScoutingParticle.pt(), reco::VoronoiBackground.pt(), L1MuCSCPtLut.pt(), l1t::Vertex.pt(), l1tVertexFinder::L1Track.pt(), PtHatReweightUserHook.pt, L1TkMuMantraDF::muon_df.pt, ScoutingPhoton.pt(), btagbtvdeep::SeedingTrackInfoBuilder.pt(), MatchStruct.pt, RecoObj.pt, dnn_inputs_2017v1.pt, trklet::L1SimTrack.pt(), ALILine.pt(), PtEtaPhiMass.pt(), L2TauPixelTrackMatch::TinyTrack.pt, reco::MuonMETCorrectionData.pt(), tauImpactParameter::LorentzVectorParticle.pt, ResonanceBuilder.Resonance.pt(), MTDTrackQualityMVA.pt, DTMuonLocalAlignment.pt, antiElecIDMVA6_blocks::TauVars.pt, L1Analysis::L1AnalysisRecoTauDataFormat.pt, L1Analysis::L1AnalysisRecoElectronDataFormat.pt, PatTrackAnalyzer::Plots.pt, L1Analysis::L1AnalysisRecoMuon2DataFormat.pt, PGlobalSimHit::Trk.pt, HepLine3D.pt(), tmtt::TP.pt(), l1tVertexFinder::VertexNTupler::GenJetsBranchData.pt, L1TkMuonProducer::PropState.pt, trigger::TriggerObject.pt(), PhysicsObjectsMonitor.pt, trklet::Track.pt(), jpt::Map.pt(), RecoVertex<>.pt(), l1tVertexFinder::RecoVertex< T >.pt(), RecoVertex< L1Track >.pt(), reco::CaloMuon.pt(), TtFullHadSignalSel.pt(), BSTrkParameters.pt(), MuScleFitMuon.pt(), trklet::L1TStub.pt(), Run3ScoutingPhoton.pt(), PTrajectoryStateOnDet.pt(), SiStripLAProfileBooker.pt, reco::ForwardProton.pt(), Run3ScoutingCaloJet.pt(), ScoutingCaloJet.pt(), ScoutingElectron.pt(), l1tVertexFinder::VertexNTupler::GenParticlesBranchData.pt, TauL1TPair.pt(), SimpleL1MuGMTCand.pt(), L1MuDTTrack.pt(), HTrackVariables.pt(), TrackSoAHeterogeneousT< S >.pt, L1MuBMTrack.pt(), ValidationMisalignedTracker.pt, susybsm::HSCParticle.pt(), QualityCutsAnalyzer::histogram_element_t.pt, BPhysicsValidation::ParticleMonitor.pt, TrajectoryStateClosestToPoint.pt(), Run3ScoutingElectron.pt(), reco::PreId.pt(), L1TPhase2CorrelatorOffline::SimpleObject.pt, Lepton.pt, Run3ScoutingPFJet.pt(), ScoutingPFJet.pt(), TrackerValidationVariables::AVTrackStruct.pt, reco::Candidate.pt(), l1tVertexFinder::VertexNTupler::RecoTracksBranchData.pt, egHLT::OffPho.pt(), MuonResidualsFitter::MuonAlignmentTreeRow.pt, ScoutingMuon.pt(), reco::PFCluster.pt(), tmtt::KFTrackletTrack.pt(), PrimaryVertexAnalyzer4PUSlimmed::recoPrimaryVertex.pt, reco::Particle.pt(), contrib::CMSBoostedTauSeedingAlgorithmStructure.pt(), l1tVertexFinder::VertexNTupler::TrueTracksBranchData.pt, CaloParticle.pt(), TrackStruct::TrackParameterStruct.pt, Primary4DVertexValidation::recoPrimaryVertex.pt, SimCluster.pt(), reco::ParticleState.pt(), AlignmentMonitorMuonSystemMap1D::MyTrack.pt, JetAnalyzer_HeavyIons_matching::MyJet.pt, TrackingParticle.pt(), HGCalClusterT< C >.pt(), reco::LeafCandidate.pt(), CandidateWithRef< Ref >.pt(), tmtt::L1track3D.pt(), L1Analysis::L1AnalysisRecoMuonDataFormat.pt, PtHatRapReweightUserHook.pt, Run3ScoutingMuon.pt(), CosmicRateAnalyzer.pt, MuonGmtPair.pt(), L1TPhase2CorrelatorOffline::McVars.pt, RawParticle.pt(), pat::MET::Vector2.pt(), l1t::EMTFTrack.pt, L1TPhase2CorrelatorOffline::RecoVars.pt, tmtt::L1fittedTrack.pt(), reco::TrackBase.pt(), pat::PackedGenParticle.pt(), L1CaloJetProducer::simpleL1obj.pt(), L1EGCrystalClusterEmulatorProducer::SimpleCaloHit.pt(), pat::PackedCandidate.pt(), PMuonSimHit::Trk.pt, and PTrackerSimHit::Trk.pt.

Referenced by Photon.Photon.passPhotonIso().

159  def calScaledIsoValueExp(self,offset,slope_exp,offset_exp):
160  return offset + exp(slope_exp*self.pt()+offset_exp)
Exp< T >::type exp(const T &t)
Definition: Exp.h:22
def calScaledIsoValueExp
Definition: Photon.py:158
def Photon.Photon.calScaledIsoValueLin (   self,
  offset,
  slope 
)

Definition at line 152 of file Photon.py.

References PuppiCandidate.pt, eetest::CandForTest.pt(), btagbtvdeep::TrackPairFeatures.pt, btagbtvdeep::JetFeatures.pt, btagbtvdeep::SecondaryVertexFeatures.pt, mypt.pt, btagbtvdeep::SeedingTrackFeatures.pt, res::HelperElectron.pt(), res::HelperMuon.pt(), hi::TrackStructure.pt, res::HelperJet.pt(), L1TkMuMantraDF::track_df.pt, Run3ScoutingParticle.pt(), ScoutingParticle.pt(), reco::VoronoiBackground.pt(), L1MuCSCPtLut.pt(), l1t::Vertex.pt(), PtHatReweightUserHook.pt, l1tVertexFinder::L1Track.pt(), L1TkMuMantraDF::muon_df.pt, ScoutingPhoton.pt(), btagbtvdeep::SeedingTrackInfoBuilder.pt(), MatchStruct.pt, dnn_inputs_2017v1.pt, RecoObj.pt, trklet::L1SimTrack.pt(), ALILine.pt(), PtEtaPhiMass.pt(), L2TauPixelTrackMatch::TinyTrack.pt, reco::MuonMETCorrectionData.pt(), tauImpactParameter::LorentzVectorParticle.pt, ResonanceBuilder.Resonance.pt(), MTDTrackQualityMVA.pt, DTMuonLocalAlignment.pt, antiElecIDMVA6_blocks::TauVars.pt, L1Analysis::L1AnalysisRecoTauDataFormat.pt, L1Analysis::L1AnalysisRecoElectronDataFormat.pt, PatTrackAnalyzer::Plots.pt, L1Analysis::L1AnalysisRecoMuon2DataFormat.pt, PGlobalSimHit::Trk.pt, HepLine3D.pt(), tmtt::TP.pt(), l1tVertexFinder::VertexNTupler::GenJetsBranchData.pt, L1TkMuonProducer::PropState.pt, trigger::TriggerObject.pt(), PhysicsObjectsMonitor.pt, trklet::Track.pt(), jpt::Map.pt(), RecoVertex< L1Track >.pt(), l1tVertexFinder::RecoVertex< T >.pt(), RecoVertex<>.pt(), reco::CaloMuon.pt(), TtFullHadSignalSel.pt(), BSTrkParameters.pt(), trklet::L1TStub.pt(), MuScleFitMuon.pt(), Run3ScoutingPhoton.pt(), PTrajectoryStateOnDet.pt(), SiStripLAProfileBooker.pt, reco::ForwardProton.pt(), Run3ScoutingCaloJet.pt(), ScoutingCaloJet.pt(), ScoutingElectron.pt(), l1tVertexFinder::VertexNTupler::GenParticlesBranchData.pt, TauL1TPair.pt(), SimpleL1MuGMTCand.pt(), L1MuDTTrack.pt(), HTrackVariables.pt(), TrackSoAHeterogeneousT< S >.pt, L1MuBMTrack.pt(), ValidationMisalignedTracker.pt, susybsm::HSCParticle.pt(), QualityCutsAnalyzer::histogram_element_t.pt, BPhysicsValidation::ParticleMonitor.pt, TrajectoryStateClosestToPoint.pt(), Run3ScoutingElectron.pt(), reco::PreId.pt(), L1TPhase2CorrelatorOffline::SimpleObject.pt, Lepton.pt, Run3ScoutingPFJet.pt(), ScoutingPFJet.pt(), TrackerValidationVariables::AVTrackStruct.pt, reco::Candidate.pt(), l1tVertexFinder::VertexNTupler::RecoTracksBranchData.pt, egHLT::OffPho.pt(), MuonResidualsFitter::MuonAlignmentTreeRow.pt, ScoutingMuon.pt(), reco::PFCluster.pt(), tmtt::KFTrackletTrack.pt(), PrimaryVertexAnalyzer4PUSlimmed::recoPrimaryVertex.pt, reco::Particle.pt(), contrib::CMSBoostedTauSeedingAlgorithmStructure.pt(), l1tVertexFinder::VertexNTupler::TrueTracksBranchData.pt, TrackStruct::TrackParameterStruct.pt, CaloParticle.pt(), Primary4DVertexValidation::recoPrimaryVertex.pt, SimCluster.pt(), reco::ParticleState.pt(), AlignmentMonitorMuonSystemMap1D::MyTrack.pt, JetAnalyzer_HeavyIons_matching::MyJet.pt, TrackingParticle.pt(), HGCalClusterT< C >.pt(), CandidateWithRef< Ref >.pt(), reco::LeafCandidate.pt(), tmtt::L1track3D.pt(), L1Analysis::L1AnalysisRecoMuonDataFormat.pt, PtHatRapReweightUserHook.pt, Run3ScoutingMuon.pt(), CosmicRateAnalyzer.pt, MuonGmtPair.pt(), L1TPhase2CorrelatorOffline::McVars.pt, pat::MET::Vector2.pt(), RawParticle.pt(), l1t::EMTFTrack.pt, L1TPhase2CorrelatorOffline::RecoVars.pt, tmtt::L1fittedTrack.pt(), reco::TrackBase.pt(), pat::PackedGenParticle.pt(), L1CaloJetProducer::simpleL1obj.pt(), L1EGCrystalClusterEmulatorProducer::SimpleCaloHit.pt(), pat::PackedCandidate.pt(), PMuonSimHit::Trk.pt, and PTrackerSimHit::Trk.pt.

Referenced by Photon.Photon.passPhotonIso().

153  def calScaledIsoValueLin(self,offset,slope):
154  return slope*self.pt()+offset
def calScaledIsoValueLin
Definition: Photon.py:152
def Photon.Photon.calScaledIsoValueQuadr (   self,
  offset,
  term_1,
  term_2 
)

Definition at line 155 of file Photon.py.

References funct.pow(), PuppiCandidate.pt, eetest::CandForTest.pt(), btagbtvdeep::TrackPairFeatures.pt, btagbtvdeep::JetFeatures.pt, btagbtvdeep::SecondaryVertexFeatures.pt, mypt.pt, btagbtvdeep::SeedingTrackFeatures.pt, res::HelperElectron.pt(), res::HelperMuon.pt(), hi::TrackStructure.pt, res::HelperJet.pt(), L1TkMuMantraDF::track_df.pt, Run3ScoutingParticle.pt(), ScoutingParticle.pt(), reco::VoronoiBackground.pt(), L1MuCSCPtLut.pt(), l1t::Vertex.pt(), PtHatReweightUserHook.pt, l1tVertexFinder::L1Track.pt(), L1TkMuMantraDF::muon_df.pt, ScoutingPhoton.pt(), btagbtvdeep::SeedingTrackInfoBuilder.pt(), MatchStruct.pt, dnn_inputs_2017v1.pt, RecoObj.pt, trklet::L1SimTrack.pt(), ALILine.pt(), PtEtaPhiMass.pt(), L2TauPixelTrackMatch::TinyTrack.pt, reco::MuonMETCorrectionData.pt(), tauImpactParameter::LorentzVectorParticle.pt, ResonanceBuilder.Resonance.pt(), MTDTrackQualityMVA.pt, DTMuonLocalAlignment.pt, antiElecIDMVA6_blocks::TauVars.pt, L1Analysis::L1AnalysisRecoTauDataFormat.pt, L1Analysis::L1AnalysisRecoElectronDataFormat.pt, PatTrackAnalyzer::Plots.pt, L1Analysis::L1AnalysisRecoMuon2DataFormat.pt, PGlobalSimHit::Trk.pt, HepLine3D.pt(), tmtt::TP.pt(), l1tVertexFinder::VertexNTupler::GenJetsBranchData.pt, L1TkMuonProducer::PropState.pt, trigger::TriggerObject.pt(), PhysicsObjectsMonitor.pt, trklet::Track.pt(), jpt::Map.pt(), RecoVertex< L1Track >.pt(), l1tVertexFinder::RecoVertex< T >.pt(), RecoVertex<>.pt(), reco::CaloMuon.pt(), TtFullHadSignalSel.pt(), BSTrkParameters.pt(), trklet::L1TStub.pt(), MuScleFitMuon.pt(), Run3ScoutingPhoton.pt(), PTrajectoryStateOnDet.pt(), SiStripLAProfileBooker.pt, reco::ForwardProton.pt(), Run3ScoutingCaloJet.pt(), ScoutingCaloJet.pt(), ScoutingElectron.pt(), l1tVertexFinder::VertexNTupler::GenParticlesBranchData.pt, TauL1TPair.pt(), SimpleL1MuGMTCand.pt(), L1MuDTTrack.pt(), HTrackVariables.pt(), TrackSoAHeterogeneousT< S >.pt, L1MuBMTrack.pt(), ValidationMisalignedTracker.pt, susybsm::HSCParticle.pt(), QualityCutsAnalyzer::histogram_element_t.pt, BPhysicsValidation::ParticleMonitor.pt, TrajectoryStateClosestToPoint.pt(), Run3ScoutingElectron.pt(), reco::PreId.pt(), L1TPhase2CorrelatorOffline::SimpleObject.pt, Lepton.pt, Run3ScoutingPFJet.pt(), ScoutingPFJet.pt(), TrackerValidationVariables::AVTrackStruct.pt, reco::Candidate.pt(), l1tVertexFinder::VertexNTupler::RecoTracksBranchData.pt, egHLT::OffPho.pt(), MuonResidualsFitter::MuonAlignmentTreeRow.pt, ScoutingMuon.pt(), reco::PFCluster.pt(), tmtt::KFTrackletTrack.pt(), PrimaryVertexAnalyzer4PUSlimmed::recoPrimaryVertex.pt, reco::Particle.pt(), contrib::CMSBoostedTauSeedingAlgorithmStructure.pt(), l1tVertexFinder::VertexNTupler::TrueTracksBranchData.pt, TrackStruct::TrackParameterStruct.pt, CaloParticle.pt(), Primary4DVertexValidation::recoPrimaryVertex.pt, SimCluster.pt(), reco::ParticleState.pt(), AlignmentMonitorMuonSystemMap1D::MyTrack.pt, JetAnalyzer_HeavyIons_matching::MyJet.pt, TrackingParticle.pt(), HGCalClusterT< C >.pt(), CandidateWithRef< Ref >.pt(), reco::LeafCandidate.pt(), tmtt::L1track3D.pt(), L1Analysis::L1AnalysisRecoMuonDataFormat.pt, PtHatRapReweightUserHook.pt, Run3ScoutingMuon.pt(), CosmicRateAnalyzer.pt, MuonGmtPair.pt(), L1TPhase2CorrelatorOffline::McVars.pt, pat::MET::Vector2.pt(), RawParticle.pt(), l1t::EMTFTrack.pt, L1TPhase2CorrelatorOffline::RecoVars.pt, tmtt::L1fittedTrack.pt(), reco::TrackBase.pt(), pat::PackedGenParticle.pt(), L1CaloJetProducer::simpleL1obj.pt(), L1EGCrystalClusterEmulatorProducer::SimpleCaloHit.pt(), pat::PackedCandidate.pt(), PMuonSimHit::Trk.pt, and PTrackerSimHit::Trk.pt.

Referenced by Photon.Photon.passPhotonIso().

156  def calScaledIsoValueQuadr(self,offset,term_1,term_2):
157  return offset + term_1*self.pt() + term_2*pow(self.pt(),2)
def calScaledIsoValueQuadr
Definition: Photon.py:155
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
def Photon.Photon.chargedHadronIso (   self,
  corr = None 
)

Definition at line 35 of file Photon.py.

References SiStripPI.max, Photon.Photon.rho, Electron.Electron.rho, correctionValue_class.rho, AlignmentMonitorMuonSystemMap1D::MyResidual.rho, and objects.JetAnalyzer.JetAnalyzer.rho.

Referenced by Lepton.Lepton.absIsoFromEA(), and Photon.Photon.passPhotonIso().

35 
36  def chargedHadronIso(self, corr=None):
37  isoCharged = self.ftprAbsIsoCharged03 if hasattr(self,'ftprAbsIsoCharged03') else self.physObj.chargedHadronIso()
38  if corr is None or corr == "": return isoCharged
39  elif corr == "rhoArea": return max(isoCharged-self.rho*self.EffectiveArea03[0],0)
40  else: raise RuntimeError("Photon isolation correction '%s' not yet implemented in Photon.py" % corr)
def chargedHadronIso
Definition: Photon.py:35
def Photon.Photon.CutBasedIDWP (   self,
  name 
)

Definition at line 86 of file Photon.py.

References join().

Referenced by Photon.Photon.passPhotonID(), and Photon.Photon.passPhotonIso().

86 
87  def CutBasedIDWP( self, name):
88  # recommeneded PHYS14 working points from POG
89  WPs = {
90  # https://twiki.cern.ch/twiki/bin/viewauth/CMS/CutBasedPhotonIdentificationRun2#Pointers_for_PHYS14_selection_im
91  "POG_PHYS14_25ns_Loose": {"conversionVeto": [True,True], "H/E":[0.028,0.093],"sigmaIEtaIEta":[0.0107,0.0272],
92  "chaHadIso":[2.67,1.79],"neuHadIso":[[7.23,0.0028,0.5408],[8.89,0.01725]],"phoIso":[[2.11,0.0014],[3.09,0.0091]]},
93 
94  # https://twiki.cern.ch/twiki/bin/view/CMS/CutBasedPhotonIdentificationRun2?rev=11
95  "POG_PHYS14_25ns_Loose_old": {"conversionVeto": [True,True], "H/E":[0.048,0.069],"sigmaIEtaIEta":[0.0106,0.0266],
96  "chaHadIso":[2.56,3.12],"neuHadIso":[[3.74,0.0025,0.],[17.11,0.0118,0.]],"phoIso":[[2.68,0.001],[2.70,0.0059]]},
97 
98  "POG_PHYS14_25ns_Medium": {"conversionVeto": [True,True], "H/E":[0.012,0.023],"sigmaIEtaIEta":[0.0100,0.0267],
99  "chaHadIso":[1.79,1.09],"neuHadIso":[[0.16,0.0028,0.5408],[4.31,0.0172]],"phoIso":[[1.90,0.0014],[1.90,0.0091]]},
100 
101  "POG_PHYS14_25ns_Tight": {"conversionVeto": [True,True], "H/E":[0.010,0.015],"sigmaIEtaIEta":[0.0100,0.0265],
102  "chaHadIso":[1.66,1.04],"neuHadIso":[[0.14,0.0028,0.5408],[3.89,0.0172]],"phoIso":[[1.40,0.0014],[1.40,0.0091]]},
103 
104  # https://twiki.cern.ch/twiki/bin/viewauth/CMS/CutBasedPhotonIdentificationRun2#SPRING15_selections_bunch_crossing
105  "POG_SPRING15_50ns_Loose": {"conversionVeto": [True,True], "H/E":[0.05,0.05],"sigmaIEtaIEta":[0.0103,0.0277],
106  "chaHadIso":[2.44,1.84],"neuHadIso":[[2.57,0.0044,0.5809],[4.00, 0.0040,0.9402]],"phoIso":[[1.92,0.0043],[2.15,0.0041]]},
107 
108  "POG_SPRING15_50ns_Medium": {"conversionVeto": [True,True], "H/E":[0.05,0.05],"sigmaIEtaIEta":[0.0100,0.0267],
109  "chaHadIso":[1.31,1.25],"neuHadIso":[[0.60,0.0044,0.5809],[1.65, 0.0040,0.9402]],"phoIso":[[1.33,0.0043],[1.02,0.0041]]},
110 
111  "POG_SPRING15_50ns_Tight": {"conversionVeto": [True,True], "H/E":[0.05,0.05],"sigmaIEtaIEta":[0.0100,0.0267],
112  "chaHadIso":[0.91,0.65],"neuHadIso":[[0.33,0.0044,0.5809],[0.93, 0.0040,0.9402]],"phoIso":[[0.61,0.0043],[0.54,0.0041]]},
113 
114  # https://twiki.cern.ch/twiki/bin/viewauth/CMS/CutBasedPhotonIdentificationRun2#SPRING15_selections_25_ns
115  "POG_SPRING15_25ns_Loose": {"conversionVeto": [True,True], "H/E":[0.05,0.05],"sigmaIEtaIEta":[0.0102,0.0274],
116  "chaHadIso":[3.32,1.97],"neuHadIso":[[1.92,0.0014,0.000019],[11.86, 0.00139,0.000025]],"phoIso":[[0.81,0.0053],[0.83,0.0034]]},
117 
118  "POG_SPRING15_25ns_Medium": {"conversionVeto": [True,True], "H/E":[0.05,0.05],"sigmaIEtaIEta":[0.0102,0.0268],
119  "chaHadIso":[1.37,1.10],"neuHadIso":[[1.06,0.0014,0.000019],[2.69, 0.00139,0.000025]],"phoIso":[[0.28,0.0053],[0.39,0.0034]]},
120 
121  "POG_SPRING15_25ns_Tight": {"conversionVeto": [True,True], "H/E":[0.05,0.05],"sigmaIEtaIEta":[0.0100,0.0268],
122  "chaHadIso":[0.76,0.56],"neuHadIso":[[0.97,0.0014,0.000019],[2.09, 0.00139,0.000025]],"phoIso":[[0.08,0.0053],[0.16,0.0034]]},
123 
124  # https://twiki.cern.ch/twiki/bin/viewauth/CMS/CutBasedPhotonIdentificationRun2#CSA14_selections_for_20_bx_25_sc
125  "POG_CSA14_25ns_Loose": {"conversionVeto": [True,True], "H/E":[0.553,0.062],"sigmaIEtaIEta":[0.0099,0.0284],
126  "chaHadIso":[2.49,1.04],"neuHadIso":[[15.43,0.007],[19.71,0.0129]],"phoIso":[[9.42,0.0033],[11.88,0.0108]]},
127 
128  "POG_CSA14_25ns_Medium": {"conversionVeto": [True,True], "H/E":[0.058,0.020],"sigmaIEtaIEta":[0.0099,0.0268],
129  "chaHadIso":[1.91,0.82],"neuHadIso":[[4.66,0.007],[14.65,0.0129]],"phoIso":[[4.29,0.0033],[4.06,0.0108]]},
130 
131  "POG_CSA14_25ns_Tight": {"conversionVeto": [True,True], "H/E":[0.019,0.016],"sigmaIEtaIEta":[0.0099,0.0263],
132  "chaHadIso":[1.61,0.69],"neuHadIso":[[3.98,0.007],[4.52,0.0129]],"phoIso":[[3.01,0.0033],[3.61,0.0108]]},
133 
134 
135  }
136 
137  baseWP = re.split('_',name)
138  if "looseSieie" in baseWP[-1]:
139  baseWP.pop()
140  WPs["_".join(baseWP)]["sigmaIEtaIEta"] = [0.015,0.035]
141 
142  return WPs["_".join(baseWP)]
143 
def CutBasedIDWP
Definition: Photon.py:86
static std::string join(char **cmd)
Definition: RemoteFile.cc:19
def Photon.Photon.etaRegionID (   self)

Definition at line 144 of file Photon.py.

References funct.abs().

Referenced by Photon.Photon.passPhotonID(), and Photon.Photon.passPhotonIso().

145  def etaRegionID(self):
146  #return 0 if the photon is in barrel and 1 if in endcap
147  if abs(self.physObj.eta())<1.479 :
148  idForBarrel = 0
149  else:
150  idForBarrel = 1
151  return idForBarrel
def etaRegionID
Definition: Photon.py:144
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
def Photon.Photon.full5x5_r9 (   self)

Definition at line 29 of file Photon.py.

29 
30  def full5x5_r9(self):
31  return self.physObj.full5x5_r9()
def full5x5_r9
Definition: Photon.py:29
def Photon.Photon.full5x5_sigmaIetaIeta (   self)

Definition at line 32 of file Photon.py.

Referenced by Photon.Photon.passPhotonID(), and Photon.Photon.photonIDCSA14().

32 
33  def full5x5_sigmaIetaIeta(self):
34  return self.physObj.full5x5_sigmaIetaIeta()
def full5x5_sigmaIetaIeta
Definition: Photon.py:32
def Photon.Photon.hOVERe (   self)

Definition at line 20 of file Photon.py.

Referenced by Photon.Photon.passPhotonID(), and Photon.Photon.photonIDCSA14().

20 
21  def hOVERe(self):
22  return self.physObj.hadTowOverEm()
def hOVERe
Definition: Photon.py:20
def Photon.Photon.neutralHadronIso (   self,
  corr = None 
)

Definition at line 41 of file Photon.py.

References SiStripPI.max, Photon.Photon.rho, Electron.Electron.rho, correctionValue_class.rho, AlignmentMonitorMuonSystemMap1D::MyResidual.rho, and objects.JetAnalyzer.JetAnalyzer.rho.

Referenced by Lepton.Lepton.absIsoFromEA(), and Photon.Photon.passPhotonIso().

41 
42  def neutralHadronIso(self, corr=None):
43  isoNHad = self.ftprAbsIsoNHad03 if hasattr(self,'ftprAbsIsoNHad03') else self.physObj.neutralHadronIso()
44  if corr is None or corr == "": return isoNHad
45  elif corr == "rhoArea": return max(isoNHad-self.rho*self.EffectiveArea03[1],0)
46  else: raise RuntimeError("Photon isolation correction '%s' not yet implemented in Photon.py" % corr)
def neutralHadronIso
Definition: Photon.py:41
def Photon.Photon.passPhotonID (   self,
  name,
  conversionSafe_eleVeto = False 
)

Definition at line 161 of file Photon.py.

References Photon.Photon.CutBasedIDWP(), Photon.Photon.etaRegionID(), Photon.Photon.full5x5_sigmaIetaIeta(), reco::Photon.full5x5_sigmaIetaIeta(), reco::GsfElectron.full5x5_sigmaIetaIeta(), and Photon.Photon.hOVERe().

162  def passPhotonID(self,name,conversionSafe_eleVeto=False):
163 
164  idForBarrel = self.etaRegionID()
165  passPhotonID = True
166 
167  if self.CutBasedIDWP(name)["conversionVeto"][idForBarrel]:
168  if (conversionSafe_eleVeto==False and self.physObj.hasPixelSeed()) or (conversionSafe_eleVeto==True and self.physObj.passElectronVeto()==False):
169  passPhotonID = False
170 
171  if self.CutBasedIDWP(name)["H/E"][idForBarrel] < self.hOVERe():
172  passPhotonID = False
173 
174  if self.CutBasedIDWP(name)["sigmaIEtaIEta"][idForBarrel] < self.full5x5_sigmaIetaIeta():
175  passPhotonID = False
176 
177  return passPhotonID
def CutBasedIDWP
Definition: Photon.py:86
def etaRegionID
Definition: Photon.py:144
def hOVERe
Definition: Photon.py:20
def passPhotonID
Definition: Photon.py:161
def full5x5_sigmaIetaIeta
Definition: Photon.py:32
def Photon.Photon.passPhotonIso (   self,
  name,
  isocorr 
)

Definition at line 178 of file Photon.py.

References Photon.Photon.calScaledIsoValueExp(), Photon.Photon.calScaledIsoValueLin(), Photon.Photon.calScaledIsoValueQuadr(), pat::PFIsolation.chargedHadronIso(), Photon.Photon.chargedHadronIso(), pat::Photon.chargedHadronIso(), pat::Lepton< LeptonType >.chargedHadronIso(), reco::Photon::PflowIsolationVariables.chargedHadronIso, reco::Photon.chargedHadronIso(), Photon.Photon.CutBasedIDWP(), Photon.Photon.etaRegionID(), pat::PFIsolation.neutralHadronIso(), Photon.Photon.neutralHadronIso(), pat::Photon.neutralHadronIso(), pat::Lepton< LeptonType >.neutralHadronIso(), reco::Photon::PflowIsolationVariables.neutralHadronIso, reco::Photon.neutralHadronIso(), pat::PFIsolation.photonIso(), Photon.Photon.photonIso(), pat::Photon.photonIso(), pat::Lepton< LeptonType >.photonIso(), reco::Photon::PflowIsolationVariables.photonIso, and reco::Photon.photonIso().

179  def passPhotonIso(self,name,isocorr):
180 
181  idForBarrel = self.etaRegionID()
182  passPhotonIso = True
183 
184  if self.CutBasedIDWP(name)["chaHadIso"][idForBarrel] < self.chargedHadronIso(isocorr):
185  passPhotonIso = False
186 
187  if "POG_PHYS14_25ns" in name and idForBarrel == 0:
188  if self.calScaledIsoValueExp(*self.CutBasedIDWP(name)["neuHadIso"][idForBarrel]) < self.neutralHadronIso(isocorr):
189  passPhotonIso = False
190  elif "POG_SPRING15_50ns" in name:
191  if self.calScaledIsoValueExp(*self.CutBasedIDWP(name)["neuHadIso"][idForBarrel]) < self.neutralHadronIso(isocorr):
192  passPhotonIso = False
193  elif "POG_SPRING15_25ns" in name:
194  if self.calScaledIsoValueQuadr(*self.CutBasedIDWP(name)["neuHadIso"][idForBarrel]) < self.neutralHadronIso(isocorr):
195  passPhotonIso = False
196  else:
197  if self.calScaledIsoValueLin(*self.CutBasedIDWP(name)["neuHadIso"][idForBarrel]) < self.neutralHadronIso(isocorr):
198  passPhotonIso = False
199 
200  if self.calScaledIsoValueLin(*self.CutBasedIDWP(name)["phoIso"][idForBarrel]) < self.photonIso(isocorr):
201  passPhotonIso = False
202 
203  return passPhotonIso
def neutralHadronIso
Definition: Photon.py:41
def photonIso
Definition: Photon.py:47
def CutBasedIDWP
Definition: Photon.py:86
def etaRegionID
Definition: Photon.py:144
def calScaledIsoValueQuadr
Definition: Photon.py:155
def passPhotonIso
Definition: Photon.py:178
def calScaledIsoValueExp
Definition: Photon.py:158
def calScaledIsoValueLin
Definition: Photon.py:152
def chargedHadronIso
Definition: Photon.py:35
def Photon.Photon.photonIDCSA14 (   self,
  name,
  sidebands = False 
)

Definition at line 53 of file Photon.py.

References funct.abs(), Photon.Photon.full5x5_sigmaIetaIeta(), reco::Photon.full5x5_sigmaIetaIeta(), reco::GsfElectron.full5x5_sigmaIetaIeta(), Photon.Photon.hOVERe(), and print().

53 
54  def photonIDCSA14(self, name, sidebands=False):
55  keepThisPhoton = True
56  sigmaThresh = 999
57  hovereThresh = 999
58  if name == "PhotonCutBasedIDLoose_CSA14":
59  if abs(self.physObj.eta())<1.479 :
60  sigmaThresh = 0.010
61  hovereThresh = 0.0559
62  else :
63  sigmaThresh = 0.030
64  hovereThresh = 0.049
65  elif name == "PhotonCutBasedIDLoose_PHYS14":
66  if abs(self.physObj.eta())<1.479 :
67  sigmaThresh = 0.0106
68  hovereThresh = 0.048
69  else :
70  sigmaThresh = 0.0266
71  hovereThresh = 0.069
72  else :
73  print("WARNING! Unkown photon ID! Will return true!")
74  return True
75 
76  if sidebands:
77  if abs(self.physObj.eta())<1.479 :
78  sigmaThresh = 0.015
79  else :
80  sigmaThresh = 0.035
81 
82  if self.full5x5_sigmaIetaIeta() > sigmaThresh : keepThisPhoton = False
83  if self.hOVERe() > hovereThresh : keepThisPhoton = False
84 
85  return keepThisPhoton
void print(TMatrixD &m, const char *label=nullptr, bool mathematicaFormat=false)
Definition: Utilities.cc:47
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
def hOVERe
Definition: Photon.py:20
def photonIDCSA14
Definition: Photon.py:53
def full5x5_sigmaIetaIeta
Definition: Photon.py:32
def Photon.Photon.photonIso (   self,
  corr = None 
)

Definition at line 47 of file Photon.py.

References SiStripPI.max, Photon.Photon.rho, Electron.Electron.rho, correctionValue_class.rho, AlignmentMonitorMuonSystemMap1D::MyResidual.rho, and objects.JetAnalyzer.JetAnalyzer.rho.

Referenced by Lepton.Lepton.absIsoFromEA(), and Photon.Photon.passPhotonIso().

47 
48  def photonIso(self, corr=None):
49  isoPho = self.ftprAbsIsoPho03 if hasattr(self,'ftprAbsIsoPho03') else self.physObj.photonIso()
50  if corr is None or corr == "": return isoPho
51  elif corr == "rhoArea": return max(isoPho-self.rho*self.EffectiveArea03[2],0)
52  else: raise RuntimeError("Photon isolation correction '%s' not yet implemented in Photon.py" % corr)
def photonIso
Definition: Photon.py:47
def Photon.Photon.r9 (   self)

Definition at line 23 of file Photon.py.

23 
24  def r9(self):
25  return self.physObj.r9()
def Photon.Photon.sigmaIetaIeta (   self)

Definition at line 26 of file Photon.py.

26 
27  def sigmaIetaIeta(self):
28  return self.physObj.sigmaIetaIeta()
def sigmaIetaIeta
Definition: Photon.py:26

Member Data Documentation

Photon.Photon.rho

Definition at line 17 of file Photon.py.

Referenced by Lepton.Lepton.absIsoFromEA(), Muon.Muon.absIsoWithFSR(), Photon.Photon.chargedHadronIso(), Photon.Photon.neutralHadronIso(), and Photon.Photon.photonIso().