Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Electron MVA-based ID for Run3 from EGamma POG #40230

81 changes: 59 additions & 22 deletions PhysicsTools/NanoAOD/python/electrons_cff.py
Expand Up @@ -6,8 +6,7 @@

############################FOR bitmapVIDForEle main defn#############################
electron_id_modules_WorkingPoints_nanoAOD = cms.PSet(
modules = cms.vstring(
'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_Winter22_122X_V1_cff',
modules = cms.vstring(
'RecoEgamma.ElectronIdentification.Identification.heepElectronID_HEEPV70_cff',
# HZZ ID
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Summer16UL_ID_ISO_cff',
Expand All @@ -17,6 +16,10 @@
'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_Fall17_94X_V2_cff',
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Fall17_iso_V2_cff',
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Fall17_noIso_V2_cff',
# Run3Winter22:
'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_Winter22_122X_V1_cff',
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_RunIIIWinter22_iso_V1_cff',
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_RunIIIWinter22_noIso_V1_cff',
),
WorkingPoints = cms.vstring(
"egmGsfElectronIDs:cutBasedElectronID-RunIIIWinter22-V1-veto",
Expand Down Expand Up @@ -147,9 +150,11 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):
slimmedElectronsWithUserData = cms.EDProducer("PATElectronUserDataEmbedder",
src = cms.InputTag("slimmedElectrons"),
parentSrcs = cms.VInputTag("reducedEgamma:reducedGedGsfElectrons"),
userFloats = cms.PSet(
mvaIso = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Fall17IsoV2Values"),
mvaNoIso = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Fall17NoIsoV2Values"),
userFloats = cms.PSet(
mvaIso_Fall17V2 = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Fall17IsoV2Values"),
mvaNoIso_Fall17V2 = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Fall17NoIsoV2Values"),
mvaIso = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2RunIIIWinter22IsoV1Values"),
mvaNoIso = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2RunIIIWinter22NoIsoV1Values"),
mvaHZZIso = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Summer18ULIdIsoValues"),

miniIsoChg = cms.InputTag("isoForEle:miniIsoChg"),
Expand All @@ -168,14 +173,18 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):
ptRel = cms.InputTag("ptRatioRelForEle:ptRel"),
jetNDauChargedMVASel = cms.InputTag("ptRatioRelForEle:jetNDauChargedMVASel"),
),
userIntFromBools = cms.PSet(
mvaIso_WP90 = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-iso-V2-wp90"),
mvaIso_WP80 = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-iso-V2-wp80"),
mvaIso_WPL = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-iso-V2-wpLoose"),
mvaNoIso_WP90 = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-noIso-V2-wp90"),
mvaNoIso_WP80 = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-noIso-V2-wp80"),
mvaNoIso_WPL = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-noIso-V2-wpLoose"),

userIntFromBools = cms.PSet(
mvaIso_Fall17V2_WP90 = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-iso-V2-wp90"),
mvaIso_Fall17V2_WP80 = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-iso-V2-wp80"),
mvaIso_Fall17V2_WPL = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-iso-V2-wpLoose"),
mvaIso_WP90 = cms.InputTag("egmGsfElectronIDs:mvaEleID-RunIIIWinter22-iso-V1-wp90"),
mvaIso_WP80 = cms.InputTag("egmGsfElectronIDs:mvaEleID-RunIIIWinter22-iso-V1-wp80"),
mvaNoIso_Fall17V2_WP90 = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-noIso-V2-wp90"),
mvaNoIso_Fall17V2_WP80 = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-noIso-V2-wp80"),
mvaNoIso_Fall17V2_WPL = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-noIso-V2-wpLoose"),
mvaNoIso_WP90 = cms.InputTag("egmGsfElectronIDs:mvaEleID-RunIIIWinter22-noIso-V1-wp90"),
mvaNoIso_WP80 = cms.InputTag("egmGsfElectronIDs:mvaEleID-RunIIIWinter22-noIso-V1-wp80"),

cutBasedID_veto = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-RunIIIWinter22-V1-veto"),
cutBasedID_loose = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-RunIIIWinter22-V1-loose"),
cutBasedID_medium = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-RunIIIWinter22-V1-medium"),
Expand All @@ -199,12 +208,18 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):

# no need for the Run3 IDs in Run2
run2_egamma.toModify(slimmedElectronsWithUserData.userFloats,
mvaIso = None,
mvaNoIso = None,
miniIsoChg = None,
miniIsoAll = None,
PFIsoChg = None,
PFIsoAll = None,
PFIsoAll04 = None).\
toModify(slimmedElectronsWithUserData.userIntFromBools,
mvaIso_WP90 = None,
mvaIso_WP80 = None,
mvaNoIso_WP90 = None,
mvaNoIso_WP80 = None,
cutBasedID_veto = None,
cutBasedID_loose = None,
cutBasedID_medium = None,
Expand Down Expand Up @@ -294,14 +309,20 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):
eInvMinusPInv = Var("(1-eSuperClusterOverP())/ecalEnergy()",float,doc="1/E_SC - 1/p_trk",precision=10),
scEtOverPt = Var("(superCluster().energy()/(pt*cosh(superCluster().eta())))-1",float,doc="(supercluster transverse energy)/pt-1",precision=8),

mvaIso = Var("userFloat('mvaIso')",float,doc="MVA Iso ID V2 score"),
mvaIso_WP80 = Var("userInt('mvaIso_WP80')",bool,doc="MVA Iso ID V2 WP80"),
mvaIso_WP90 = Var("userInt('mvaIso_WP90')",bool,doc="MVA Iso ID V2 WP90"),
mvaIso_WPL = Var("userInt('mvaIso_WPL')",bool,doc="MVA Iso ID V2 loose WP"),
mvaNoIso = Var("userFloat('mvaNoIso')",float,doc="MVA noIso ID V2 score"),
mvaNoIso_WP80 = Var("userInt('mvaNoIso_WP80')",bool,doc="MVA noIso ID V2 WP80"),
mvaNoIso_WP90 = Var("userInt('mvaNoIso_WP90')",bool,doc="MVA noIso ID V2 WP90"),
mvaNoIso_WPL = Var("userInt('mvaNoIso_WPL')",bool,doc="MVA noIso ID V2 loose WP"),
mvaIso = Var("userFloat('mvaIso')",float,doc="MVA Iso ID score, Winter22V1"),
mvaIso_WP80 = Var("userInt('mvaIso_WP80')",bool,doc="MVA Iso ID WP80, Winter22V1"),
mvaIso_WP90 = Var("userInt('mvaIso_WP90')",bool,doc="MVA Iso ID WP90, Winter22V1"),
mvaNoIso = Var("userFloat('mvaNoIso')",float,doc="MVA noIso ID score, Winter22V1"),
mvaNoIso_WP80 = Var("userInt('mvaNoIso_WP80')",bool,doc="MVA noIso ID WP80, Winter22V1"),
mvaNoIso_WP90 = Var("userInt('mvaNoIso_WP90')",bool,doc="MVA noIso ID WP90, Winter22V1"),
mvaIso_Fall17V2 = Var("userFloat('mvaIso_Fall17V2')",float,doc="MVA Iso ID score, Fall17V2"),
mvaIso_Fall17V2_WP80 = Var("userInt('mvaIso_Fall17V2_WP80')",bool,doc="MVA Iso ID WP80, Fall17V2"),
mvaIso_Fall17V2_WP90 = Var("userInt('mvaIso_Fall17V2_WP90')",bool,doc="MVA Iso ID WP90, Fall17V2"),
mvaIso_Fall17V2_WPL = Var("userInt('mvaIso_Fall17V2_WPL')",bool,doc="MVA Iso ID loose WP, Fall17V2"),
mvaNoIso_Fall17V2 = Var("userFloat('mvaNoIso_Fall17V2')",float,doc="MVA noIso ID score, Fall17V2"),
mvaNoIso_Fall17V2_WP80 = Var("userInt('mvaNoIso_Fall17V2_WP80')",bool,doc="MVA noIso ID WP80, Fall17V2"),
mvaNoIso_Fall17V2_WP90 = Var("userInt('mvaNoIso_Fall17V2_WP90')",bool,doc="MVA noIso ID WP90, Fall17V2"),
mvaNoIso_Fall17V2_WPL = Var("userInt('mvaNoIso_Fall17V2_WPL')",bool,doc="MVA noIso ID loose WP, Fall17V2"),
mvaHZZIso = Var("userFloat('mvaHZZIso')", float,doc="HZZ MVA Iso ID score"),

cutBased = Var("userInt('cutBasedID_veto')+userInt('cutBasedID_loose')+userInt('cutBasedID_medium')+userInt('cutBasedID_tight')",int,doc="cut-based ID RunIII Winter22 (0:fail, 1:veto, 2:loose, 3:medium, 4:tight)"),
Expand Down Expand Up @@ -354,7 +375,23 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):
# switch default IDs back to Fall17V2 in Run2, remove Winter22V1 and quadratic iso
cutBased = electronTable.variables.cutBased_Fall17V2,
cutBased_Fall17V2 = None,
vidNestedWPBitmap = electronTable.variables.cutBased_Fall17V2 ,
mvaIso = electronTable.variables.mvaIso_Fall17V2,
mvaIso_Fall17V2 = None,
mvaIso_WP80 = electronTable.variables.mvaIso_Fall17V2_WP80,
mvaIso_Fall17V2_WP80 = None,
mvaIso_WP90 = electronTable.variables.mvaIso_Fall17V2_WP90,
mvaIso_Fall17V2_WP90 = None,
mvaIso_WPL = electronTable.variables.mvaIso_Fall17V2_WPL,
mvaIso_Fall17V2_WPL = None,
mvaNoIso = electronTable.variables.mvaNoIso_Fall17V2,
mvaNoIso_Fall17V2 = None,
mvaNoIso_WP80 = electronTable.variables.mvaNoIso_Fall17V2_WP80,
mvaNoIso_Fall17V2_WP80 = None,
mvaNoIso_WP90 = electronTable.variables.mvaNoIso_Fall17V2_WP90,
mvaNoIso_Fall17V2_WP90 = None,
mvaNoIso_WPL = electronTable.variables.mvaNoIso_Fall17V2_WPL,
mvaNoIso_Fall17V2_WPL = None,
vidNestedWPBitmap = electronTable.variables.cutBased_Fall17V2,
vidNestedWPBitmap_Fall17V2 = None,
miniPFRelIso_chg = electronTable.variables.miniPFRelIso_chg_Fall17V2,
miniPFRelIso_chg_Fall17V2 = None,
Expand Down
24 changes: 15 additions & 9 deletions PhysicsTools/NanoAOD/python/nanoDQM_cfi.py
Expand Up @@ -82,14 +82,20 @@
Plot1D('lostHits', 'lostHits', 4, -0.5, 3.5, 'number of missing inner hits'),
Plot1D('jetNDauCharged', 'jetNDauCharged', 20, -0.5, 19.5, 'number of charged daughters of the closest jet'),
NoPlot('mass'),
Plot1D('mvaIso', 'mvaIso', 20, -1, 1, 'MVA Iso ID V2 score'),
Plot1D('mvaIso_WP80', 'mvaIso_WP80', 2, -0.5, 1.5, 'MVA Iso ID V2 WP80'),
Plot1D('mvaIso_WP90', 'mvaIso_WP90', 2, -0.5, 1.5, 'MVA Iso ID V2 WP90'),
Plot1D('mvaIso_WPL', 'mvaIso_WPL', 2, -0.5, 1.5, 'MVA Iso ID V2 loose WP'),
Plot1D('mvaNoIso', 'mvaNoIso', 20, -1, 1, 'MVA noIso ID V2 score'),
Plot1D('mvaNoIso_WP80', 'mvaNoIso_WP80', 2, -0.5, 1.5, 'MVA noIso ID V2 WP80'),
Plot1D('mvaNoIso_WP90', 'mvaNoIso_WP90', 2, -0.5, 1.5, 'MVA noIso ID V2 WP90'),
Plot1D('mvaNoIso_WPL', 'mvaNoIso_WPL', 2, -0.5, 1.5, 'MVA noIso ID V2 loose WP'),
Plot1D('mvaIso_Fall17V2', 'mvaIso_Fall17V2', 20, -1, 1, 'MVA Iso ID score, Fall17V2'),
Plot1D('mvaIso_Fall17V2_WP80', 'mvaIso_Fall17V2_WP80', 2, -0.5, 1.5, 'MVA Iso ID WP80, Fall17V2'),
Plot1D('mvaIso_Fall17V2_WP90', 'mvaIso_Fall17V2_WP90', 2, -0.5, 1.5, 'MVA Iso ID WP90, Fall17V2'),
Plot1D('mvaIso_Fall17V2_WPL', 'mvaIso_Fall17V2_WPL', 2, -0.5, 1.5, 'MVA Iso ID loose WP, Fall17V2'),
Plot1D('mvaIso', 'mvaIso', 20, -1, 1, 'MVA Iso ID score, Winter22V1'),
Plot1D('mvaIso_WP80', 'mvaIso_WP80', 2, -0.5, 1.5, 'MVA Iso ID WP80, Winter22V1'),
Plot1D('mvaIso_WP90', 'mvaIso_WP90', 2, -0.5, 1.5, 'MVA Iso ID WP90, Winter22V1'),
Plot1D('mvaNoIso', 'mvaNoIso', 20, -1, 1, 'MVA noIso ID score, Winter22V1'),
Plot1D('mvaNoIso_WP80', 'mvaNoIso_WP80', 2, -0.5, 1.5, 'MVA noIso ID WP80, Winter22V1'),
Plot1D('mvaNoIso_WP90', 'mvaNoIso_WP90', 2, -0.5, 1.5, 'MVA noIso ID WP90, Winter22V1'),
Plot1D('mvaNoIso_Fall17V2', 'mvaNoIso_Fall17V2', 20, -1, 1, 'MVA noIso ID score, Fall17V2'),
Plot1D('mvaNoIso_Fall17V2_WP80', 'mvaNoIso_Fall17V2_WP80', 2, -0.5, 1.5, 'MVA noIso ID WP80, Fall17V2'),
Plot1D('mvaNoIso_Fall17V2_WP90', 'mvaNoIso_Fall17V2_WP90', 2, -0.5, 1.5, 'MVA noIso ID WP90, Fall17V2'),
Plot1D('mvaNoIso_Fall17V2_WPL', 'mvaNoIso_Fall17V2_WPL', 2, -0.5, 1.5, 'MVA noIso ID loose WP, Fall17V2'),
Plot1D('mvaTTH', 'mvaTTH', 20, -1, 1, 'TTH MVA lepton ID score'),
Plot1D('pdgId', 'pdgId', 27, -13.5, 13.5, 'PDG code assigned by the event reconstruction (not by MC truth)'),
Plot1D('miniPFRelIso_all', 'miniPFRelIso_all', 20, 0, 1, 'mini PF relative isolation, total (with scaled rho*EA PU corrections)'),
Expand Down Expand Up @@ -598,7 +604,7 @@
Plot1D('charge', 'charge', 1, -0.5, 0.5, 'electric charge'),
Plot1D('cleanmask', 'cleanmask', 1, 0.5, 1.5, 'simple cleaning mask with priority to leptons'),
Plot1D('cutBased', 'cutBased', 4, -0.5, 3.5,'cut-based ID bitmap, (0:fail, 1:loose, 2:medium, 3:tight)'),
Plot1D('cutBased_Fall17V2', 'cutBased_Fall17V2', 4, -0.5, 3.5, 'cut-based ID bitmap, Fall17V2, (0:fail, 1:loose, 2:medium, 3:tight)'),
Plot1D('cutBased_Fall17V2', 'cutBased_Fall17V2', 4, -0.5, 3.5, 'cut-based ID bitmap, Fall17V2, (0:fail, 1:loose, 2:medium, 3:tight)'),
NoPlot('electronIdx'),
Plot1D('electronVeto', 'electronVeto', 2, -0.5, 1.5, 'pass electron veto'),
Plot1D('energyErr', 'energyErr', 20, 0, 300, 'energy error of the cluster from regression'),
Expand Down
4 changes: 1 addition & 3 deletions PhysicsTools/NanoAOD/python/photons_cff.py
Expand Up @@ -35,7 +35,7 @@

# make Fall17 the default one in Run2
run2_egamma.toModify(photon_id_modules_WorkingPoints_nanoAOD,
modules=photon_id_modules_WorkingPoints_nanoAOD_Run2.modules).\
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Prasant1993 remove this extra space you have added. Looks like this is what caused the test to fail.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@a-kapoor, thanks for spotting the additional space issue present. Fixed it now.

modules=photon_id_modules_WorkingPoints_nanoAOD_Run2.modules).\
toModify(photon_id_modules_WorkingPoints_nanoAOD,
WorkingPoints=photon_id_modules_WorkingPoints_nanoAOD_Run2.WorkingPoints)

Expand Down Expand Up @@ -166,7 +166,6 @@ def make_bitmapVID_docstring(id_modules_working_points_pset):
toModify(slimmedPhotonsWithUserData.userInts,
VIDNestedWPBitmap = None)


run2_egamma.toModify(
slimmedPhotonsWithUserData.userFloats,
ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotonsNano","ecalEnergyErrPostCorr"),
Expand Down Expand Up @@ -271,7 +270,6 @@ def make_bitmapVID_docstring(id_modules_working_points_pset):
pfRelIso03_all_quadratic=None,
hoe_PUcorr=None)


#these eras need to make the energy correction, hence the "New"
run2_egamma.toModify(
photonTable.variables,
Expand Down
2 changes: 2 additions & 0 deletions PhysicsTools/PatAlgos/python/slimming/miniAOD_tools.py
Expand Up @@ -306,6 +306,8 @@ def _add_deepFlavour(process):
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Summer16UL_ID_ISO_cff',
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Summer17UL_ID_ISO_cff',
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Summer18UL_ID_ISO_cff',
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_RunIIIWinter22_noIso_V1_cff',
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_RunIIIWinter22_iso_V1_cff'
]
switchOnVIDElectronIdProducer(process,DataFormat.MiniAOD, task)
process.egmGsfElectronIDs.physicsObjectSrc = cms.InputTag("reducedEgamma","reducedGedGsfElectrons")
Expand Down
Expand Up @@ -9,6 +9,8 @@
import RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Fall17_noIso_V2_cff as ele_fall17_noIso_v2
import RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Summer18UL_ID_ISO_cff as ele_summer18UL_hzz

import RecoEgamma.ElectronIdentification.Identification.mvaElectronID_RunIIIWinter22_iso_V1_cff as ele_RunIIIWinter22_iso_v1
import RecoEgamma.ElectronIdentification.Identification.mvaElectronID_RunIIIWinter22_noIso_V1_cff as ele_RunIIIWinter22_noIso_v1

#photon mva ids
import RecoEgamma.PhotonIdentification.Identification.mvaPhotonID_Spring16_nonTrig_V1_cff as pho_spring16_nt_v1
Expand Down Expand Up @@ -45,7 +47,9 @@ def setup_mva(val_pset,cat_pset,prod_name,mva_name):
ele_fall17_noIso_v1,
ele_fall17_iso_v2,
ele_fall17_noIso_v2,
ele_summer18UL_hzz
ele_summer18UL_hzz,
ele_RunIIIWinter22_iso_v1,
ele_RunIIIWinter22_noIso_v1
]:

setup_mva(egamma_modifications[0].electron_config,
Expand Down
44 changes: 44 additions & 0 deletions RecoEgamma/ElectronIdentification/data/ElectronIDVariablesRun3.txt
@@ -0,0 +1,44 @@
# File: ElectronIDVariablesRun3.txt
#
# This file is to be read by the MVAVariableHelper class. Lists all the
# variables which appear in the xml files for the MVA based Electron IDs for Run2.
# Variables are given line by line. The columns of each entry correspond to:
#
# 1. The name under which the variable appears in the weight files.
# 2. How to get this variable from the electron with the cut parser (NO SPACES!)
# or if not available, how to get the variables elsewhere.
# 3. The lower clip value for the variable to avoid crazy values. "None" if no clip.
# 4. The upper clip value.
#

# This selection of ID variables is rather large and not intended to be used by a real ID,
# but by an ntuplizer which dumps all possible ID variables.

rho fixedGridRhoFastjetAll None None
ele_oldsigmaietaieta full5x5_sigmaIetaIeta None None
ele_oldsigmaiphiiphi full5x5_sigmaIphiIphi None None
ele_oldcircularity 1.-full5x5_e1x5/full5x5_e5x5 -1. 2.
ele_oldr9 full5x5_r9 None 5.
ele_scletawidth superCluster.etaWidth None None
ele_sclphiwidth superCluster.phiWidth None None
ele_oldhe full5x5_hcalOverEcal None None
ele_kfhits closestCtfTrackNLayers None None
ele_kfchi2 closestCtfTrackNormChi2 None 10.
ele_gsfchi2 gsfTrack.normalizedChi2 None 200.
ele_fbrem fbrem -1. None
ele_gsfhits gsfTrack.hitPattern.trackerLayersWithMeasurement None None
ele_expected_inner_hits gsfTrack.hitPattern.numberOfLostHits('MISSING_INNER_HITS') None None
ele_conversionVertexFitProbability convVtxFitProb None None
ele_ep eSuperClusterOverP None 20.
ele_eelepout eEleClusterOverPout None 20.
ele_IoEmIop 1.0/ecalEnergy-1.0/trackMomentumAtVtx.R None None
ele_deltaetain abs(deltaEtaSuperClusterTrackAtVtx) -0.06 0.06
ele_deltaphiin abs(deltaPhiSuperClusterTrackAtVtx) -0.6 0.6
ele_deltaetaseed abs(deltaEtaSeedClusterTrackAtCalo) -0.2 0.2
ele_psEoverEraw superCluster.preshowerEnergy/superCluster.rawEnergy None None
ele_pfPhotonIso pfIsolationVariables.sumPhotonEt None None
ele_pfChargedHadIso pfIsolationVariables.sumChargedHadronPt None None
ele_pfNeutralHadIso pfIsolationVariables.sumNeutralHadronEt None None
ele_ecalPFClusterIso ecalPFClusterIso None None
ele_hcalPFClusterIso hcalPFClusterIso None None
ele_dr03TkSumPt dr03TkSumPt None None