CMS 3D CMS Logo

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 from Configuration.Eras.Modifier_run2_egamma_2017_cff import run2_egamma_2017
12 from Configuration.Eras.Modifier_run2_egamma_2018_cff import run2_egamma_2018
13 
14 photon_id_modules_WorkingPoints_nanoAOD = cms.PSet(
15  modules = cms.vstring(
16  'RecoEgamma.PhotonIdentification.Identification.cutBasedPhotonID_Fall17_94X_V1_TrueVtx_cff',
17  'RecoEgamma.PhotonIdentification.Identification.cutBasedPhotonID_Fall17_94X_V2_cff',
18  'RecoEgamma.PhotonIdentification.Identification.mvaPhotonID_Fall17_94X_V1p1_cff',
19  'RecoEgamma.PhotonIdentification.Identification.mvaPhotonID_Fall17_94X_V2_cff',
20  'RecoEgamma.PhotonIdentification.Identification.cutBasedPhotonID_Spring16_V2p2_cff',
21  'RecoEgamma.PhotonIdentification.Identification.mvaPhotonID_Spring16_nonTrig_V1_cff',
22  ),
23  WorkingPoints = cms.vstring(
24  "egmPhotonIDs:cutBasedPhotonID-Fall17-94X-V2-loose",
25  "egmPhotonIDs:cutBasedPhotonID-Fall17-94X-V2-medium",
26  "egmPhotonIDs:cutBasedPhotonID-Fall17-94X-V2-tight",
27  )
28 )
29 photon_id_modules_WorkingPoints_nanoAOD_Spring16V2p2 = cms.PSet(
30  modules = photon_id_modules_WorkingPoints_nanoAOD.modules,
31  WorkingPoints = cms.vstring(
32  "egmPhotonIDs:cutBasedPhotonID-Spring16-V2p2-loose",
33  "egmPhotonIDs:cutBasedPhotonID-Spring16-V2p2-medium",
34  "egmPhotonIDs:cutBasedPhotonID-Spring16-V2p2-tight",
35  )
36 )
37 
38 def make_bitmapVID_docstring(id_modules_working_points_pset):
39  pset = id_modules_working_points_pset
40 
41  for modname in pset.modules:
42  ids = __import__(modname, globals(), locals(), ['idName','cutFlow'])
43  for name in dir(ids):
44  _id = getattr(ids,name)
45  if hasattr(_id,'idName') and hasattr(_id,'cutFlow'):
46  if (len(pset.WorkingPoints)>0 and _id.idName == pset.WorkingPoints[0].split(':')[-1]):
47  cut_names = ','.join([cut.cutName.value() for cut in _id.cutFlow])
48  n_bits_per_cut = int(ceil(log(len(pset.WorkingPoints)+1,2)))
49  return 'VID compressed bitmap (%s), %d bits per cut'%(cut_names, n_bits_per_cut)
50  raise ValueError("Something is wrong in the photon ID modules parameter set!")
51 
52 bitmapVIDForPho = cms.EDProducer("PhoVIDNestedWPBitmapProducer",
53  src = cms.InputTag("slimmedPhotons"),
54  WorkingPoints = photon_id_modules_WorkingPoints_nanoAOD.WorkingPoints,
55 )
56 
57 bitmapVIDForPhoSpring16V2p2 = cms.EDProducer("PhoVIDNestedWPBitmapProducer",
58  src = cms.InputTag("slimmedPhotons"),
59  WorkingPoints = photon_id_modules_WorkingPoints_nanoAOD_Spring16V2p2.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 
84 calibratedPatPhotonsUL17 = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatPhotons.clone(
85  produceCalibratedObjs = False,
86  correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_24Feb2020_runEtaR9Gain_v2")
87 )
88 
89 calibratedPatPhotonsUL18 = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatPhotons.clone(
90  produceCalibratedObjs = False,
91  correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2018_29Sep2020_RunFineEtaR9Gain")
92 )
93 
94 calibratedPatPhotons102Xv1 = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatPhotons.clone(
95  produceCalibratedObjs = False,
96  correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2018_Step2Closure_CoarseEtaR9Gain_v2")
97 )
98 
99 calibratedPatPhotons94Xv1 = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatPhotons.clone(
100  produceCalibratedObjs = False,
101  correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_17Nov2017_v1_ele_unc")
102 )
103 
104 calibratedPatPhotons94Xv2 = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatPhotons.clone(
105  produceCalibratedObjs = False,
106  correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_17Nov2017_v1_ele_unc")
107 )
108 
109 calibratedPatPhotons80XLegacy = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatPhotons.clone(
110  produceCalibratedObjs = False,
111  correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Legacy2016_07Aug2017_FineEtaR9_v3_ele_unc"),
112 )
113 
114 slimmedPhotonsWithUserData = cms.EDProducer("PATPhotonUserDataEmbedder",
115  src = cms.InputTag("slimmedPhotons"),
116  userFloats = cms.PSet(
117  mvaID = cms.InputTag("photonMVAValueMapProducer:PhotonMVAEstimatorRunIIFall17v2Values"),
118  mvaID_Fall17V1p1 = cms.InputTag("photonMVAValueMapProducer:PhotonMVAEstimatorRunIIFall17v1p1Values"),
119  mvaID_Spring16nonTrigV1 = cms.InputTag("photonMVAValueMapProducer:PhotonMVAEstimatorRun2Spring16NonTrigV1Values"),
120  PFIsoChg = cms.InputTag("isoForPho:PFIsoChg"),
121  PFIsoAll = cms.InputTag("isoForPho:PFIsoAll"),
122  ),
123  userIntFromBools = cms.PSet(
124  cutbasedID_loose = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Fall17-94X-V2-loose"),
125  cutbasedID_medium = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Fall17-94X-V2-medium"),
126  cutbasedID_tight = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Fall17-94X-V2-tight"),
127  mvaID_WP90 = cms.InputTag("egmPhotonIDs:mvaPhoID-RunIIFall17-v2-wp90"),
128  mvaID_WP80 = cms.InputTag("egmPhotonIDs:mvaPhoID-RunIIFall17-v2-wp80"),
129  cutbasedIDV1_loose = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Fall17-94X-V1-loose"),
130  cutbasedIDV1_medium = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Fall17-94X-V1-medium"),
131  cutbasedIDV1_tight = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Fall17-94X-V1-tight"),
132  cutID_Spring16_loose = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Spring16-V2p2-loose"),
133  cutID_Spring16_medium = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Spring16-V2p2-medium"),
134  cutID_Spring16_tight = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Spring16-V2p2-tight"),
135  mvaID_Spring16nonTrigV1_WP90 = cms.InputTag("egmPhotonIDs:mvaPhoID-Spring16-nonTrig-V1-wp90"),
136  mvaID_Spring16nonTrigV1_WP80 = cms.InputTag("egmPhotonIDs:mvaPhoID-Spring16-nonTrig-V1-wp80"),
137  ),
138  userInts = cms.PSet(
139  VIDNestedWPBitmap = cms.InputTag("bitmapVIDForPho"),
140  VIDNestedWPBitmap_Spring16V2p2 = cms.InputTag("bitmapVIDForPhoSpring16V2p2"),
141  seedGain = cms.InputTag("seedGainPho"),
142  ),
143 )
144 
145 run2_egamma_2017.toModify(slimmedPhotonsWithUserData.userFloats,
146  ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotonsUL17","ecalEnergyErrPostCorr"),
147  ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotonsUL17","ecalEnergyPreCorr"),
148  ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotonsUL17","ecalEnergyPostCorr"),
149 )
150 
151 run2_egamma_2018.toModify(slimmedPhotonsWithUserData.userFloats,
152  ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotonsUL18","ecalEnergyErrPostCorr"),
153  ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotonsUL18","ecalEnergyPreCorr"),
154  ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotonsUL18","ecalEnergyPostCorr"),
155 )
156 
157 run2_miniAOD_80XLegacy.toModify(slimmedPhotonsWithUserData.userFloats,
158  ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotons80XLegacy","ecalEnergyErrPostCorr"),
159  ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotons80XLegacy","ecalEnergyPreCorr"),
160  ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotons80XLegacy","ecalEnergyPostCorr"),
161 )
162 run2_nanoAOD_94XMiniAODv1.toModify(slimmedPhotonsWithUserData.userFloats,
163  ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotons94Xv1","ecalEnergyErrPostCorr"),
164  ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotons94Xv1","ecalEnergyPreCorr"),
165  ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotons94Xv1","ecalEnergyPostCorr"),
166 )
167 run2_nanoAOD_94XMiniAODv2.toModify(slimmedPhotonsWithUserData.userFloats,
168  ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotons94Xv2","ecalEnergyErrPostCorr"),
169  ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotons94Xv2","ecalEnergyPreCorr"),
170  ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotons94Xv2","ecalEnergyPostCorr"),
171 )
172 run2_nanoAOD_102Xv1.toModify(slimmedPhotonsWithUserData.userFloats,
173  ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotons102Xv1","ecalEnergyErrPostCorr"),
174  ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotons102Xv1","ecalEnergyPreCorr"),
175  ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotons102Xv1","ecalEnergyPostCorr"),
176 )
177 
178 finalPhotons = cms.EDFilter("PATPhotonRefSelector",
179  src = cms.InputTag("slimmedPhotonsWithUserData"),
180  cut = cms.string("pt > 5 ")
181 )
182 
183 photonTable = cms.EDProducer("SimpleCandidateFlatTableProducer",
184  src = cms.InputTag("linkedObjects","photons"),
185  cut = cms.string(""), #we should not filter on cross linked collections
186  name= cms.string("Photon"),
187  doc = cms.string("slimmedPhotons after basic selection (" + finalPhotons.cut.value()+")"),
188  singleton = cms.bool(False), # the number of entries is variable
189  extension = cms.bool(False), # this is the main table for the photons
190  variables = cms.PSet(CandVars,
191  jetIdx = Var("?hasUserCand('jet')?userCand('jet').key():-1", int, doc="index of the associated jet (-1 if none)"),
192  electronIdx = Var("?hasUserCand('electron')?userCand('electron').key():-1", int, doc="index of the associated electron (-1 if none)"),
193  energyErr = Var("getCorrectedEnergyError('regression2')",float,doc="energy error of the cluster from regression",precision=6),
194  r9 = Var("full5x5_r9()",float,doc="R9 of the supercluster, calculated with full 5x5 region",precision=10),
195  sieie = Var("full5x5_sigmaIetaIeta()",float,doc="sigma_IetaIeta of the supercluster, calculated with full 5x5 region",precision=10),
196  cutBased = Var(
197  "userInt('cutbasedID_loose')+userInt('cutbasedID_medium')+userInt('cutbasedID_tight')",
198  int,
199  doc="cut-based ID bitmap, Fall17V2, (0:fail, 1:loose, 2:medium, 3:tight)"
200  ),
201  cutBased_Fall17V1Bitmap = Var(
202  "userInt('cutbasedIDV1_loose')+2*userInt('cutbasedIDV1_medium')+4*userInt('cutbasedIDV1_tight')",
203  int,
204  doc="cut-based ID bitmap, Fall17V1, 2^(0:loose, 1:medium, 2:tight).",
205  ),
206  vidNestedWPBitmap = Var(
207  "userInt('VIDNestedWPBitmap')",
208  int,
209  doc="Fall17V2 " + make_bitmapVID_docstring(photon_id_modules_WorkingPoints_nanoAOD)
210  ),
211  electronVeto = Var("passElectronVeto()",bool,doc="pass electron veto"),
212  pixelSeed = Var("hasPixelSeed()",bool,doc="has pixel seed"),
213  mvaID = Var("userFloat('mvaID')",float,doc="MVA ID score, Fall17V2",precision=10),
214  mvaID_Fall17V1p1 = Var("userFloat('mvaID_Fall17V1p1')",float,doc="MVA ID score, Fall17V1p1",precision=10),
215  mvaID_WP90 = Var("userInt('mvaID_WP90')",bool,doc="MVA ID WP90, Fall17V2"),
216  mvaID_WP80 = Var("userInt('mvaID_WP80')",bool,doc="MVA ID WP80, Fall17V2"),
217  cutBased_Spring16V2p2 = Var(
218  "userInt('cutID_Spring16_loose')+userInt('cutID_Spring16_medium')+userInt('cutID_Spring16_tight')",
219  int,
220  doc="cut-based ID bitmap, Spring16V2p2, (0:fail, 1:loose, 2:medium, 3:tight)"
221  ),
222  mvaID_Spring16nonTrigV1 = Var(
223  "userFloat('mvaID_Spring16nonTrigV1')",
224  float,
225  doc="MVA ID score, Spring16nonTrigV1",
226  precision=10
227  ),
228  vidNestedWPBitmap_Spring16V2p2 = Var(
229  "userInt('VIDNestedWPBitmap_Spring16V2p2')",
230  int,
231  doc="Spring16V2p2 " + make_bitmapVID_docstring(photon_id_modules_WorkingPoints_nanoAOD_Spring16V2p2)
232  ),
233  pfRelIso03_chg = Var("userFloat('PFIsoChg')/pt",float,doc="PF relative isolation dR=0.3, charged component (with rho*EA PU corrections)"),
234  pfRelIso03_all = Var("userFloat('PFIsoAll')/pt",float,doc="PF relative isolation dR=0.3, total (with rho*EA PU corrections)"),
235  hoe = Var("hadronicOverEm()",float,doc="H over E",precision=8),
236  isScEtaEB = Var("abs(superCluster().eta()) < 1.4442",bool,doc="is supercluster eta within barrel acceptance"),
237  isScEtaEE = Var("abs(superCluster().eta()) > 1.566 && abs(superCluster().eta()) < 2.5",bool,doc="is supercluster eta within endcap acceptance"),
238  seedGain = Var("userInt('seedGain')","uint8",doc="Gain of the seed crystal"),
239  )
240 )
241 
242 #these eras have the energy correction in the mini
243 for modifier in run2_nanoAOD_94XMiniAODv2, run2_nanoAOD_94X2016:
244  modifier.toModify(photonTable.variables,
245  pt = Var("pt*userFloat('ecalEnergyPostCorr')/userFloat('ecalEnergyPreCorr')", float, precision=-1, doc="p_{T}"),
246  energyErr = Var("userFloat('ecalEnergyErrPostCorr')",float,doc="energy error of the cluster from regression",precision=6),
247  eCorr = Var("userFloat('ecalEnergyPostCorr')/userFloat('ecalEnergyPreCorr')",float,doc="ratio of the calibrated energy/miniaod energy"),
248  )
249 
250 #these eras need to make the energy correction, hence the "New"
251 for modifier in run2_egamma_2017,run2_egamma_2018,run2_nanoAOD_94XMiniAODv1, run2_miniAOD_80XLegacy, run2_nanoAOD_102Xv1,run2_nanoAOD_94XMiniAODv2:
252  modifier.toModify(photonTable.variables,
253  pt = Var("pt*userFloat('ecalEnergyPostCorrNew')/userFloat('ecalEnergyPreCorrNew')", float, precision=-1, doc="p_{T}"),
254  energyErr = Var("userFloat('ecalEnergyErrPostCorrNew')",float,doc="energy error of the cluster from regression",precision=6),
255  eCorr = Var("userFloat('ecalEnergyPostCorrNew')/userFloat('ecalEnergyPreCorrNew')",float,doc="ratio of the calibrated energy/miniaod energy"),
256  )
257 
258 # only add the Spring16 IDs for 2016 nano
259 (~(run2_nanoAOD_94X2016 | run2_miniAOD_80XLegacy)).toModify(photonTable.variables,
260  cutBased_Spring16V2p2 = None,
261  mvaID_Spring16nonTrigV1 = None,
262  vidNestedWPBitmap_Spring16V2p2 = None,
263 )
264 
265 
266 photonsMCMatchForTable = cms.EDProducer("MCMatcher", # cut on deltaR, deltaPt/Pt; pick best by deltaR
267  src = photonTable.src, # final reco collection
268  matched = cms.InputTag("finalGenParticles"), # final mc-truth particle collection
269  mcPdgId = cms.vint32(11,22), # one or more PDG ID (11 = el, 22 = pho); absolute values (see below)
270  checkCharge = cms.bool(False), # True = require RECO and MC objects to have the same charge
271  mcStatus = cms.vint32(1), # PYTHIA status code (1 = stable, 2 = shower, 3 = hard scattering)
272  maxDeltaR = cms.double(0.3), # Minimum deltaR for the match
273  maxDPtRel = cms.double(0.5), # Minimum deltaPt/Pt for the match
274  resolveAmbiguities = cms.bool(True), # Forbid two RECO objects to match to the same GEN object
275  resolveByMatchQuality = cms.bool(True), # False = just match input in order; True = pick lowest deltaR pair first
276 )
277 
278 photonMCTable = cms.EDProducer("CandMCMatchTableProducer",
279  src = photonTable.src,
280  mcMap = cms.InputTag("photonsMCMatchForTable"),
281  objName = photonTable.name,
282  objType = photonTable.name, #cms.string("Photon"),
283  branchName = cms.string("genPart"),
284  docString = cms.string("MC matching to status==1 photons or electrons"),
285 )
286 
287 from RecoEgamma.EgammaTools.egammaObjectModificationsInMiniAOD_cff import egamma8XObjectUpdateModifier,egamma9X105XUpdateModifier,prependEgamma8XObjectUpdateModifier
288 #we have dataformat changes to 106X so to read older releases we use egamma updators
289 slimmedPhotonsTo106X = cms.EDProducer("ModifiedPhotonProducer",
290  src = cms.InputTag("slimmedPhotons"),
291  modifierConfig = cms.PSet( modifications = cms.VPSet(egamma9X105XUpdateModifier) )
292 )
293 #might as well fix 80X while we're at it although the differences are not so relavent for nano
294 run2_miniAOD_80XLegacy.toModify( slimmedPhotonsTo106X.modifierConfig.modifications, prependEgamma8XObjectUpdateModifier )
295 
296 for modifier in run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016 ,run2_nanoAOD_102Xv1:
297  modifier.toModify(bitmapVIDForPho, src = "slimmedPhotonsTo106X")
298  modifier.toModify(bitmapVIDForPhoSpring16V2p2, src = "slimmedPhotonsTo106X")
299  modifier.toModify(isoForPho, src = "slimmedPhotonsTo106X")
300  modifier.toModify(calibratedPatPhotons102Xv1, src = "slimmedPhotonsTo106X")
301  modifier.toModify(calibratedPatPhotons94Xv1, src = "slimmedPhotonsTo106X")
302  modifier.toModify(calibratedPatPhotons94Xv2, src = "slimmedPhotonsTo106X")
303  modifier.toModify(calibratedPatPhotons80XLegacy, src = "slimmedPhotonsTo106X")
304  modifier.toModify(slimmedPhotonsWithUserData, src = "slimmedPhotonsTo106X")
305  modifier.toModify(seedGainPho, src = "slimmedPhotonsTo106X")
306 
307 
308 photonSequence = cms.Sequence(
309  bitmapVIDForPho + \
310  bitmapVIDForPhoSpring16V2p2 + \
311  isoForPho + \
312  seedGainPho + \
313  slimmedPhotonsWithUserData + \
314  finalPhotons
315 )
316 
317 photonTables = cms.Sequence ( photonTable)
318 photonMC = cms.Sequence(photonsMCMatchForTable + photonMCTable)
319 
320 from RecoEgamma.EgammaIsolationAlgos.egmPhotonIsolationMiniAOD_cff import egmPhotonIsolation
321 from RecoEgamma.PhotonIdentification.photonIDValueMapProducer_cff import photonIDValueMapProducer
322 ###UL to be done first
323 _withUL17Scale_sequence = photonSequence.copy()
324 _withUL17Scale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotonsUL17 + slimmedPhotonsWithUserData)
325 run2_egamma_2017.toReplaceWith(photonSequence, _withUL17Scale_sequence)
326 
327 _withUL18Scale_sequence = photonSequence.copy()
328 _withUL18Scale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotonsUL18 + slimmedPhotonsWithUserData)
329 run2_egamma_2018.toReplaceWith(photonSequence, _withUL18Scale_sequence)
330 
331 
332 _updatePhoTo106X_sequence =cms.Sequence(egmPhotonIsolation + photonIDValueMapProducer + slimmedPhotonsTo106X)
333 _withUpdatePho_sequence = photonSequence.copy()
334 _withUpdatePho_sequence.insert(0,_updatePhoTo106X_sequence)
335 for modifier in run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016 ,run2_nanoAOD_102Xv1,run2_nanoAOD_94XMiniAODv1:
336  modifier.toReplaceWith(photonSequence, _withUpdatePho_sequence)
337 
338 _with80XScale_sequence = _withUpdatePho_sequence.copy()
339 _with80XScale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotons80XLegacy + slimmedPhotonsWithUserData)
340 run2_miniAOD_80XLegacy.toReplaceWith(photonSequence, _with80XScale_sequence)
341 
342 _with94Xv1Scale_sequence = _withUpdatePho_sequence.copy()
343 _with94Xv1Scale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotons94Xv1 + slimmedPhotonsWithUserData)
344 run2_nanoAOD_94XMiniAODv1.toReplaceWith(photonSequence, _with94Xv1Scale_sequence)
345 
346 _with94Xv2Scale_sequence = _withUpdatePho_sequence.copy()
347 _with94Xv2Scale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotons94Xv2 + slimmedPhotonsWithUserData)
348 run2_nanoAOD_94XMiniAODv2.toReplaceWith(photonSequence, _with94Xv2Scale_sequence)
349 
350 _with102Xv1Scale_sequence = photonSequence.copy()
351 _with102Xv1Scale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotons102Xv1 + slimmedPhotonsWithUserData)
352 run2_nanoAOD_102Xv1.toReplaceWith(photonSequence, _with102Xv1Scale_sequence)
def Var(expr, valtype, compression=None, doc=None, mcOnly=False, precision=-1)
Definition: common_cff.py:20
def make_bitmapVID_docstring(id_modules_working_points_pset)
Definition: photons_cff.py:38
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
dbl *** dir
Definition: mlp_gen.cc:35
double split
Definition: MVATrainer.cc:139