CMS 3D CMS Logo

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

Public Member Functions

def __init__
 
def absIsoWithFSR
 
def chargedAllIso
 
def chargedAllIsoR
 
def chargedHadronIsoR
 
def cutBasedId
 
def dxy
 
def dz
 
def edxy
 
def edz
 
def electronID
 
def lostInner
 
def mvaId
 
def mvaIDLoose
 
def mvaIDRun2
 
def mvaIDTight
 
def mvaNonTrigV0
 
def mvaRun2
 
def mvaTrigNoIPV0
 
def mvaTrigV0
 
def neutralHadronIsoR
 
def p4
 
def photonIsoR
 
def puChargedHadronIsoR
 
def tightId
 

Public Attributes

 associatedVertex
 
 rho
 
 tightIdResult
 

Private Member Functions

def _physObjInit
 

Private Attributes

 _mvaNonTrigV0
 
 _mvaRun2
 
 _mvaTrigNoIPV0
 
 _mvaTrigV0
 

Detailed Description

Definition at line 6 of file Electron.py.

Constructor & Destructor Documentation

def Electron.Electron.__init__ (   self,
  args,
  kwargs 
)
Initializing tightIdResult to None. The user is responsible
for setting this attribute externally if he wants to use the tightId
function.

Definition at line 8 of file Electron.py.

References Electron.Electron._physObjInit().

8 
9  def __init__(self, *args, **kwargs):
10  '''Initializing tightIdResult to None. The user is responsible
11  for setting this attribute externally if he wants to use the tightId
12  function.'''
13  super(Electron, self).__init__(*args, **kwargs)
14  self._physObjInit()

Member Function Documentation

def Electron.Electron._physObjInit (   self)
private

Definition at line 15 of file Electron.py.

Referenced by Electron.Electron.__init__(), Photon.Photon.__init__(), and Jet.Jet.__init__().

15 
16  def _physObjInit(self):
17  self.tightIdResult = None
18  self.associatedVertex = None
19  self.rho = None
20  self._mvaNonTrigV0 = {True:None, False:None}
21  self._mvaTrigV0 = {True:None, False:None}
22  self._mvaTrigNoIPV0 = {True:None, False:None}
23  self._mvaRun2 = {}
def Electron.Electron.absIsoWithFSR (   self,
  R = 0.4,
  puCorr = "rhoArea",
  dBetaFactor = 0.5 
)
Calculate Isolation, subtract FSR, apply specific PU corrections" 

Definition at line 311 of file Electron.py.

References Electron.Electron.chargedHadronIsoR(), deltaR(), EcalRegressionData.isEB(), CaloGenericDetId.isEB(), SimpleElectron.isEB(), reco::Photon::FiducialFlags.isEB, reco::Photon.isEB(), reco::GsfElectron::FiducialFlags.isEB, reco::GsfElectron.isEB(), bookConverter.max, Electron.Electron.neutralHadronIsoR(), Electron.Electron.photonIsoR(), Electron.Electron.puChargedHadronIsoR(), python.rootplot.root2matplotlib.replace(), Electron.Electron.rho, AlignmentMonitorMuonSystemMap1D::MyResidual.rho, and objects.JetAnalyzer.JetAnalyzer.rho.

312  def absIsoWithFSR(self, R=0.4, puCorr="rhoArea", dBetaFactor=0.5):
313  '''
314  Calculate Isolation, subtract FSR, apply specific PU corrections"
315  '''
316  photonIso = self.photonIsoR(R)
317  if hasattr(self,'fsrPhotons'):
318  for gamma in self.fsrPhotons:
319  dr = deltaR(gamma.eta(), gamma.phi(), self.physObj.eta(), self.physObj.phi())
320  if (self.isEB() or dr > 0.08) and dr < R:
321  photonIso = max(photonIso-gamma.pt(),0.0)
322  if puCorr == "deltaBeta":
323  offset = dBetaFactor * self.puChargedHadronIsoR(R)
324  elif puCorr == "rhoArea":
325  offset = self.rho*getattr(self,"EffectiveArea"+(str(R).replace(".","")))
326  elif puCorr in ["none","None",None]:
327  offset = 0
328  else:
329  raise RuntimeError, "Unsupported PU correction scheme %s" % puCorr
330  return self.chargedHadronIsoR(R)+max(0.,photonIso+self.neutralHadronIsoR(R)-offset)
331 
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
def puChargedHadronIsoR
Definition: Electron.py:305
def Electron.Electron.chargedAllIso (   self)

Definition at line 302 of file Electron.py.

303  def chargedAllIso(self):
304  raise RuntimeError, "Electron chargedAllIso missing"
def Electron.Electron.chargedAllIsoR (   self,
  R = 0.4 
)

Definition at line 298 of file Electron.py.

Referenced by Lepton.Lepton.absIsoR(), and Muon.Muon.chargedAllIso().

299  def chargedAllIsoR(self,R=0.4):
300  if R == 0.3: return self.physObj.pfIsolationVariables().sumChargedParticlePt
301  raise RuntimeError, "Electron chargedAllIso missing for R=%s" % R
def Electron.Electron.chargedHadronIsoR (   self,
  R = 0.4 
)

Definition at line 283 of file Electron.py.

Referenced by Lepton.Lepton.absIsoR(), Muon.Muon.absIsoWithFSR(), and Electron.Electron.absIsoWithFSR().

284  def chargedHadronIsoR(self,R=0.4):
285  if R == 0.3: return self.physObj.pfIsolationVariables().sumChargedHadronPt
286  elif R == 0.4: return self.physObj.chargedHadronIso()
287  raise RuntimeError, "Electron chargedHadronIso missing for R=%s" % R
def Electron.Electron.cutBasedId (   self,
  wp,
  showerShapes = "auto" 
)

Definition at line 47 of file Electron.py.

References funct.abs(), tauImpactParameter::TrackParticle.dxy, ScoutingMuon.dxy(), reco::PFTauTransverseImpactParameter.dxy(), PrimaryVertexMonitor.dxy, reco::Conversion.dxy(), reco::TrackBase.dxy(), pat::PackedGenParticle.dxy(), pat::Tau.dxy(), Electron.Electron.dxy(), pat::PackedCandidate.dxy(), tauImpactParameter::TrackParticle.dz, egammaisolation::EgammaTrackSelector.dz, DDHCalXtalAlgo.dz, RigidBodyAlignmentParameters.dz, ScoutingElectron.dz(), BowedSurfaceAlignmentDerivatives.dz, DDHCalTestBeamAlgo.dz, HGCalDDDConstants::hgtrap.dz, BowedSurfaceAlignmentParameters.dz, TrackMultiSelector::Block.dz, DTMuonSLToSL.dz, ScoutingMuon.dz(), IdealZDCTrapezoid.dz(), PreshowerStrip.dz(), IdealZPrism.dz(), IdealObliquePrism.dz(), IdealCastorTrapezoid.dz(), pat::VertexAssociation.dz(), PrimaryVertexMonitor.dz, DTMuonMillepede.dz, DTSegmentResult.dz, TrackerValidationVariables::AVTrackStruct.dz, DTHitResult.dz, EcalTrapezoidParameters.dz(), TrackStruct::TrackParameterStruct.dz, MuonGeometryArrange::MGACollection.dz, reco::Conversion.dz(), reco::TrackBase.dz(), pat::PackedGenParticle.dz(), Electron.Electron.dz(), and pat::PackedCandidate.dz().

Referenced by Electron.Electron.electronID().

47 
48  def cutBasedId(self, wp, showerShapes="auto"):
49  if "_full5x5" in wp:
50  showerShapes = "full5x5"
51  wp = wp.replace("_full5x5","")
52  elif showerShapes == "auto":
53  if "POG_CSA14_25ns_v1" in wp or "POG_CSA14_50ns_v1" in wp or "POG_PHYS14_25ns_v1" in wp or "POG_PHYS14_25ns_v1_ConvVeto" in wp or "POG_PHYS14_25ns_v1_ConvVetoDxyDz" in wp or "POG_PHYS14_25ns_v2" in wp or "POG_PHYS14_25ns_v2_ConvVeto" in wp or "POG_PHYS14_25ns_v2_ConvVetoDxyDz" in wp or "POG_SPRING15_25ns_v1" in wp or "POG_SPRING15_25ns_v1_ConvVeto" in wp or "POG_SPRING15_25ns_v1_ConvVetoDxyDz" in wp or "POG_SPRING15_50ns_v2" in wp or "POG_SPRING15_50ns_v2_ConvVeto" in wp or "POG_SPRING15_50ns_v2_ConvVetoDxyDz" in wp:
54  showerShapes = "full5x5"
55  vars = {
56  'dEtaIn' : abs(self.physObj.deltaEtaSuperClusterTrackAtVtx()),
57  'dPhiIn' : abs(self.physObj.deltaPhiSuperClusterTrackAtVtx()),
58  'sigmaIEtaIEta' : self.physObj.full5x5_sigmaIetaIeta() if showerShapes == "full5x5" else self.physObj.sigmaIetaIeta(),
59  'H/E' : self.physObj.hadronicOverEm(),
60  #'1/E-1/p' : abs(1.0/self.physObj.ecalEnergy() - self.physObj.eSuperClusterOverP()/self.physObj.ecalEnergy()),
61  '1/E-1/p' : abs(1.0/self.physObj.ecalEnergy() - self.physObj.eSuperClusterOverP()/self.physObj.ecalEnergy()) if self.physObj.ecalEnergy()>0. else 9e9,
62  'conversionVeto' : self.physObj.passConversionVeto(),
63  'missingHits' : self.physObj.gsfTrack().hitPattern().numberOfHits(ROOT.reco.HitPattern.MISSING_INNER_HITS), # http://cmslxr.fnal.gov/source/DataFormats/TrackReco/interface/HitPattern.h?v=CMSSW_7_2_3#0153
64  'dxy' : abs(self.dxy()),
65  'dz' : abs(self.dz()),
66  }
67  WP = {
68  ## ------- https://twiki.cern.ch/twiki/bin/viewauth/CMS/EgammaCutBasedIdentification?rev=31
69  'POG_2012_Veto' : [('dEtaIn', [0.007, 0.01]), ('dPhiIn', [0.8, 0.7 ]), ('sigmaIEtaIEta', [0.01, 0.03]), ('H/E', [0.15, 9e9]), ('1/E-1/p', [9e9, 9e9])],
70  'POG_2012_Loose' : [('dEtaIn', [0.007, 0.009]), ('dPhiIn', [0.15, 0.1 ]), ('sigmaIEtaIEta', [0.01, 0.03]), ('H/E', [0.12, 0.1]), ('1/E-1/p', [0.05, 0.05])],
71  'POG_2012_Medium' : [('dEtaIn', [0.004, 0.007]), ('dPhiIn', [0.06, 0.03]), ('sigmaIEtaIEta', [0.01, 0.03]), ('H/E', [0.12, 0.1]), ('1/E-1/p', [0.05, 0.05])],
72  'POG_2012_Tight' : [('dEtaIn', [0.004, 0.005]), ('dPhiIn', [0.03, 0.02]), ('sigmaIEtaIEta', [0.01, 0.03]), ('H/E', [0.12, 0.1]), ('1/E-1/p', [0.05, 0.05])],
73  # RIC: in the EG POG WPs, isolation is included too. Here only the pure ID part.
74  # dz and d0 cuts are excluded here as well.
75  ## ------- https://twiki.cern.ch/twiki/bin/viewauth/CMS/CutBasedElectronIdentificationRun2#Working_points_for_CSA14_samples?rev=13
76  'POG_CSA14_25ns_v1_Veto' : [('dEtaIn', [0.017938, 0.014569]), ('dPhiIn', [0.182958, 0.230914]), ('sigmaIEtaIEta', [0.012708, 0.036384]), ('H/E', [0.335015, 0.200792]), ('1/E-1/p', [0.198287, 0.146856])],
77  'POG_CSA14_25ns_v1_Loose' : [('dEtaIn', [0.014928, 0.013045]), ('dPhiIn', [0.141050, 0.149017]), ('sigmaIEtaIEta', [0.011304, 0.035536]), ('H/E', [0.127690, 0.107898]), ('1/E-1/p', [0.097806, 0.102261])],
78  'POG_CSA14_25ns_v1_Medium' : [('dEtaIn', [0.013071, 0.010006]), ('dPhiIn', [0.132113, 0.052321]), ('sigmaIEtaIEta', [0.010726, 0.032882]), ('H/E', [0.109761, 0.101755]), ('1/E-1/p', [0.032639, 0.041427])],
79  'POG_CSA14_25ns_v1_Tight' : [('dEtaIn', [0.012671, 0.008823]), ('dPhiIn', [0.025218, 0.027286]), ('sigmaIEtaIEta', [0.010061, 0.030222]), ('H/E', [0.065085, 0.090710]), ('1/E-1/p', [0.027873, 0.019404])],
80  'POG_CSA14_50ns_v1_Veto' : [('dEtaIn', [0.021, 0.028]), ('dPhiIn', [0.25 , 0.23 ]), ('sigmaIEtaIEta', [0.012, 0.035]), ('H/E', [0.24 , 0.19 ]), ('1/E-1/p', [0.32 , 0.13 ])],
81  'POG_CSA14_50ns_v1_Loose' : [('dEtaIn', [0.016, 0.025]), ('dPhiIn', [0.080, 0.097]), ('sigmaIEtaIEta', [0.012, 0.032]), ('H/E', [0.15 , 0.12 ]), ('1/E-1/p', [0.11 , 0.11 ])],
82  'POG_CSA14_50ns_v1_Medium' : [('dEtaIn', [0.015, 0.023]), ('dPhiIn', [0.051, 0.056]), ('sigmaIEtaIEta', [0.010, 0.030]), ('H/E', [0.10 , 0.099]), ('1/E-1/p', [0.053, 0.11 ])],
83  'POG_CSA14_50ns_v1_Tight' : [('dEtaIn', [0.012, 0.019]), ('dPhiIn', [0.024, 0.043]), ('sigmaIEtaIEta', [0.010, 0.029]), ('H/E', [0.074, 0.080]), ('1/E-1/p', [0.026, 0.076])],
84  ## ------- https://twiki.cern.ch/twiki/bin/viewauth/CMS/CutBasedElectronIdentificationRun2#Working_points_for_PHYS14_sample?rev=13
85  'POG_PHYS14_25ns_v1_Veto' : [('dEtaIn', [0.016315, 0.010671]), ('dPhiIn', [0.252044, 0.245263]), ('sigmaIEtaIEta', [0.011100 , 0.033987]), ('H/E', [0.345843, 0.134691]), ('1/E-1/p', [0.248070, 0.157160])],
86  'POG_PHYS14_25ns_v1_Loose' : [('dEtaIn', [0.012442, 0.010654]), ('dPhiIn', [0.072624, 0.145129]), ('sigmaIEtaIEta', [0.010557 , 0.032602]), ('H/E', [0.121476, 0.131862]), ('1/E-1/p', [0.221803, 0.142283])],
87  'POG_PHYS14_25ns_v1_Medium' : [('dEtaIn', [0.007641, 0.009285]), ('dPhiIn', [0.032643, 0.042447]), ('sigmaIEtaIEta', [0.010399 , 0.029524]), ('H/E', [0.060662, 0.104263]), ('1/E-1/p', [0.153897, 0.137468])],
88  'POG_PHYS14_25ns_v1_Tight' : [('dEtaIn', [0.006574, 0.005681]), ('dPhiIn', [0.022868, 0.032046]), ('sigmaIEtaIEta', [0.010181 , 0.028766]), ('H/E', [0.037553, 0.081902]), ('1/E-1/p', [0.131191, 0.106055])],
89  ## ------- https://twiki.cern.ch/twiki/bin/viewauth/CMS/CutBasedElectronIdentificationRun2#Working_points_for_PHYS14_sample?rev=17
90  'POG_PHYS14_25ns_v2_Veto' : [('dEtaIn', [0.013625, 0.011932]), ('dPhiIn', [0.230374, 0.255450]), ('sigmaIEtaIEta', [0.011586 , 0.031849]), ('H/E', [0.181130, 0.223870]), ('1/E-1/p', [0.295751, 0.155501])],
91  'POG_PHYS14_25ns_v2_Loose' : [('dEtaIn', [0.009277, 0.009833]), ('dPhiIn', [0.094739, 0.149934]), ('sigmaIEtaIEta', [0.010331 , 0.031838]), ('H/E', [0.093068, 0.115754]), ('1/E-1/p', [0.189968, 0.140662])],
92  'POG_PHYS14_25ns_v2_Medium' : [('dEtaIn', [0.008925, 0.007429]), ('dPhiIn', [0.035973, 0.067879]), ('sigmaIEtaIEta', [0.009996 , 0.030135]), ('H/E', [0.050537, 0.086782]), ('1/E-1/p', [0.091942, 0.100683])],
93  'POG_PHYS14_25ns_v2_Tight' : [('dEtaIn', [0.006046, 0.007057]), ('dPhiIn', [0.028092, 0.030159]), ('sigmaIEtaIEta', [0.009947 , 0.028237]), ('H/E', [0.045772, 0.067778]), ('1/E-1/p', [0.020118, 0.098919])],
94  ## ------- https://twiki.cern.ch/twiki/bin/view/CMS/CutBasedElectronIdentificationRun2?rev=24#Working_points_for_Spring15_MC_s
95  'POG_SPRING15_50ns_v2_Veto' : [('dEtaIn', [0.01260, 0.01090]), ('dPhiIn', [0.1070, 0.2190]), ('sigmaIEtaIEta', [0.0120, 0.0339]), ('H/E', [0.1860, 0.0962]), ('1/E-1/p', [0.2390, 0.141])],
96  'POG_SPRING15_50ns_v2_Loose' : [('dEtaIn', [0.00976, 0.00952]), ('dPhiIn', [0.0929, 0.1810]), ('sigmaIEtaIEta', [0.0105, 0.0318]), ('H/E', [0.0765, 0.0824]), ('1/E-1/p', [0.1840, 0.125])],
97  'POG_SPRING15_50ns_v2_Medium' : [('dEtaIn', [0.00940, 0.00773]), ('dPhiIn', [0.0296, 0.1480]), ('sigmaIEtaIEta', [0.0101, 0.0287]), ('H/E', [0.0372, 0.0546]), ('1/E-1/p', [0.1180, 0.104])],
98  'POG_SPRING15_50ns_v2_Tight' : [('dEtaIn', [0.00864, 0.00762]), ('dPhiIn', [0.0291, 0.0439]), ('sigmaIEtaIEta', [0.0101, 0.0287]), ('H/E', [0.0372, 0.0544]), ('1/E-1/p', [0.0116, 0.010])],
99  'POG_SPRING15_25ns_v1_Veto' : [('dEtaIn', [0.01520, 0.01130]), ('dPhiIn', [0.2160, 0.2370]), ('sigmaIEtaIEta', [0.0114, 0.0352]), ('H/E', [0.1810, 0.1160]), ('1/E-1/p', [0.2070, 0.17400])],
100  'POG_SPRING15_25ns_v1_Loose' : [('dEtaIn', [0.01050, 0.00814]), ('dPhiIn', [0.1150, 0.1820]), ('sigmaIEtaIEta', [0.0103, 0.0301]), ('H/E', [0.1040, 0.0897]), ('1/E-1/p', [0.1020, 0.12600])],
101  'POG_SPRING15_25ns_v1_Medium' : [('dEtaIn', [0.01030, 0.00733]), ('dPhiIn', [0.0336, 0.1140]), ('sigmaIEtaIEta', [0.0101, 0.0283]), ('H/E', [0.0876, 0.0678]), ('1/E-1/p', [0.0174, 0.08980])],
102  'POG_SPRING15_25ns_v1_Tight' : [('dEtaIn', [0.00926, 0.00724]), ('dPhiIn', [0.0336, 0.0918]), ('sigmaIEtaIEta', [0.0101, 0.0279]), ('H/E', [0.0597, 0.0615]), ('1/E-1/p', [0.0120, 0.00999])],
103 
104  }
105  WP_conversion_veto = {
106  # missing Hits incremented by 1 because we return False if >=, note the '='
107  ## ------- https://twiki.cern.ch/twiki/bin/viewauth/CMS/CutBasedElectronIdentificationRun2#Working_points_for_CSA14_samples?rev=13
108  'POG_CSA14_25ns_v1_ConvVeto_Veto' : WP['POG_CSA14_25ns_v1_Veto' ]+[('conversionVeto', [True, True]), ('missingHits', [3, 4])],
109  'POG_CSA14_25ns_v1_ConvVeto_Loose' : WP['POG_CSA14_25ns_v1_Loose' ]+[('conversionVeto', [True, True]), ('missingHits', [2, 2])],
110  'POG_CSA14_25ns_v1_ConvVeto_Medium' : WP['POG_CSA14_25ns_v1_Medium']+[('conversionVeto', [True, True]), ('missingHits', [2, 2])],
111  'POG_CSA14_25ns_v1_ConvVeto_Tight' : WP['POG_CSA14_25ns_v1_Tight' ]+[('conversionVeto', [True, True]), ('missingHits', [2, 2])],
112  'POG_CSA14_50ns_v1_ConvVeto_Veto' : WP['POG_CSA14_50ns_v1_Veto' ]+[('conversionVeto', [True, True]), ('missingHits', [3, 4])],
113  'POG_CSA14_50ns_v1_ConvVeto_Loose' : WP['POG_CSA14_50ns_v1_Loose' ]+[('conversionVeto', [True, True]), ('missingHits', [2, 2])],
114  'POG_CSA14_50ns_v1_ConvVeto_Medium' : WP['POG_CSA14_50ns_v1_Medium']+[('conversionVeto', [True, True]), ('missingHits', [2, 2])],
115  'POG_CSA14_50ns_v1_ConvVeto_Tight' : WP['POG_CSA14_50ns_v1_Tight' ]+[('conversionVeto', [True, True]), ('missingHits', [2, 2])],
116  ## ------- https://twiki.cern.ch/twiki/bin/viewauth/CMS/CutBasedElectronIdentificationRun2#Working_points_for_PHYS14_sample?rev=13
117  'POG_PHYS14_25ns_v1_ConvVeto_Veto' : WP['POG_PHYS14_25ns_v1_Veto' ]+[('conversionVeto', [True, True]), ('missingHits', [3, 4])],
118  'POG_PHYS14_25ns_v1_ConvVeto_Loose' : WP['POG_PHYS14_25ns_v1_Loose' ]+[('conversionVeto', [True, True]), ('missingHits', [2, 2])],
119  'POG_PHYS14_25ns_v1_ConvVeto_Medium' : WP['POG_PHYS14_25ns_v1_Medium']+[('conversionVeto', [True, True]), ('missingHits', [2, 2])],
120  'POG_PHYS14_25ns_v1_ConvVeto_Tight' : WP['POG_PHYS14_25ns_v1_Tight' ]+[('conversionVeto', [True, True]), ('missingHits', [2, 2])],
121  ## ------- https://twiki.cern.ch/twiki/bin/viewauth/CMS/CutBasedElectronIdentificationRun2#Working_points_for_PHYS14_sample?rev=17
122  'POG_PHYS14_25ns_v2_ConvVeto_Veto' : WP['POG_PHYS14_25ns_v2_Veto' ]+[('conversionVeto', [True, True]), ('missingHits', [3, 4])],
123  'POG_PHYS14_25ns_v2_ConvVeto_Loose' : WP['POG_PHYS14_25ns_v2_Loose' ]+[('conversionVeto', [True, True]), ('missingHits', [2, 2])],
124  'POG_PHYS14_25ns_v2_ConvVeto_Medium' : WP['POG_PHYS14_25ns_v2_Medium']+[('conversionVeto', [True, True]), ('missingHits', [2, 2])],
125  'POG_PHYS14_25ns_v2_ConvVeto_Tight' : WP['POG_PHYS14_25ns_v2_Tight' ]+[('conversionVeto', [True, True]), ('missingHits', [2, 2])],
126  ## ------- https://twiki.cern.ch/twiki/bin/view/CMS/CutBasedElectronIdentificationRun2?rev=24#Working_points_for_Spring15_MC_s
127  'POG_SPRING15_50ns_v2_ConvVeto_Veto' : WP['POG_SPRING15_50ns_v2_Veto' ]+[('conversionVeto', [True, True]), ('missingHits', [3, 4])],
128  'POG_SPRING15_50ns_v2_ConvVeto_Loose' : WP['POG_SPRING15_50ns_v2_Loose' ]+[('conversionVeto', [True, True]), ('missingHits', [3, 2])],
129  'POG_SPRING15_50ns_v2_ConvVeto_Medium' : WP['POG_SPRING15_50ns_v2_Medium']+[('conversionVeto', [True, True]), ('missingHits', [3, 2])],
130  'POG_SPRING15_50ns_v2_ConvVeto_Tight' : WP['POG_SPRING15_50ns_v2_Tight' ]+[('conversionVeto', [True, True]), ('missingHits', [3, 2])],
131  'POG_SPRING15_25ns_v1_ConvVeto_Veto' : WP['POG_SPRING15_25ns_v1_Veto' ]+[('conversionVeto', [True, True]), ('missingHits', [3, 4])],
132  'POG_SPRING15_25ns_v1_ConvVeto_Loose' : WP['POG_SPRING15_25ns_v1_Loose' ]+[('conversionVeto', [True, True]), ('missingHits', [3, 2])],
133  'POG_SPRING15_25ns_v1_ConvVeto_Medium' : WP['POG_SPRING15_25ns_v1_Medium']+[('conversionVeto', [True, True]), ('missingHits', [3, 2])],
134  'POG_SPRING15_25ns_v1_ConvVeto_Tight' : WP['POG_SPRING15_25ns_v1_Tight' ]+[('conversionVeto', [True, True]), ('missingHits', [3, 2])],
135  }
136 
137  WP.update(WP_conversion_veto)
138 
139  WP_conversion_veto_DxyDz = {
140  ## ------- https://twiki.cern.ch/twiki/bin/viewauth/CMS/CutBasedElectronIdentificationRun2#Working_points_for_PHYS14_sample
141  'POG_PHYS14_25ns_v1_ConvVetoDxyDz_Veto' : WP['POG_PHYS14_25ns_v1_ConvVeto_Veto' ]+[('dxy',[0.060279, 0.273097]), ('dz',[0.800538, 0.885860])],
142  'POG_PHYS14_25ns_v1_ConvVetoDxyDz_Loose' : WP['POG_PHYS14_25ns_v1_ConvVeto_Loose' ]+[('dxy',[0.022664, 0.097358]), ('dz',[0.173670, 0.198444])],
143  'POG_PHYS14_25ns_v1_ConvVetoDxyDz_Medium' : WP['POG_PHYS14_25ns_v1_ConvVeto_Medium']+[('dxy',[0.011811, 0.051682]), ('dz',[0.070775, 0.180720])],
144  'POG_PHYS14_25ns_v1_ConvVetoDxyDz_Tight' : WP['POG_PHYS14_25ns_v1_ConvVeto_Tight' ]+[('dxy',[0.009924, 0.027261]), ('dz',[0.015310, 0.147154])],
145  ## ------- https://twiki.cern.ch/twiki/bin/viewauth/CMS/CutBasedElectronIdentificationRun2#Working_points_for_PHYS14_sample?rev=17
146  'POG_PHYS14_25ns_v2_ConvVetoDxyDz_Veto' : WP['POG_PHYS14_25ns_v2_ConvVeto_Veto' ]+[('dxy',[0.094095, 0.342293]), ('dz',[0.713070, 0.953461])],
147  'POG_PHYS14_25ns_v2_ConvVetoDxyDz_Loose' : WP['POG_PHYS14_25ns_v2_ConvVeto_Loose' ]+[('dxy',[0.035904, 0.099266]), ('dz',[0.075496, 0.197897])],
148  'POG_PHYS14_25ns_v2_ConvVetoDxyDz_Medium' : WP['POG_PHYS14_25ns_v2_ConvVeto_Medium']+[('dxy',[0.012235, 0.036719]), ('dz',[0.042020, 0.138142])],
149  'POG_PHYS14_25ns_v2_ConvVetoDxyDz_Tight' : WP['POG_PHYS14_25ns_v2_ConvVeto_Tight' ]+[('dxy',[0.008790, 0.027984]), ('dz',[0.021226, 0.133431])],
150  ## ------- https://twiki.cern.ch/twiki/bin/view/CMS/CutBasedElectronIdentificationRun2?rev=24#Working_points_for_Spring15_MC_s
151  'POG_SPRING15_50ns_v2_ConvVetoDxyDz_Veto' : WP['POG_SPRING15_50ns_v2_ConvVeto_Veto' ]+[('dxy',[0.0621, 0.2790]), ('dz',[0.613, 0.947])],
152  'POG_SPRING15_50ns_v2_ConvVetoDxyDz_Loose' : WP['POG_SPRING15_50ns_v2_ConvVeto_Loose' ]+[('dxy',[0.0227, 0.2420]), ('dz',[0.379, 0.921])],
153  'POG_SPRING15_50ns_v2_ConvVetoDxyDz_Medium' : WP['POG_SPRING15_50ns_v2_ConvVeto_Medium']+[('dxy',[0.0151, 0.0535]), ('dz',[0.238, 0.572])],
154  'POG_SPRING15_50ns_v2_ConvVetoDxyDz_Tight' : WP['POG_SPRING15_50ns_v2_ConvVeto_Tight' ]+[('dxy',[0.0144, 0.0377]), ('dz',[0.170, 0.571])],
155  'POG_SPRING15_25ns_v1_ConvVetoDxyDz_Veto' : WP['POG_SPRING15_25ns_v1_ConvVeto_Veto' ]+[('dxy',[0.0564, 0.2220]), ('dz',[0.472, 0.921])],
156  'POG_SPRING15_25ns_v1_ConvVetoDxyDz_Loose' : WP['POG_SPRING15_25ns_v1_ConvVeto_Loose' ]+[('dxy',[0.0261, 0.1180]), ('dz',[0.410, 0.822])],
157  'POG_SPRING15_25ns_v1_ConvVetoDxyDz_Medium' : WP['POG_SPRING15_25ns_v1_ConvVeto_Medium']+[('dxy',[0.0118, 0.0739]), ('dz',[0.373, 0.602])],
158  'POG_SPRING15_25ns_v1_ConvVetoDxyDz_Tight' : WP['POG_SPRING15_25ns_v1_ConvVeto_Tight' ]+[('dxy',[0.0111, 0.0351]), ('dz',[0.0466,0.417])],
159  }
160 
161  WP.update(WP_conversion_veto_DxyDz)
162 
163 
164  if wp not in WP:
165  raise RuntimeError, "Working point '%s' not yet implemented in Electron.py" % wp
166  for (cut_name,(cut_eb,cut_ee)) in WP[wp]:
167  if cut_name == 'conversionVeto':
168  if (cut_eb if self.physObj.isEB() else cut_ee) and not vars[cut_name]:
169  return False
170  elif vars[cut_name] >= (cut_eb if self.physObj.isEB() else cut_ee):
171  return False
172  return True
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
def Electron.Electron.dxy (   self,
  vertex = None 
)
Returns dxy.
Computed using vertex (or self.associatedVertex if vertex not specified),
and the gsf track.

Definition at line 332 of file Electron.py.

References Electron.Electron.associatedVertex, reco::Electron.gsfTrack(), reco::GsfElectronCore.gsfTrack(), reco::RecoCandidate.gsfTrack(), pat::Electron.gsfTrack(), pat::GenericParticle.gsfTrack(), and reco::GsfElectron.gsfTrack().

Referenced by Electron.Electron.cutBasedId().

333  def dxy(self, vertex=None):
334  '''Returns dxy.
335  Computed using vertex (or self.associatedVertex if vertex not specified),
336  and the gsf track.
337  '''
338  if vertex is None:
339  vertex = self.associatedVertex
340  return self.gsfTrack().dxy( vertex.position() )
def Electron.Electron.dz (   self,
  vertex = None 
)
Returns dz.
Computed using vertex (or self.associatedVertex if vertex not specified),
and the gsf track.

Definition at line 351 of file Electron.py.

References Electron.Electron.associatedVertex, reco::Electron.gsfTrack(), reco::GsfElectronCore.gsfTrack(), reco::RecoCandidate.gsfTrack(), pat::Electron.gsfTrack(), pat::GenericParticle.gsfTrack(), and reco::GsfElectron.gsfTrack().

Referenced by Electron.Electron.cutBasedId().

352  def dz(self, vertex=None):
353  '''Returns dz.
354  Computed using vertex (or self.associatedVertex if vertex not specified),
355  and the gsf track.
356  '''
357  if vertex is None:
358  vertex = self.associatedVertex
359  return self.gsfTrack().dz( vertex.position() )
def Electron.Electron.edxy (   self)
returns the uncertainty on dxy (from gsf track)

Definition at line 341 of file Electron.py.

References reco::Electron.gsfTrack(), reco::GsfElectronCore.gsfTrack(), reco::RecoCandidate.gsfTrack(), pat::Electron.gsfTrack(), pat::GenericParticle.gsfTrack(), and reco::GsfElectron.gsfTrack().

342  def edxy(self):
343  '''returns the uncertainty on dxy (from gsf track)'''
344  return self.gsfTrack().dxyError()
def Electron.Electron.edz (   self)
returns the uncertainty on dxz (from gsf track)

Definition at line 360 of file Electron.py.

References reco::Electron.gsfTrack(), reco::GsfElectronCore.gsfTrack(), reco::RecoCandidate.gsfTrack(), pat::Electron.gsfTrack(), pat::GenericParticle.gsfTrack(), and reco::GsfElectron.gsfTrack().

361  def edz(self):
362  '''returns the uncertainty on dxz (from gsf track)'''
363  return self.gsfTrack().dzError()
364 
def Electron.Electron.electronID (   self,
  id,
  vertex = None,
  rho = None 
)

Definition at line 24 of file Electron.py.

References Electron.Electron.associatedVertex, Electron.Electron.cutBasedId(), pat::Electron.electronIDs(), Electron.Electron.mvaIDLoose(), Electron.Electron.mvaIDRun2(), Electron.Electron.mvaIDTight(), Electron.Electron.rho, AlignmentMonitorMuonSystemMap1D::MyResidual.rho, and objects.JetAnalyzer.JetAnalyzer.rho.

24 
25  def electronID( self, id, vertex=None, rho=None ):
26  if id is None or id == "": return True
27  if vertex == None and hasattr(self,'associatedVertex') and self.associatedVertex != None: vertex = self.associatedVertex
28  if rho == None and hasattr(self,'rho') and self.rho != None: rho = self.rho
29  if id == "POG_MVA_ID_NonTrig": return self.mvaIDLoose()
30  elif id == "POG_MVA_ID_Trig": return self.mvaIDTight()
31  elif id == "POG_MVA_ID_NonTrig_full5x5": return self.mvaIDLoose(full5x5=True)
32  elif id == "POG_MVA_ID_Trig_full5x5": return self.mvaIDTight(full5x5=True)
33  elif id == "POG_MVA_ID_Phys14_NonTrig_VLoose": return self.mvaIDRun2("NonTrigPhys14","VLoose")
34  elif id == "POG_MVA_ID_Phys14_NonTrig_Loose": return self.mvaIDRun2("NonTrigPhys14","Loose")
35  elif id == "POG_MVA_ID_Phys14_NonTrig_Tight": return self.mvaIDRun2("NonTrigPhys14","Tight")
36  elif id == "POG_MVA_ID_Spring15_NonTrig_VLoose": return self.mvaIDRun2("NonTrigSpring15","VLoose")
37  elif id == "POG_MVA_ID_Spring15_NonTrig_VLooseIdEmu": return self.mvaIDRun2("NonTrigSpring15","VLooseIdEmu")
38  elif id == "POG_MVA_ID_Spring15_NonTrig_VLooseIdIsoEmu": return self.mvaIDRun2("NonTrigSpring15","VLooseIdIsoEmu")
39  elif id == "POG_MVA_ID_Spring15_NonTrig_Tight": return self.mvaIDRun2("NonTrigSpring15","Tight")
40  elif id == "MVA_ID_NonTrig_Phys14Fix_HZZ": return self.mvaIDRun2("NonTrigPhys14Fix","HZZ")
41  elif id.startswith("POG_Cuts_ID_"):
42  return self.cutBasedId(id.replace("POG_Cuts_ID_","POG_"))
43  for ID in self.electronIDs():
44  if ID.first == id:
45  return ID.second
46  raise RuntimeError, "Electron id '%s' not yet implemented in Electron.py" % id
def Electron.Electron.lostInner (   self)

Definition at line 365 of file Electron.py.

References reco::Electron.gsfTrack(), reco::GsfElectronCore.gsfTrack(), reco::RecoCandidate.gsfTrack(), pat::Electron.gsfTrack(), pat::GenericParticle.gsfTrack(), and reco::GsfElectron.gsfTrack().

366  def lostInner(self) :
367  if hasattr(self.gsfTrack(),"trackerExpectedHitsInner") :
return self.gsfTrack().trackerExpectedHitsInner().numberOfLostHits()
def Electron.Electron.mvaId (   self)

Definition at line 173 of file Electron.py.

References Electron.Electron.mvaNonTrigV0().

174  def mvaId( self ):
175  return self.mvaNonTrigV0()
def Electron.Electron.mvaIDLoose (   self,
  full5x5 = False 
)

Definition at line 219 of file Electron.py.

References funct.abs(), eta, Electron.Electron.mvaNonTrigV0(), eetest::CandForTest.pt(), mypt.pt, res::HelperElectron.pt(), res::HelperMuon.pt(), res::HelperJet.pt(), reco::VoronoiBackground.pt(), RecoObj.pt, ScoutingParticle.pt(), tauImpactParameter::LorentzVectorParticle.pt, L1MuCSCPtLut.pt(), ScoutingPhoton.pt(), Residual1DHit.pt, reco::MuonMETCorrectionData.pt(), ScoutingElectron.pt(), PtHatReweightUserHook.pt, PtEtaPhiMass.pt(), MatchStruct.pt, ALILine.pt(), ScoutingMuon.pt(), ScoutingCaloJet.pt(), L2TauPixelTrackMatch::TinyTrack.pt, TrackMultiSelector::Block.pt, ScoutingPFJet.pt(), DTMuonLocalAlignment.pt, ElectronMVAEstimator.pt, TtFullHadSignalSel.pt(), PGlobalSimHit::Trk.pt, lhef::JetClustering::Jet.pt(), ZMuMuIsolationAnalyzer.pt, PatTrackAnalyzer::Plots.pt, jpt::Map.pt(), SiStripLAProfileBooker.pt, PhysicsObjectsMonitor.pt, reco::CaloMuon.pt(), TrackerValidationVariables::AVTrackStruct.pt, trigger::TriggerObject.pt(), BSTrkParameters.pt(), ElectronMVAEstimatorRun2Phys14NonTrig::AllVariables.pt, goodseedhelpers::HeavyObjectCache.pt, MuScleFitMuon.pt(), SoftElectronMVAEstimator.pt, SimpleL1MuGMTCand.pt(), PTrajectoryStateOnDet.pt(), HTrackVariables.pt(), ValidationMisalignedTracker.pt, HepLine3D.pt(), L1MuDTTrack.pt(), ElectronMVAEstimatorRun2Spring15NonTrig::AllVariables.pt, TrajectoryStateClosestToPoint.pt(), ElectronMVAEstimatorRun2Spring15Trig::AllVariables.pt, MuonDTLocalMillepedeAlgorithm.pt, BPhysicsValidation::ParticleMonitor.pt, susybsm::HSCParticle.pt(), PhotonPair.pt(), QualityCutsAnalyzer::histogram_element_t.pt, MuonGmtPair.pt(), reco::PreId.pt(), Lepton.pt, reco::Candidate.pt(), egHLT::OffPho.pt(), reco::Particle.pt(), TrackStruct::TrackParameterStruct.pt, reco::ParticleState.pt(), contrib::CMSBoostedTauSeedingAlgorithmStructure.pt(), PtHatRapReweightUserHook.pt, AlignmentMonitorMuonSystemMap1D::MyTrack.pt, MuonResidualsFitter::MuonAlignmentTreeRow.pt, reco::LeafCandidate.pt(), CandidateWithRef< Ref >.pt(), reco::PFCluster.pt(), JetAnalyzer_HeavyIons_matching::MyJet.pt, TrackingParticle.pt(), pat::MET::Vector2.pt(), pat::PackedGenParticle.pt(), GoodSeedProducer.pt, reco::TrackBase.pt(), pat::PackedCandidate.pt(), PMuonSimHit::Trk.pt, PTrackerSimHit::Trk.pt, reco::Electron.superCluster(), reco::PreshowerClusterShape.superCluster(), reco::RecoEcalCandidate.superCluster(), reco::GsfElectronCore.superCluster(), reco::RecoCandidate.superCluster(), reco::Photon.superCluster(), reco::PhotonCore.superCluster(), pat::Photon.superCluster(), pat::Electron.superCluster(), reco::SiStripElectron.superCluster(), pat::GenericParticle.superCluster(), and reco::GsfElectron.superCluster().

Referenced by Electron.Electron.electronID().

220  def mvaIDLoose(self, full5x5=False):
221  eta = abs(self.superCluster().eta())
222  if self.pt() < 10:
223  if (eta < 0.8) : return self.mvaNonTrigV0(full5x5) > +0.47;
224  elif (eta < 1.479): return self.mvaNonTrigV0(full5x5) > +0.004;
225  else : return self.mvaNonTrigV0(full5x5) > +0.295;
226  else:
227  if (eta < 0.8) : return self.mvaNonTrigV0(full5x5) > -0.34;
228  elif (eta < 1.479): return self.mvaNonTrigV0(full5x5) > -0.65;
229  else : return self.mvaNonTrigV0(full5x5) > +0.60;
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
def Electron.Electron.mvaIDRun2 (   self,
  name,
  wp 
)

Definition at line 230 of file Electron.py.

References funct.abs(), eta, Electron.Electron.mvaRun2(), eetest::CandForTest.pt(), mypt.pt, res::HelperElectron.pt(), res::HelperMuon.pt(), res::HelperJet.pt(), reco::VoronoiBackground.pt(), RecoObj.pt, ScoutingParticle.pt(), tauImpactParameter::LorentzVectorParticle.pt, L1MuCSCPtLut.pt(), ScoutingPhoton.pt(), Residual1DHit.pt, reco::MuonMETCorrectionData.pt(), ScoutingElectron.pt(), MatchStruct.pt, PtEtaPhiMass.pt(), PtHatReweightUserHook.pt, ALILine.pt(), ScoutingMuon.pt(), ScoutingCaloJet.pt(), L2TauPixelTrackMatch::TinyTrack.pt, TrackMultiSelector::Block.pt, ScoutingPFJet.pt(), DTMuonLocalAlignment.pt, ElectronMVAEstimator.pt, TtFullHadSignalSel.pt(), PGlobalSimHit::Trk.pt, lhef::JetClustering::Jet.pt(), ZMuMuIsolationAnalyzer.pt, PatTrackAnalyzer::Plots.pt, jpt::Map.pt(), SiStripLAProfileBooker.pt, PhysicsObjectsMonitor.pt, reco::CaloMuon.pt(), TrackerValidationVariables::AVTrackStruct.pt, trigger::TriggerObject.pt(), BSTrkParameters.pt(), ElectronMVAEstimatorRun2Phys14NonTrig::AllVariables.pt, goodseedhelpers::HeavyObjectCache.pt, MuScleFitMuon.pt(), SoftElectronMVAEstimator.pt, PTrajectoryStateOnDet.pt(), SimpleL1MuGMTCand.pt(), ValidationMisalignedTracker.pt, HTrackVariables.pt(), HepLine3D.pt(), L1MuDTTrack.pt(), ElectronMVAEstimatorRun2Spring15NonTrig::AllVariables.pt, TrajectoryStateClosestToPoint.pt(), ElectronMVAEstimatorRun2Spring15Trig::AllVariables.pt, MuonDTLocalMillepedeAlgorithm.pt, BPhysicsValidation::ParticleMonitor.pt, susybsm::HSCParticle.pt(), PhotonPair.pt(), QualityCutsAnalyzer::histogram_element_t.pt, MuonGmtPair.pt(), reco::PreId.pt(), Lepton.pt, reco::Candidate.pt(), egHLT::OffPho.pt(), TrackStruct::TrackParameterStruct.pt, reco::Particle.pt(), reco::ParticleState.pt(), contrib::CMSBoostedTauSeedingAlgorithmStructure.pt(), PtHatRapReweightUserHook.pt, AlignmentMonitorMuonSystemMap1D::MyTrack.pt, MuonResidualsFitter::MuonAlignmentTreeRow.pt, CandidateWithRef< Ref >.pt(), reco::LeafCandidate.pt(), reco::PFCluster.pt(), JetAnalyzer_HeavyIons_matching::MyJet.pt, TrackingParticle.pt(), pat::MET::Vector2.pt(), pat::PackedGenParticle.pt(), GoodSeedProducer.pt, reco::TrackBase.pt(), pat::PackedCandidate.pt(), PMuonSimHit::Trk.pt, PTrackerSimHit::Trk.pt, reco::Electron.superCluster(), reco::PreshowerClusterShape.superCluster(), reco::RecoEcalCandidate.superCluster(), reco::GsfElectronCore.superCluster(), reco::RecoCandidate.superCluster(), reco::Photon.superCluster(), reco::PhotonCore.superCluster(), pat::Photon.superCluster(), reco::SiStripElectron.superCluster(), pat::Electron.superCluster(), pat::GenericParticle.superCluster(), and reco::GsfElectron.superCluster().

Referenced by Electron.Electron.electronID().

231  def mvaIDRun2(self, name, wp):
232  eta = abs(self.superCluster().eta())
233  if name == "NonTrigPhys14":
234  if wp=="Loose":
235  if (eta < 0.8) : return self.mvaRun2(name) > +0.35;
236  elif (eta < 1.479): return self.mvaRun2(name) > +0.20;
237  else : return self.mvaRun2(name) > -0.52;
238  elif wp=="VLoose":
239  if (eta < 0.8) : return self.mvaRun2(name) > -0.11;
240  elif (eta < 1.479): return self.mvaRun2(name) > -0.35;
241  else : return self.mvaRun2(name) > -0.55;
242  elif wp=="Tight":
243  if (eta < 0.8) : return self.mvaRun2(name) > 0.73;
244  elif (eta < 1.479): return self.mvaRun2(name) > 0.57;
245  else : return self.mvaRun2(name) > 0.05;
246  else: raise RuntimeError, "Ele MVA ID Working point not found"
247  elif name == "NonTrigPhys14Fix":
248  if wp == "HZZ":
249  if self.pt() <= 10:
250  if eta < 0.8 : return self.mvaRun2(name) > -0.586;
251  elif eta < 1.479: return self.mvaRun2(name) > -0.712;
252  else : return self.mvaRun2(name) > -0.662;
253  else:
254  if eta < 0.8 : return self.mvaRun2(name) > -0.652;
255  elif eta < 1.479: return self.mvaRun2(name) > -0.701;
256  else : return self.mvaRun2(name) > -0.350;
257  elif name == "NonTrigSpring15":
258  if wp=="VLoose":
259  if self.pt() <= 10:
260  if (eta < 0.8) : return self.mvaRun2(name) > -0.11;
261  elif (eta < 1.479): return self.mvaRun2(name) > -0.55;
262  else : return self.mvaRun2(name) > -0.60;
263  else:
264  if (eta < 0.8) : return self.mvaRun2(name) > -0.16;
265  elif (eta < 1.479): return self.mvaRun2(name) > -0.65;
266  else : return self.mvaRun2(name) > -0.74;
267  elif wp=="VLooseIdEmu":
268  if (eta < 0.8) : return self.mvaRun2(name) > -0.70;
269  elif (eta < 1.479): return self.mvaRun2(name) > -0.83;
270  else : return self.mvaRun2(name) > -0.92;
271  elif wp=="VLooseIdIsoEmu":
272  if (eta < 0.8) : return self.mvaRun2(name) > -0.155;
273  elif (eta < 1.479): return self.mvaRun2(name) > -0.56;
274  else : return self.mvaRun2(name) > -0.76;
275  elif wp=="Tight":
276  if (eta < 0.8) : return self.mvaRun2(name) > 0.87;
277  elif (eta < 1.479): return self.mvaRun2(name) > 0.60;
278  else : return self.mvaRun2(name) > 0.17;
279  else: raise RuntimeError, "Ele MVA ID Working point not found"
280  else: raise RuntimeError, "Ele MVA ID type not found"
281 
282 
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
def Electron.Electron.mvaIDTight (   self,
  full5x5 = False 
)

Definition at line 208 of file Electron.py.

References funct.abs(), eta, Electron.Electron.mvaTrigV0(), eetest::CandForTest.pt(), mypt.pt, res::HelperElectron.pt(), res::HelperMuon.pt(), res::HelperJet.pt(), reco::VoronoiBackground.pt(), RecoObj.pt, ScoutingParticle.pt(), tauImpactParameter::LorentzVectorParticle.pt, L1MuCSCPtLut.pt(), ScoutingPhoton.pt(), Residual1DHit.pt, reco::MuonMETCorrectionData.pt(), ScoutingElectron.pt(), PtHatReweightUserHook.pt, PtEtaPhiMass.pt(), MatchStruct.pt, ALILine.pt(), ScoutingMuon.pt(), ScoutingCaloJet.pt(), L2TauPixelTrackMatch::TinyTrack.pt, TrackMultiSelector::Block.pt, ScoutingPFJet.pt(), DTMuonLocalAlignment.pt, ElectronMVAEstimator.pt, TtFullHadSignalSel.pt(), PGlobalSimHit::Trk.pt, lhef::JetClustering::Jet.pt(), ZMuMuIsolationAnalyzer.pt, PatTrackAnalyzer::Plots.pt, jpt::Map.pt(), SiStripLAProfileBooker.pt, PhysicsObjectsMonitor.pt, reco::CaloMuon.pt(), TrackerValidationVariables::AVTrackStruct.pt, trigger::TriggerObject.pt(), BSTrkParameters.pt(), ElectronMVAEstimatorRun2Phys14NonTrig::AllVariables.pt, goodseedhelpers::HeavyObjectCache.pt, MuScleFitMuon.pt(), SoftElectronMVAEstimator.pt, SimpleL1MuGMTCand.pt(), PTrajectoryStateOnDet.pt(), HTrackVariables.pt(), ValidationMisalignedTracker.pt, HepLine3D.pt(), L1MuDTTrack.pt(), ElectronMVAEstimatorRun2Spring15NonTrig::AllVariables.pt, TrajectoryStateClosestToPoint.pt(), ElectronMVAEstimatorRun2Spring15Trig::AllVariables.pt, MuonDTLocalMillepedeAlgorithm.pt, BPhysicsValidation::ParticleMonitor.pt, susybsm::HSCParticle.pt(), PhotonPair.pt(), QualityCutsAnalyzer::histogram_element_t.pt, MuonGmtPair.pt(), reco::PreId.pt(), Lepton.pt, reco::Candidate.pt(), egHLT::OffPho.pt(), reco::Particle.pt(), TrackStruct::TrackParameterStruct.pt, reco::ParticleState.pt(), contrib::CMSBoostedTauSeedingAlgorithmStructure.pt(), PtHatRapReweightUserHook.pt, AlignmentMonitorMuonSystemMap1D::MyTrack.pt, MuonResidualsFitter::MuonAlignmentTreeRow.pt, reco::LeafCandidate.pt(), CandidateWithRef< Ref >.pt(), reco::PFCluster.pt(), JetAnalyzer_HeavyIons_matching::MyJet.pt, TrackingParticle.pt(), pat::MET::Vector2.pt(), pat::PackedGenParticle.pt(), GoodSeedProducer.pt, reco::TrackBase.pt(), pat::PackedCandidate.pt(), PMuonSimHit::Trk.pt, PTrackerSimHit::Trk.pt, reco::Electron.superCluster(), reco::PreshowerClusterShape.superCluster(), reco::RecoEcalCandidate.superCluster(), reco::GsfElectronCore.superCluster(), reco::RecoCandidate.superCluster(), reco::Photon.superCluster(), reco::PhotonCore.superCluster(), pat::Photon.superCluster(), pat::Electron.superCluster(), reco::SiStripElectron.superCluster(), pat::GenericParticle.superCluster(), and reco::GsfElectron.superCluster().

Referenced by Electron.Electron.electronID().

209  def mvaIDTight(self, full5x5=False):
210  eta = abs(self.superCluster().eta())
211  if self.pt() < 20:
212  if (eta < 0.8) : return self.mvaTrigV0(full5x5) > +0.00;
213  elif (eta < 1.479): return self.mvaTrigV0(full5x5) > +0.10;
214  else : return self.mvaTrigV0(full5x5) > +0.62;
215  else:
216  if (eta < 0.8) : return self.mvaTrigV0(full5x5) > +0.94;
217  elif (eta < 1.479): return self.mvaTrigV0(full5x5) > +0.85;
218  else : return self.mvaTrigV0(full5x5) > +0.92;
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
def Electron.Electron.mvaNonTrigV0 (   self,
  full5x5 = False,
  debug = False 
)

Definition at line 179 of file Electron.py.

References Electron.Electron._mvaNonTrigV0, Electron.Electron.associatedVertex, ElectronMVAID.ElectronMVAID_NonTrig, PhysicsObject.PhysicsObject.physObj, Electron.Electron.rho, AlignmentMonitorMuonSystemMap1D::MyResidual.rho, and objects.JetAnalyzer.JetAnalyzer.rho.

Referenced by Electron.Electron.mvaId(), and Electron.Electron.mvaIDLoose().

180  def mvaNonTrigV0( self, full5x5=False, debug = False ):
181  if self._mvaNonTrigV0[full5x5] == None:
182  if self.associatedVertex == None: raise RuntimeError, "You need to set electron.associatedVertex before calling any MVA"
183  if self.rho == None: raise RuntimeError, "You need to set electron.rho before calling any MVA"
184  self._mvaNonTrigV0[full5x5] = ElectronMVAID_NonTrig(self.physObj, self.associatedVertex, self.rho, full5x5, debug)
185  return self._mvaNonTrigV0[full5x5]
tuple ElectronMVAID_NonTrig
def Electron.Electron.mvaRun2 (   self,
  name,
  debug = False 
)

Definition at line 200 of file Electron.py.

References Electron.Electron._mvaRun2, Electron.Electron.associatedVertex, PhysicsObject.PhysicsObject.physObj, Electron.Electron.rho, AlignmentMonitorMuonSystemMap1D::MyResidual.rho, and objects.JetAnalyzer.JetAnalyzer.rho.

Referenced by Electron.Electron.mvaIDRun2().

201  def mvaRun2( self, name, debug = False ):
202  if name not in self._mvaRun2:
203  if name not in ElectronMVAID_ByName: raise RuntimeError, "Unknown electron run2 mva id %s (known ones are: %s)\n" % (name, ElectronMVAID_ByName.keys())
204  if self.associatedVertex == None: raise RuntimeError, "You need to set electron.associatedVertex before calling any MVA"
205  if self.rho == None: raise RuntimeError, "You need to set electron.rho before calling any MVA"
206  self._mvaRun2[name] = ElectronMVAID_ByName[name](self.physObj, self.associatedVertex, self.rho, True, debug)
207  return self._mvaRun2[name]
def Electron.Electron.mvaTrigNoIPV0 (   self,
  full5x5 = False,
  debug = False 
)

Definition at line 193 of file Electron.py.

References Electron.Electron._mvaTrigNoIPV0, Electron.Electron.associatedVertex, ElectronMVAID.ElectronMVAID_TrigNoIP, PhysicsObject.PhysicsObject.physObj, Electron.Electron.rho, AlignmentMonitorMuonSystemMap1D::MyResidual.rho, and objects.JetAnalyzer.JetAnalyzer.rho.

194  def mvaTrigNoIPV0( self, full5x5=False, debug = False ):
195  if self._mvaTrigNoIPV0[full5x5] == None:
196  if self.associatedVertex == None: raise RuntimeError, "You need to set electron.associatedVertex before calling any MVA"
197  if self.rho == None: raise RuntimeError, "You need to set electron.rho before calling any MVA"
198  self._mvaTrigNoIPV0[full5x5] = ElectronMVAID_TrigNoIP(self.physObj, self.associatedVertex, self.rho, full5x5, debug)
199  return self._mvaTrigNoIPV0[full5x5]
tuple ElectronMVAID_TrigNoIP
def Electron.Electron.mvaTrigV0 (   self,
  full5x5 = False,
  debug = False 
)

Definition at line 186 of file Electron.py.

References Electron.Electron._mvaTrigV0, Electron.Electron.associatedVertex, ElectronMVAID.ElectronMVAID_Trig, PhysicsObject.PhysicsObject.physObj, Electron.Electron.rho, AlignmentMonitorMuonSystemMap1D::MyResidual.rho, and objects.JetAnalyzer.JetAnalyzer.rho.

Referenced by Electron.Electron.mvaIDTight().

187  def mvaTrigV0( self, full5x5=False, debug = False ):
188  if self._mvaTrigV0[full5x5] == None:
189  if self.associatedVertex == None: raise RuntimeError, "You need to set electron.associatedVertex before calling any MVA"
190  if self.rho == None: raise RuntimeError, "You need to set electron.rho before calling any MVA"
191  self._mvaTrigV0[full5x5] = ElectronMVAID_Trig(self.physObj, self.associatedVertex, self.rho, full5x5, debug)
192  return self._mvaTrigV0[full5x5]
tuple ElectronMVAID_Trig
def Electron.Electron.neutralHadronIsoR (   self,
  R = 0.4 
)

Definition at line 288 of file Electron.py.

Referenced by Lepton.Lepton.absIsoR(), Muon.Muon.absIsoWithFSR(), and Electron.Electron.absIsoWithFSR().

289  def neutralHadronIsoR(self,R=0.4):
290  if R == 0.3: return self.physObj.pfIsolationVariables().sumNeutralHadronEt
291  elif R == 0.4: return self.physObj.neutralHadronIso()
292  raise RuntimeError, "Electron neutralHadronIso missing for R=%s" % R
def Electron.Electron.p4 (   self)

Definition at line 345 of file Electron.py.

References PhysicsObject.PhysicsObject.physObj.

Referenced by Tau.Tau.dxy_approx(), Tau.Tau.dz(), and Jet.Jet.jetID().

346  def p4(self):
347  return ROOT.reco.Candidate.p4(self.physObj)
348 
349 # def p4(self):
350 # return self.physObj.p4(self.physObj.candidateP4Kind()) # if kind == None else kind)
def Electron.Electron.photonIsoR (   self,
  R = 0.4 
)

Definition at line 293 of file Electron.py.

Referenced by Lepton.Lepton.absIsoR(), Muon.Muon.absIsoWithFSR(), and Electron.Electron.absIsoWithFSR().

294  def photonIsoR(self,R=0.4):
295  if R == 0.3: return self.physObj.pfIsolationVariables().sumPhotonEt
296  elif R == 0.4: return self.physObj.photonIso()
297  raise RuntimeError, "Electron photonIso missing for R=%s" % R
def Electron.Electron.puChargedHadronIsoR (   self,
  R = 0.4 
)

Definition at line 305 of file Electron.py.

Referenced by Lepton.Lepton.absIsoR(), Muon.Muon.absIsoWithFSR(), and Electron.Electron.absIsoWithFSR().

306  def puChargedHadronIsoR(self,R=0.4):
307  if R == 0.3: return self.physObj.pfIsolationVariables().sumPUPt
308  elif R == 0.4: return self.physObj.puChargedHadronIso()
309  raise RuntimeError, "Electron chargedHadronIso missing for R=%s" % R
310 
def puChargedHadronIsoR
Definition: Electron.py:305
def Electron.Electron.tightId (   self)

Definition at line 176 of file Electron.py.

References Electron.Electron.tightIdResult.

177  def tightId( self ):
178  return self.tightIdResult

Member Data Documentation

Electron.Electron._mvaNonTrigV0
private

Definition at line 19 of file Electron.py.

Referenced by Electron.Electron.mvaNonTrigV0().

Electron.Electron._mvaRun2
private

Definition at line 22 of file Electron.py.

Referenced by Electron.Electron.mvaRun2().

Electron.Electron._mvaTrigNoIPV0
private

Definition at line 21 of file Electron.py.

Referenced by Electron.Electron.mvaTrigNoIPV0().

Electron.Electron._mvaTrigV0
private

Definition at line 20 of file Electron.py.

Referenced by Electron.Electron.mvaTrigV0().

Electron.Electron.associatedVertex

Definition at line 17 of file Electron.py.

Referenced by Tau.Tau.dxy(), Muon.Muon.dxy(), Electron.Electron.dxy(), Tau.Tau.dxy_approx(), Tau.Tau.dz(), Muon.Muon.dz(), Electron.Electron.dz(), Electron.Electron.electronID(), Electron.Electron.mvaNonTrigV0(), Electron.Electron.mvaRun2(), Electron.Electron.mvaTrigNoIPV0(), Electron.Electron.mvaTrigV0(), and Tau.Tau.zImpact().

Electron.Electron.rho

Definition at line 18 of file Electron.py.

Referenced by Lepton.Lepton.absIsoFromEA(), Muon.Muon.absIsoWithFSR(), Electron.Electron.absIsoWithFSR(), Photon.Photon.chargedHadronIso(), Electron.Electron.electronID(), Electron.Electron.mvaNonTrigV0(), Electron.Electron.mvaRun2(), Electron.Electron.mvaTrigNoIPV0(), Electron.Electron.mvaTrigV0(), Photon.Photon.neutralHadronIso(), and Photon.Photon.photonIso().

Electron.Electron.tightIdResult

Definition at line 16 of file Electron.py.

Referenced by Electron.Electron.tightId().