CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
photons_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 from Configuration.Eras.Modifier_run2_miniAOD_80XLegacy_cff import run2_miniAOD_80XLegacy
4 from math import ceil,log
5 
6 from Configuration.Eras.Modifier_run2_miniAOD_80XLegacy_cff import run2_miniAOD_80XLegacy
7 from Configuration.Eras.Modifier_run2_nanoAOD_94XMiniAODv1_cff import run2_nanoAOD_94XMiniAODv1
8 from Configuration.Eras.Modifier_run2_nanoAOD_94XMiniAODv2_cff import run2_nanoAOD_94XMiniAODv2
9 from Configuration.Eras.Modifier_run2_nanoAOD_94X2016_cff import run2_nanoAOD_94X2016
10 from Configuration.Eras.Modifier_run2_nanoAOD_102Xv1_cff import run2_nanoAOD_102Xv1
11 
12 photon_id_modules_WorkingPoints_nanoAOD = cms.PSet(
13  modules = cms.vstring(
14  'RecoEgamma.PhotonIdentification.Identification.cutBasedPhotonID_Fall17_94X_V1_TrueVtx_cff',
15  'RecoEgamma.PhotonIdentification.Identification.cutBasedPhotonID_Fall17_94X_V2_cff',
16  'RecoEgamma.PhotonIdentification.Identification.mvaPhotonID_Fall17_94X_V1p1_cff',
17  'RecoEgamma.PhotonIdentification.Identification.mvaPhotonID_Fall17_94X_V2_cff',
18  ),
19  WorkingPoints = cms.vstring(
20  "egmPhotonIDs:cutBasedPhotonID-Fall17-94X-V2-loose",
21  "egmPhotonIDs:cutBasedPhotonID-Fall17-94X-V2-medium",
22  "egmPhotonIDs:cutBasedPhotonID-Fall17-94X-V2-tight",
23  )
24 )
25 run2_miniAOD_80XLegacy.toModify(photon_id_modules_WorkingPoints_nanoAOD,
26  modules = cms.vstring(
27  'RecoEgamma.PhotonIdentification.Identification.cutBasedPhotonID_Spring16_V2p2_cff',
28  'RecoEgamma.PhotonIdentification.Identification.mvaPhotonID_Spring16_nonTrig_V1_cff',
29  ),
30  WorkingPoints = cms.vstring(
31  "egmPhotonIDs:cutBasedPhotonID-Spring16-V2p2-loose",
32  "egmPhotonIDs:cutBasedPhotonID-Spring16-V2p2-medium",
33  "egmPhotonIDs:cutBasedPhotonID-Spring16-V2p2-tight",
34  )
35 )
36 run2_nanoAOD_94X2016.toModify(photon_id_modules_WorkingPoints_nanoAOD,
37  modules = cms.vstring(
38  'RecoEgamma.PhotonIdentification.Identification.cutBasedPhotonID_Spring16_V2p2_cff',
39  ),
40  WorkingPoints = cms.vstring(
41  "egmPhotonIDs:cutBasedPhotonID-Spring16-V2p2-loose",
42  "egmPhotonIDs:cutBasedPhotonID-Spring16-V2p2-medium",
43  "egmPhotonIDs:cutBasedPhotonID-Spring16-V2p2-tight",
44  )
45 )
46 
47 
48 _bitmapVIDForPho_docstring = ''
49 for modname in photon_id_modules_WorkingPoints_nanoAOD.modules:
50  ids= __import__(modname, globals(), locals(), ['idName','cutFlow'])
51  for name in dir(ids):
52  _id = getattr(ids,name)
53  if hasattr(_id,'idName') and hasattr(_id,'cutFlow'):
54  if (len(photon_id_modules_WorkingPoints_nanoAOD.WorkingPoints)>0 and _id.idName==photon_id_modules_WorkingPoints_nanoAOD.WorkingPoints[0].split(':')[-1]):
55  _bitmapVIDForPho_docstring = 'VID compressed bitmap (%s), %d bits per cut'%(','.join([cut.cutName.value() for cut in _id.cutFlow]),int(ceil(log(len(photon_id_modules_WorkingPoints_nanoAOD.WorkingPoints)+1,2))))
56 
57 bitmapVIDForPho = cms.EDProducer("PhoVIDNestedWPBitmapProducer",
58  src = cms.InputTag("slimmedPhotons"),
59  WorkingPoints = photon_id_modules_WorkingPoints_nanoAOD.WorkingPoints,
60 )
61 
62 isoForPho = cms.EDProducer("PhoIsoValueMapProducer",
63  src = cms.InputTag("slimmedPhotons"),
64  relative = cms.bool(False),
65  rho_PFIso = cms.InputTag("fixedGridRhoFastjetAll"),
66  mapIsoChg = cms.InputTag("photonIDValueMapProducer:phoChargedIsolation"),
67  mapIsoNeu = cms.InputTag("photonIDValueMapProducer:phoNeutralHadronIsolation"),
68  mapIsoPho = cms.InputTag("photonIDValueMapProducer:phoPhotonIsolation"),
69  EAFile_PFIso_Chg = cms.FileInPath("RecoEgamma/PhotonIdentification/data/Fall17/effAreaPhotons_cone03_pfChargedHadrons_90percentBased_V2.txt"),
70  EAFile_PFIso_Neu = cms.FileInPath("RecoEgamma/PhotonIdentification/data/Fall17/effAreaPhotons_cone03_pfNeutralHadrons_90percentBased_V2.txt"),
71  EAFile_PFIso_Pho = cms.FileInPath("RecoEgamma/PhotonIdentification/data/Fall17/effAreaPhotons_cone03_pfPhotons_90percentBased_V2.txt"),
72 )
73 for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016:
74  modifier.toModify(isoForPho,
75  EAFile_PFIso_Chg = cms.FileInPath("RecoEgamma/PhotonIdentification/data/Spring16/effAreaPhotons_cone03_pfChargedHadrons_90percentBased.txt"),
76  EAFile_PFIso_Neu = cms.FileInPath("RecoEgamma/PhotonIdentification/data/Spring16/effAreaPhotons_cone03_pfNeutralHadrons_90percentBased.txt"),
77  EAFile_PFIso_Pho = cms.FileInPath("RecoEgamma/PhotonIdentification/data/Spring16/effAreaPhotons_cone03_pfPhotons_90percentBased.txt"),
78  )
79 
80 seedGainPho = cms.EDProducer("PhotonSeedGainProducer", src = cms.InputTag("slimmedPhotons"))
81 
82 import RecoEgamma.EgammaTools.calibratedEgammas_cff
83 calibratedPatPhotons102Xv1 = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatPhotons.clone(
84  produceCalibratedObjs = False,
85  correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2018_Step2Closure_CoarseEtaR9Gain_v2")
86 )
87 
88 calibratedPatPhotons94Xv1 = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatPhotons.clone(
89  produceCalibratedObjs = False,
90  correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_17Nov2017_v1_ele_unc")
91 )
92 
93 calibratedPatPhotons80XLegacy = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatPhotons.clone(
94  produceCalibratedObjs = False,
95  correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Legacy2016_07Aug2017_FineEtaR9_v3_ele_unc"),
96 )
97 
98 slimmedPhotonsWithUserData = cms.EDProducer("PATPhotonUserDataEmbedder",
99  src = cms.InputTag("slimmedPhotons"),
100  userFloats = cms.PSet(
101  mvaID = cms.InputTag("photonMVAValueMapProducer:PhotonMVAEstimatorRunIIFall17v2Values"),
102  mvaIDV1 = cms.InputTag("photonMVAValueMapProducer:PhotonMVAEstimatorRunIIFall17v1p1Values"),
103  PFIsoChg = cms.InputTag("isoForPho:PFIsoChg"),
104  PFIsoAll = cms.InputTag("isoForPho:PFIsoAll"),
105  ),
106  userIntFromBools = cms.PSet(
107  cutbasedID_loose = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Fall17-94X-V2-loose"),
108  cutbasedID_medium = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Fall17-94X-V2-medium"),
109  cutbasedID_tight = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Fall17-94X-V2-tight"),
110  mvaID_WP90 = cms.InputTag("egmPhotonIDs:mvaPhoID-RunIIFall17-v2-wp90"),
111  mvaID_WP80 = cms.InputTag("egmPhotonIDs:mvaPhoID-RunIIFall17-v2-wp80"),
112  cutbasedIDV1_loose = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Fall17-94X-V1-loose"),
113  cutbasedIDV1_medium = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Fall17-94X-V1-medium"),
114  cutbasedIDV1_tight = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Fall17-94X-V1-tight"),
115  mvaIDV1_WP90 = cms.InputTag("egmPhotonIDs:mvaPhoID-RunIIFall17-v1p1-wp90"),
116  mvaIDV1_WP80 = cms.InputTag("egmPhotonIDs:mvaPhoID-RunIIFall17-v1p1-wp80"),
117  ),
118  userInts = cms.PSet(
119  VIDNestedWPBitmap = cms.InputTag("bitmapVIDForPho"),
120  seedGain = cms.InputTag("seedGainPho"),
121  ),
122 )
123 run2_miniAOD_80XLegacy.toModify(slimmedPhotonsWithUserData.userFloats,
124  mvaID = cms.InputTag("photonMVAValueMapProducer:PhotonMVAEstimatorRun2Spring16NonTrigV1Values"),
125  mvaIDV1 = None,
126 )
127 run2_miniAOD_80XLegacy.toModify(slimmedPhotonsWithUserData.userIntFromBools,
128  cutbasedID_loose = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Spring16-V2p2-loose"),
129  cutbasedID_medium = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Spring16-V2p2-medium"),
130  cutbasedID_tight = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Spring16-V2p2-tight"),
131  mvaID_WP90 = cms.InputTag("egmPhotonIDs:mvaPhoID-Spring16-nonTrig-V1-wp90"),
132  mvaID_WP80 = cms.InputTag("egmPhotonIDs:mvaPhoID-Spring16-nonTrig-V1-wp80"),
133  cutbasedIDV1_loose = None,
134  cutbasedIDV1_medium = None,
135  cutbasedIDV1_tight = None,
136  mvaIDV1_WP90 = None,
137  mvaIDV1_WP80 = None,
138 )
139 run2_nanoAOD_94X2016.toModify(slimmedPhotonsWithUserData.userFloats,
140  mvaID = None,
141  mvaIDV1 = None,
142 )
143 run2_nanoAOD_94X2016.toModify(slimmedPhotonsWithUserData.userIntFromBools,
144  cutbasedID_loose = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Spring16-V2p2-loose"),
145  cutbasedID_medium = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Spring16-V2p2-medium"),
146  cutbasedID_tight = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Spring16-V2p2-tight"),
147  mvaID_WP90 = None,
148  mvaID_WP80 = None,
149  cutbasedIDV1_loose = None,
150  cutbasedIDV1_medium = None,
151  cutbasedIDV1_tight = None,
152  mvaIDV1_WP90 = None,
153  mvaIDV1_WP80 = None,
154 )
155 
156 run2_miniAOD_80XLegacy.toModify(slimmedPhotonsWithUserData.userFloats,
157  ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotons80XLegacy","ecalEnergyErrPostCorr"),
158  ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotons80XLegacy","ecalEnergyPreCorr"),
159  ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotons80XLegacy","ecalEnergyPostCorr"),
160 )
161 run2_nanoAOD_94XMiniAODv1.toModify(slimmedPhotonsWithUserData.userFloats,
162  ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotons94Xv1","ecalEnergyErrPostCorr"),
163  ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotons94Xv1","ecalEnergyPreCorr"),
164  ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotons94Xv1","ecalEnergyPostCorr"),
165 )
166 run2_nanoAOD_102Xv1.toModify(slimmedPhotonsWithUserData.userFloats,
167  ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotons102Xv1","ecalEnergyErrPostCorr"),
168  ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotons102Xv1","ecalEnergyPreCorr"),
169  ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotons102Xv1","ecalEnergyPostCorr"),
170 )
171 
172 finalPhotons = cms.EDFilter("PATPhotonRefSelector",
173  src = cms.InputTag("slimmedPhotonsWithUserData"),
174  cut = cms.string("pt > 5 ")
175 )
176 
177 photonTable = cms.EDProducer("SimpleCandidateFlatTableProducer",
178  src = cms.InputTag("linkedObjects","photons"),
179  cut = cms.string(""), #we should not filter on cross linked collections
180  name= cms.string("Photon"),
181  doc = cms.string("slimmedPhotons after basic selection (" + finalPhotons.cut.value()+")"),
182  singleton = cms.bool(False), # the number of entries is variable
183  extension = cms.bool(False), # this is the main table for the photons
184  variables = cms.PSet(CandVars,
185  jetIdx = Var("?hasUserCand('jet')?userCand('jet').key():-1", int, doc="index of the associated jet (-1 if none)"),
186  electronIdx = Var("?hasUserCand('electron')?userCand('electron').key():-1", int, doc="index of the associated electron (-1 if none)"),
187  energyErr = Var("getCorrectedEnergyError('regression2')",float,doc="energy error of the cluster from regression",precision=6),
188  r9 = Var("full5x5_r9()",float,doc="R9 of the supercluster, calculated with full 5x5 region",precision=10),
189  sieie = Var("full5x5_sigmaIetaIeta()",float,doc="sigma_IetaIeta of the supercluster, calculated with full 5x5 region",precision=10),
190  cutBasedBitmap = Var("userInt('cutbasedID_loose')+2*userInt('cutbasedID_medium')+4*userInt('cutbasedID_tight')",int,doc="cut-based ID bitmap, 2^(0:loose, 1:medium, 2:tight)"),
191  cutBasedV1Bitmap = Var("userInt('cutbasedIDV1_loose')+2*userInt('cutbasedIDV1_medium')+4*userInt('cutbasedIDV1_tight')",int,doc="cut-based ID bitmap, Fall17 V1, 2^(0:loose, 1:medium, 2:tight)"),
192  vidNestedWPBitmap = Var("userInt('VIDNestedWPBitmap')",int,doc=_bitmapVIDForPho_docstring),
193  electronVeto = Var("passElectronVeto()",bool,doc="pass electron veto"),
194  pixelSeed = Var("hasPixelSeed()",bool,doc="has pixel seed"),
195  mvaID = Var("userFloat('mvaID')",float,doc="MVA ID score",precision=10),
196  mvaIDV1 = Var("userFloat('mvaIDV1')",float,doc="MVA ID score, Fall17 V1p1",precision=10),
197  mvaID_WP90 = Var("userInt('mvaID_WP90')",bool,doc="MVA ID WP90"),
198  mvaID_WP80 = Var("userInt('mvaID_WP80')",bool,doc="MVA ID WP80"),
199  pfRelIso03_chg = Var("userFloat('PFIsoChg')/pt",float,doc="PF relative isolation dR=0.3, charged component (with rho*EA PU corrections)"),
200  pfRelIso03_all = Var("userFloat('PFIsoAll')/pt",float,doc="PF relative isolation dR=0.3, total (with rho*EA PU corrections)"),
201  hoe = Var("hadronicOverEm()",float,doc="H over E",precision=8),
202  isScEtaEB = Var("abs(superCluster().eta()) < 1.4442",bool,doc="is supercluster eta within barrel acceptance"),
203  isScEtaEE = Var("abs(superCluster().eta()) > 1.566 && abs(superCluster().eta()) < 2.5",bool,doc="is supercluster eta within endcap acceptance"),
204  seedGain = Var("userInt('seedGain')","uint8",doc="Gain of the seed crystal"),
205  )
206 )
207 
208 #these eras have the energy correction in the mini
209 for modifier in run2_nanoAOD_94XMiniAODv2, run2_nanoAOD_94X2016:
210  modifier.toModify(photonTable.variables,
211  pt = Var("pt*userFloat('ecalEnergyPostCorr')/userFloat('ecalEnergyPreCorr')", float, precision=-1, doc="p_{T}"),
212  energyErr = Var("userFloat('ecalEnergyErrPostCorr')",float,doc="energy error of the cluster from regression",precision=6),
213  eCorr = Var("userFloat('ecalEnergyPostCorr')/userFloat('ecalEnergyPreCorr')",float,doc="ratio of the calibrated energy/miniaod energy"),
214  )
215 
216 #these eras need to make the energy correction, hence the "New"
217 for modifier in run2_nanoAOD_94XMiniAODv1, run2_miniAOD_80XLegacy, run2_nanoAOD_102Xv1:
218  modifier.toModify(photonTable.variables,
219  pt = Var("pt*userFloat('ecalEnergyPostCorrNew')/userFloat('ecalEnergyPreCorrNew')", float, precision=-1, doc="p_{T}"),
220  energyErr = Var("userFloat('ecalEnergyErrPostCorrNew')",float,doc="energy error of the cluster from regression",precision=6),
221  eCorr = Var("userFloat('ecalEnergyPostCorrNew')/userFloat('ecalEnergyPreCorrNew')",float,doc="ratio of the calibrated energy/miniaod energy"),
222  )
223 
224 
225 run2_nanoAOD_94X2016.toModify(photonTable.variables,
226  cutBasedBitmap = None,
227  cutBasedV1Bitmap = None,
228  cutBased = Var("userInt('cutbasedID_loose')+userInt('cutbasedID_medium')+userInt('cutbasedID_tight')",int,doc="cut-based Spring16-V2p2 ID (0:fail, 1::loose, 2:medium, 3:tight)"),
229  cutBased17Bitmap = Var("photonID('cutBasedPhotonID-Fall17-94X-V1-loose')+2*photonID('cutBasedPhotonID-Fall17-94X-V1-medium')+4*photonID('cutBasedPhotonID-Fall17-94X-V1-tight')",int,doc="cut-based Fall17-94X-V1 ID bitmap, 2^(0:loose, 1:medium, 2:tight)"),
230  mvaID = Var("userFloat('PhotonMVAEstimatorRun2Spring16NonTrigV1Values')",float,doc="MVA Spring16NonTrigV1 ID score",precision=10),
231  mvaIDV1 = None,
232  mvaID17 = Var("userFloat('PhotonMVAEstimatorRunIIFall17v1p1Values')",float,doc="MVA Fall17v1p1 ID score",precision=10),
233  mvaID_WP90 = Var("photonID('mvaPhoID-Spring16-nonTrig-V1-wp80')",bool,doc="MVA Spring16NonTrigV1 ID WP90"),
234  mvaID_WP80 = Var("photonID('mvaPhoID-Spring16-nonTrig-V1-wp90')",bool,doc="MVA Spring16NonTrigV1 ID WP80"),
235  mvaID17_WP90 = Var("photonID('mvaPhoID-RunIIFall17-v1p1-wp90')",bool,doc="MVA Fall17v1p1 ID WP90"),
236  mvaID17_WP80 = Var("photonID('mvaPhoID-RunIIFall17-v1p1-wp80')",bool,doc="MVA Fall17v1p1 ID WP80"),
237 )
238 run2_miniAOD_80XLegacy.toModify(photonTable.variables,
239  cutBasedBitmap = None,
240  cutBasedV1Bitmap = None,
241  mvaIDV1 = None,
242  cutBased = Var("userInt('cutbasedID_loose')+userInt('cutbasedID_medium')+userInt('cutbasedID_tight')",int,doc="cut-based ID (0:fail, 1::loose, 2:medium, 3:tight)"),
243 )
244 
245 
246 photonsMCMatchForTable = cms.EDProducer("MCMatcher", # cut on deltaR, deltaPt/Pt; pick best by deltaR
247  src = photonTable.src, # final reco collection
248  matched = cms.InputTag("finalGenParticles"), # final mc-truth particle collection
249  mcPdgId = cms.vint32(11,22), # one or more PDG ID (11 = el, 22 = pho); absolute values (see below)
250  checkCharge = cms.bool(False), # True = require RECO and MC objects to have the same charge
251  mcStatus = cms.vint32(1), # PYTHIA status code (1 = stable, 2 = shower, 3 = hard scattering)
252  maxDeltaR = cms.double(0.3), # Minimum deltaR for the match
253  maxDPtRel = cms.double(0.5), # Minimum deltaPt/Pt for the match
254  resolveAmbiguities = cms.bool(True), # Forbid two RECO objects to match to the same GEN object
255  resolveByMatchQuality = cms.bool(True), # False = just match input in order; True = pick lowest deltaR pair first
256 )
257 
258 photonMCTable = cms.EDProducer("CandMCMatchTableProducer",
259  src = photonTable.src,
260  mcMap = cms.InputTag("photonsMCMatchForTable"),
261  objName = photonTable.name,
262  objType = photonTable.name, #cms.string("Photon"),
263  branchName = cms.string("genPart"),
264  docString = cms.string("MC matching to status==1 photons or electrons"),
265 )
266 
267 from RecoEgamma.EgammaTools.egammaObjectModificationsInMiniAOD_cff import egamma8XObjectUpdateModifier,egamma9X105XUpdateModifier,prependEgamma8XObjectUpdateModifier
268 #we have dataformat changes to 106X so to read older releases we use egamma updators
269 slimmedPhotonsTo106X = cms.EDProducer("ModifiedPhotonProducer",
270  src = cms.InputTag("slimmedPhotons"),
271  modifierConfig = cms.PSet( modifications = cms.VPSet(egamma9X105XUpdateModifier) )
272 )
273 #might as well fix 80X while we're at it although the differences are not so relavent for nano
274 run2_miniAOD_80XLegacy.toModify( slimmedPhotonsTo106X.modifierConfig.modifications, prependEgamma8XObjectUpdateModifier )
275 
276 for modifier in run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016 ,run2_nanoAOD_102Xv1:
277  modifier.toModify(bitmapVIDForPho, src = "slimmedPhotonsTo106X")
278  modifier.toModify(isoForPho, src = "slimmedPhotonsTo106X")
279  modifier.toModify(calibratedPatPhotons102Xv1, src = "slimmedPhotonsTo106X")
280  modifier.toModify(calibratedPatPhotons94Xv1, src = "slimmedPhotonsTo106X")
281  modifier.toModify(calibratedPatPhotons80XLegacy, src = "slimmedPhotonsTo106X")
282  modifier.toModify(slimmedPhotonsWithUserData, src = "slimmedPhotonsTo106X")
283  modifier.toModify(seedGainPho, src = "slimmedPhotonsTo106X")
284 
285 
286 
287 photonSequence = cms.Sequence(bitmapVIDForPho + isoForPho + seedGainPho + slimmedPhotonsWithUserData + finalPhotons)
288 
289 photonTables = cms.Sequence ( photonTable)
290 photonMC = cms.Sequence(photonsMCMatchForTable + photonMCTable)
291 
292 from RecoEgamma.EgammaIsolationAlgos.egmPhotonIsolationMiniAOD_cff import egmPhotonIsolation
293 from RecoEgamma.PhotonIdentification.photonIDValueMapProducer_cff import photonIDValueMapProducer
294 _updatePhoTo106X_sequence =cms.Sequence(egmPhotonIsolation + photonIDValueMapProducer + slimmedPhotonsTo106X)
295 _withUpdatePho_sequence = photonSequence.copy()
296 _withUpdatePho_sequence.insert(0,_updatePhoTo106X_sequence)
297 for modifier in run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016 ,run2_nanoAOD_102Xv1:
298  modifier.toReplaceWith(photonSequence, _withUpdatePho_sequence)
299 
300 _with80XScale_sequence = _withUpdatePho_sequence.copy()
301 _with80XScale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotons80XLegacy + slimmedPhotonsWithUserData)
302 run2_miniAOD_80XLegacy.toReplaceWith(photonSequence, _with80XScale_sequence)
303 
304 _with94Xv1Scale_sequence = _withUpdatePho_sequence.copy()
305 _with94Xv1Scale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotons94Xv1 + slimmedPhotonsWithUserData)
306 run2_nanoAOD_94XMiniAODv1.toReplaceWith(photonSequence, _with94Xv1Scale_sequence)
307 
308 _with102Xv1Scale_sequence = photonSequence.copy()
309 _with102Xv1Scale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotons102Xv1 + slimmedPhotonsWithUserData)
310 run2_nanoAOD_102Xv1.toReplaceWith(photonSequence, _with102Xv1Scale_sequence)
def Var(expr, valtype, compression=None, doc=None, mcOnly=False, precision=-1)
Definition: common_cff.py:20
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
dbl *** dir
Definition: mlp_gen.cc:35
double split
Definition: MVATrainer.cc:139