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 278 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.

279  def absIsoWithFSR(self, R=0.4, puCorr="rhoArea", dBetaFactor=0.5):
280  '''
281  Calculate Isolation, subtract FSR, apply specific PU corrections"
282  '''
283  photonIso = self.photonIsoR(R)
284  if hasattr(self,'fsrPhotons'):
285  for gamma in self.fsrPhotons:
286  dr = deltaR(gamma.eta(), gamma.phi(), self.physObj.eta(), self.physObj.phi())
287  if (self.isEB() or dr > 0.08) and dr < R:
288  photonIso = max(photonIso-gamma.pt(),0.0)
289  if puCorr == "deltaBeta":
290  offset = dBetaFactor * self.puChargedHadronIsoR(R)
291  elif puCorr == "rhoArea":
292  offset = self.rho*getattr(self,"EffectiveArea"+(str(R).replace(".","")))
293  elif puCorr in ["none","None",None]:
294  offset = 0
295  else:
296  raise RuntimeError("Unsupported PU correction scheme %s" % puCorr)
297  return self.chargedHadronIsoR(R)+max(0.,photonIso+self.neutralHadronIsoR(R)-offset)
298 
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
def puChargedHadronIsoR
Definition: Electron.py:272
def Electron.Electron.chargedAllIso (   self)

Definition at line 269 of file Electron.py.

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

Definition at line 265 of file Electron.py.

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

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

Definition at line 250 of file Electron.py.

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

251  def chargedHadronIsoR(self,R=0.4):
252  if R == 0.3: return self.physObj.pfIsolationVariables().sumChargedHadronPt
253  elif R == 0.4: return self.physObj.chargedHadronIso()
254  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(), Electron.Electron.dxy(), pat::Tau.dxy(), pat::PackedCandidate.dxy(), tauImpactParameter::TrackParticle.dz, egammaisolation::EgammaTrackSelector.dz, HGCalParameters::hgtrap.dz, DDHCalXtalAlgo.dz, RigidBodyAlignmentParameters.dz, ScoutingElectron.dz(), BowedSurfaceAlignmentDerivatives.dz, DDHCalTestBeamAlgo.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 299 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().

300  def dxy(self, vertex=None):
301  '''Returns dxy.
302  Computed using vertex (or self.associatedVertex if vertex not specified),
303  and the gsf track.
304  '''
305  if vertex is None:
306  vertex = self.associatedVertex
307  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 318 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().

319  def dz(self, vertex=None):
320  '''Returns dz.
321  Computed using vertex (or self.associatedVertex if vertex not specified),
322  and the gsf track.
323  '''
324  if vertex is None:
325  vertex = self.associatedVertex
326  return self.gsfTrack().dz( vertex.position() )
def Electron.Electron.edxy (   self)
returns the uncertainty on dxy (from gsf track)

Definition at line 308 of file Electron.py.

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

309  def edxy(self):
310  '''returns the uncertainty on dxy (from gsf track)'''
311  return self.gsfTrack().dxyError()
def Electron.Electron.edz (   self)
returns the uncertainty on dxz (from gsf track)

Definition at line 327 of file Electron.py.

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

328  def edz(self):
329  '''returns the uncertainty on dxz (from gsf track)'''
330  return self.gsfTrack().dzError()
331 
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 332 of file Electron.py.

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

333  def lostInner(self) :
334  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(), InternalObj.pt, eetest::CandForTest.pt(), mypt.pt, res::HelperMuon.pt(), res::HelperElectron.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, MySimTrack.pt, ALILine.pt(), ScoutingMuon.pt(), ScoutingCaloJet.pt(), L2TauPixelTrackMatch::TinyTrack.pt, TrackMultiSelector::Block.pt, ScoutingPFJet.pt(), L1Analysis::L1AnalysisRecoMuon2DataFormat.pt, DTMuonLocalAlignment.pt, L1Analysis::L1AnalysisRecoTauDataFormat.pt, ElectronMVAEstimator.pt, TtFullHadSignalSel.pt(), PGlobalSimHit::Trk.pt, L1Analysis::L1AnalysisRecoElectronDataFormat.pt, ZMuMuIsolationAnalyzer.pt, PatTrackAnalyzer::Plots.pt, reco::CaloMuon.pt(), SiStripLAProfileBooker.pt, jpt::Map.pt(), PhysicsObjectsMonitor.pt, trigger::TriggerObject.pt(), TrackerValidationVariables::AVTrackStruct.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(), L1MuBMTrack.pt(), ElectronMVAEstimatorRun2Spring15Trig::AllVariables.pt, MuonDTLocalMillepedeAlgorithm.pt, l1t::emtf::SP.pt, BPhysicsValidation::ParticleMonitor.pt, L1TMuon::InternalTrack.pt, PhotonPair.pt(), susybsm::HSCParticle.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, MuonResidualsFitter::MuonAlignmentTreeRow.pt, AlignmentMonitorMuonSystemMap1D::MyTrack.pt, CandidateWithRef< Ref >.pt(), reco::LeafCandidate.pt(), reco::PFCluster.pt(), JetAnalyzer_HeavyIons_matching::MyJet.pt, L1Analysis::L1AnalysisRecoMuonDataFormat.pt, TrackingParticle.pt(), pat::MET::Vector2.pt(), GoodSeedProducer.pt, pat::PackedGenParticle.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().

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(), 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  else: raise RuntimeError("Ele MVA ID type not found")
248 
249 
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(), InternalObj.pt, eetest::CandForTest.pt(), mypt.pt, res::HelperMuon.pt(), res::HelperElectron.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, MySimTrack.pt, ALILine.pt(), ScoutingMuon.pt(), ScoutingCaloJet.pt(), L2TauPixelTrackMatch::TinyTrack.pt, TrackMultiSelector::Block.pt, ScoutingPFJet.pt(), L1Analysis::L1AnalysisRecoMuon2DataFormat.pt, DTMuonLocalAlignment.pt, L1Analysis::L1AnalysisRecoTauDataFormat.pt, ElectronMVAEstimator.pt, TtFullHadSignalSel.pt(), PGlobalSimHit::Trk.pt, L1Analysis::L1AnalysisRecoElectronDataFormat.pt, ZMuMuIsolationAnalyzer.pt, PatTrackAnalyzer::Plots.pt, reco::CaloMuon.pt(), SiStripLAProfileBooker.pt, jpt::Map.pt(), PhysicsObjectsMonitor.pt, trigger::TriggerObject.pt(), TrackerValidationVariables::AVTrackStruct.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(), L1MuBMTrack.pt(), ElectronMVAEstimatorRun2Spring15Trig::AllVariables.pt, MuonDTLocalMillepedeAlgorithm.pt, l1t::emtf::SP.pt, BPhysicsValidation::ParticleMonitor.pt, L1TMuon::InternalTrack.pt, PhotonPair.pt(), susybsm::HSCParticle.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, MuonResidualsFitter::MuonAlignmentTreeRow.pt, AlignmentMonitorMuonSystemMap1D::MyTrack.pt, CandidateWithRef< Ref >.pt(), reco::LeafCandidate.pt(), reco::PFCluster.pt(), JetAnalyzer_HeavyIons_matching::MyJet.pt, L1Analysis::L1AnalysisRecoMuonDataFormat.pt, TrackingParticle.pt(), pat::MET::Vector2.pt(), GoodSeedProducer.pt, pat::PackedGenParticle.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().

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 255 of file Electron.py.

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

256  def neutralHadronIsoR(self,R=0.4):
257  if R == 0.3: return self.physObj.pfIsolationVariables().sumNeutralHadronEt
258  elif R == 0.4: return self.physObj.neutralHadronIso()
259  raise RuntimeError("Electron neutralHadronIso missing for R=%s" % R)
def Electron.Electron.p4 (   self)

Definition at line 312 of file Electron.py.

References PhysicsObject.PhysicsObject.physObj.

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

313  def p4(self):
314  return ROOT.reco.Candidate.p4(self.physObj)
315 
316 # def p4(self):
317 # return self.physObj.p4(self.physObj.candidateP4Kind()) # if kind == None else kind)
def Electron.Electron.photonIsoR (   self,
  R = 0.4 
)

Definition at line 260 of file Electron.py.

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

261  def photonIsoR(self,R=0.4):
262  if R == 0.3: return self.physObj.pfIsolationVariables().sumPhotonEt
263  elif R == 0.4: return self.physObj.photonIso()
264  raise RuntimeError("Electron photonIso missing for R=%s" % R)
def Electron.Electron.puChargedHadronIsoR (   self,
  R = 0.4 
)

Definition at line 272 of file Electron.py.

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

273  def puChargedHadronIsoR(self,R=0.4):
274  if R == 0.3: return self.physObj.pfIsolationVariables().sumPUPt
275  elif R == 0.4: return self.physObj.puChargedHadronIso()
276  raise RuntimeError("Electron chargedHadronIso missing for R=%s" % R)
277 
def puChargedHadronIsoR
Definition: Electron.py:272
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().