CMS 3D CMS Logo

jetCollectionTools.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
4 
5 from Configuration.Eras.Modifier_run2_jme_2016_cff import run2_jme_2016
6 from Configuration.Eras.Modifier_run2_jme_2017_cff import run2_jme_2017
7 
8 from RecoJets.JetProducers.PFJetParameters_cfi import PFJetParameters
9 from RecoJets.JetProducers.GenJetParameters_cfi import GenJetParameters
10 from RecoJets.JetProducers.AnomalousCellParameters_cfi import AnomalousCellParameters
11 from RecoJets.JetProducers.ak4GenJets_cfi import ak4GenJets
12 from RecoJets.JetProducers.ak4PFJets_cfi import ak4PFJetsCS
13 
14 from PhysicsTools.PatAlgos.tools.jetTools import addJetCollection, supportedJetAlgos
16 from PhysicsTools.PatAlgos.recoLayer0.jetCorrFactors_cfi import patJetCorrFactors
17 
18 from PhysicsTools.PatAlgos.mcMatchLayer0.jetFlavourId_cff import patJetFlavourAssociation
19 
20 from CommonTools.PileupAlgos.Puppi_cff import puppi
21 from CommonTools.PileupAlgos.softKiller_cfi import softKiller
22 
23 import re
24 
25 #============================================
26 #
27 # GenJetInfo
28 #
29 #============================================
31  """
32  Class to hold information of a genjet collection
33  """
34  def __init__(self, jet, inputCollection):
35  self.jet = jet
36  self.jetLower = jet.lower()
37  self.jetUpper = jet.upper()
38  self.jetTagName = self.jetUpper
39  self.inputCollection = inputCollection
40  algoKey = 'algo'
41  sizeKey = 'size'
42  recoKey = 'reco'
43  jetRegex = re.compile(
44  r'(?P<{algo}>({algoList}))(?P<{size}>[0-9]+)gen'.format(
45  algo = algoKey,
46  algoList = '|'.join(supportedJetAlgos.keys()),
47  size = sizeKey,
48  )
49  )
50  jetMatch = jetRegex.match(jet.lower())
51  if not jetMatch:
52  raise RuntimeError('Invalid jet collection: %s' % jet)
53  self.jetAlgo = jetMatch.group(algoKey)
54  self.jetSize = jetMatch.group(sizeKey)
55  self.jetSizeNr = float(self.jetSize) / 10.
56 
57 #============================================
58 #
59 # GenJetAdder
60 #
61 #============================================
63  """
64  Tool to schedule modules for building a genjet collection with input MiniAODs
65  """
66  def __init__(self):
67  self.prerequisites = []
68  self.main = []
69  self.gpLabel = "prunedGenParticles"
70 
71  def getSequence(self, proc):
72  tasks = self.prerequisites + self.main
73 
74  resultSequence = cms.Sequence()
75  for idx, task in enumerate(tasks):
76  if idx == 0:
77  resultSequence = cms.Sequence(getattr(proc, task))
78  else:
79  resultSequence.insert(idx, getattr(proc, task))
80  return resultSequence
81 
83  proc,
84  jet,
85  inputCollection = "",
86  genName = "",
87  minPt = 5.,
88  ):
89  print("jetCollectionTools::GenJetAdder::addGenJetCollection: Adding Gen Jet Collection: {}".format(jet))
90  currentTasks = []
91 
92  #
93  # Decide which jet collection we're dealing with
94  #
95  jetLower = jet.lower()
96  jetUpper = jet.upper()
97  tagName = jetUpper
98  genJetInfo = GenJetInfo(jet,inputCollection)
99 
100  #=======================================================
101  #
102  # If gen jet collection in MiniAOD is not
103  # specified, build the genjet collection.
104  #
105  #========================================================
106  if not inputCollection:
107  print("jetCollectionTools::GenJetAdder::addGenJetCollection: inputCollection not specified. Building genjet collection now")
108  #
109  # Setup GenParticles
110  #
111  packedGenPartNoNu = "packedGenParticlesForJetsNoNu"
112  if packedGenPartNoNu not in self.prerequisites:
113  setattr(proc, packedGenPartNoNu, cms.EDFilter("CandPtrSelector",
114  src = cms.InputTag("packedGenParticles"),
115  cut = cms.string("abs(pdgId) != 12 && abs(pdgId) != 14 && abs(pdgId) != 16"),
116  )
117  )
118  self.prerequisites.append(packedGenPartNoNu)
119  #
120  # Create the GenJet collection
121  #
122  genJetsCollection = "{}{}{}".format(genJetInfo.jetAlgo.upper(), genJetInfo.jetSize, 'GenJetsNoNu')
123  setattr(proc, genJetsCollection, ak4GenJets.clone(
124  src = packedGenPartNoNu,
125  jetAlgorithm = cms.string(supportedJetAlgos[genJetInfo.jetAlgo]),
126  rParam = cms.double(genJetInfo.jetSizeNr),
127  )
128  )
129  self.prerequisites.append(genJetsCollection)
130  #
131  # GenJet Flavour Labelling
132  #
133  genFlavour = "{}Flavour".format(genJetInfo.jetTagName)
134  setattr(proc, genFlavour, patJetFlavourAssociation.clone(
135  jets = cms.InputTag(genJetsCollection),
136  jetAlgorithm = cms.string(supportedJetAlgos[genJetInfo.jetAlgo]),
137  rParam = cms.double(genJetInfo.jetSizeNr),
138  )
139  )
140 
141  currentTasks.append(genFlavour)
142  self.main.extend(currentTasks)
143 
144  return genJetInfo
145 
146 #============================================
147 #
148 # RecoJetInfo
149 #
150 #============================================
152  """
153  Class to hold information of a recojet collection
154  """
155  def __init__(self, jet, inputCollection):
156  self.jet = jet
157  self.jetLower = jet.lower()
158  self.jetUpper = jet.upper()
159  self.jetTagName = self.jetUpper
160  self.inputCollection = inputCollection
161  algoKey = 'algo'
162  sizeKey = 'size'
163  recoKey = 'reco'
164  puMethodKey = 'puMethod'
165  jetRegex = re.compile(
166  r'(?P<{algo}>({algoList}))(?P<{size}>[0-9]+)(?P<{reco}>(pf|calo))(?P<{puMethod}>(chs|puppi|sk|cs|))'.format(
167  algo = algoKey,
168  algoList = '|'.join(supportedJetAlgos.keys()),
169  size = sizeKey,
170  reco = recoKey,
171  puMethod = puMethodKey,
172  )
173  )
174  jetMatch = jetRegex.match(jet.lower())
175  if not jetMatch:
176  raise RuntimeError('Invalid jet collection: %s' % jet)
177 
178  self.jetAlgo = jetMatch.group(algoKey)
179  self.jetSize = jetMatch.group(sizeKey)
180  self.jetReco = jetMatch.group(recoKey)
181  self.jetPUMethod = jetMatch.group(puMethodKey)
182 
183  self.jetSizeNr = float(self.jetSize) / 10.
184 
185  self.doCalo = self.jetReco == "calo"
186  self.doCS = self.jetPUMethod == "cs"
187  self.skipUserData = self.doCalo or (self.jetPUMethod in [ "puppi", "sk" ] and inputCollection == "")
188 
189  self.jetCorrPayload = "{}{}{}".format(
190  self.jetAlgo.upper(), self.jetSize, "Calo" if self.doCalo else self.jetReco.upper()
191  )
192  if self.jetPUMethod == "puppi":
193  self.jetCorrPayload += "Puppi"
194  elif self.jetPUMethod in [ "cs", "sk" ]:
195  self.jetCorrPayload += "chs"
196  else:
197  self.jetCorrPayload += self.jetPUMethod.lower()
198 
199 #============================================
200 #
201 # RecoJetAdder
202 #
203 #============================================
205  """
206  Tool to schedule modules for building a recojet collection with input MiniAODs
207  """
208  def __init__(self,runOnMC=True):
209  self.prerequisites = []
210  self.main = []
211  self.bTagDiscriminators = ["None"] # No b-tagging by default
212  self.JETCorrLevels = [ "L1FastJet", "L2Relative", "L3Absolute" ]
213  self.pfLabel = "packedPFCandidates"
214  self.pvLabel = "offlineSlimmedPrimaryVertices"
215  self.svLabel = "slimmedSecondaryVertices"
216  self.muLabel = "slimmedMuons"
217  self.elLabel = "slimmedElectrons"
218  self.gpLabel = "prunedGenParticles"
219  self.runOnMC = runOnMC
220 
221  def getSequence(self, proc):
222  tasks = self.prerequisites + self.main
223 
224  resultSequence = cms.Sequence()
225  for idx, task in enumerate(tasks):
226  if idx == 0:
227  resultSequence = cms.Sequence(getattr(proc, task))
228  else:
229  resultSequence.insert(idx, getattr(proc, task))
230  return resultSequence
231 
233  proc,
234  jet,
235  inputCollection = "",
236  genJetsCollection = "",
237  minPt = 5.,
238  bTagDiscriminators = None,
239  JETCorrLevels = None,
240  ):
241  print("jetCollectionTools::RecoJetAdder::addRecoJetCollection: Adding Reco Jet Collection: {}".format(jet))
242 
243  currentTasks = []
244 
245  if inputCollection and inputCollection not in [
246  "slimmedJets", "slimmedJetsAK8", "slimmedJetsPuppi", "slimmedCaloJets",
247  ]:
248  raise RuntimeError("Invalid input collection: %s" % inputCollection)
249 
250  if bTagDiscriminators is None:
251  bTagDiscriminators = self.bTagDiscriminators
252 
253  if JETCorrLevels is None:
254  JETCorrLevels = self.JETCorrLevels
255 
256  #
257  # Decide which jet collection we're dealing with
258  #
259  recoJetInfo = RecoJetInfo(jet, inputCollection)
260  jetLower = recoJetInfo.jetLower
261  jetUpper = recoJetInfo.jetUpper
262  tagName = recoJetInfo.jetTagName
263 
264  if inputCollection == "slimmedJets":
265  assert(jetLower == "ak4pfchs")
266  elif inputCollection == "slimmedJetsAK8":
267  assert(jetLower == "ak8pfpuppi")
268  elif inputCollection == "slimmedJetsPuppi":
269  assert(jetLower == "ak4pfpuppi")
270  elif inputCollection == "slimmedCaloJets":
271  assert(jetLower == "ak4calo")
272 
273  #=======================================================
274  #
275  # If jet collection in MiniAOD is not
276  # specified, build the jet collection.
277  #
278  #========================================================
279  if not inputCollection or recoJetInfo.doCalo:
280  print("jetCollectionTools::RecoJetAdder::addRecoJetCollection: inputCollection not specified. Building recojet collection now")
281 
282  #=======================================================
283  #
284  # Prepare the inputs to jet clustering
285  #
286  #========================================================
287  #
288  # Set up PF candidates
289  #
290  pfCand = self.pfLabel
291  #
292  # Setup PU method for PF candidates
293  #
294  if recoJetInfo.jetPUMethod not in [ "", "cs" ]:
295  pfCand += recoJetInfo.jetPUMethod
296  #
297  #
298  #
299  if pfCand not in self.prerequisites:
300  #
301  # Skip if no PU Method or CS specified
302  #
303  if recoJetInfo.jetPUMethod in [ "", "cs" ]:
304  pass
305  #
306  # CHS
307  #
308  elif recoJetInfo.jetPUMethod == "chs":
309  setattr(proc, pfCand,
310  cms.EDFilter("CandPtrSelector",
311  src = cms.InputTag(self.pfLabel),
312  cut = cms.string("fromPV"),
313  )
314  )
315  self.prerequisites.append(pfCand)
316  #
317  # PUPPI
318  #
319  elif recoJetInfo.jetPUMethod == "puppi":
320  setattr(proc, pfCand,
321  puppi.clone(
322  candName = self.pfLabel,
323  vertexName = self.pvLabel,
324  )
325  )
326  self.prerequisites.append(pfCand)
327  #
328  # Softkiller
329  #
330  elif recoJetInfo.jetPUMethod == "sk":
331  setattr(proc, pfCand,
332  softKiller.clone(
333  PFCandidates = self.pfLabel,
334  rParam = recoJetInfo.jetSizeNr,
335  )
336  )
337  self.prerequisites.append(pfCand)
338  else:
339  raise RuntimeError("Currently unsupported PU method: '%s'" % recoJetInfo.jetPUMethod)
340 
341  #============================================
342  #
343  # Create the recojet collection
344  #
345  #============================================
346  if not recoJetInfo.doCalo:
347  jetCollection = '{}Collection'.format(tagName)
348 
349  if jetCollection in self.main:
350  raise ValueError("Step '%s' already implemented" % jetCollection)
351 
352  setattr(proc, jetCollection, ak4PFJetsCS.clone(
353  src = pfCand,
354  doAreaFastjet = True,
355  jetPtMin = minPt,
356  jetAlgorithm = supportedJetAlgos[recoJetInfo.jetAlgo],
357  rParam = recoJetInfo.jetSizeNr,
358  useConstituentSubtraction = recoJetInfo.doCS,
359  csRParam = 0.4 if recoJetInfo.doCS else -1.,
360  csRho_EtaMax = PFJetParameters.Rho_EtaMax if recoJetInfo.doCS else -1.,
361  useExplicitGhosts = recoJetInfo.doCS or recoJetInfo.jetPUMethod == "sk",
362  )
363  )
364  if recoJetInfo.jetPUMethod == "puppi":
365  _jets = getattr(proc, jetCollection)
366  _jets.src = self.pfLabel
367  _jets.srcWeights = pfCand
368  _jets.applyWeights = True
369  currentTasks.append(jetCollection)
370  else:
371  jetCollection = inputCollection
372 
373  #
374  # PATify
375  #
376  if recoJetInfo.jetPUMethod == "puppi":
377  jetCorrLabel = "Puppi"
378  elif recoJetInfo.jetPUMethod in [ "cs", "sk" ]:
379  jetCorrLabel = "chs"
380  else:
381  jetCorrLabel = recoJetInfo.jetPUMethod
382 
383  #
384  # Jet correction
385  #
386  jetCorrections = (
387  "{}{}{}{}".format(
388  recoJetInfo.jetAlgo.upper(),
389  recoJetInfo.jetSize,
390  "Calo" if recoJetInfo.doCalo else recoJetInfo.jetReco.upper(),
391  jetCorrLabel
392  ),
393  JETCorrLevels,
394  "None",
395  )
396 
397  addJetCollection(
398  proc,
399  labelName = tagName,
400  jetSource = cms.InputTag(jetCollection),
401  algo = recoJetInfo.jetAlgo,
402  rParam = recoJetInfo.jetSizeNr,
403  pvSource = cms.InputTag(self.pvLabel),
404  pfCandidates = cms.InputTag(self.pfLabel),
405  svSource = cms.InputTag(self.svLabel),
406  muSource = cms.InputTag(self.muLabel),
407  elSource = cms.InputTag(self.elLabel),
408  btagDiscriminators = bTagDiscriminators if not recoJetInfo.doCalo else [ "None" ],
409  jetCorrections = jetCorrections,
410  genJetCollection = cms.InputTag(genJetsCollection),
411  genParticles = cms.InputTag(self.gpLabel),
412  )
413 
414  getJetMCFlavour = not recoJetInfo.doCalo and recoJetInfo.jetPUMethod != "cs"
415 
416  if not self.runOnMC: #Remove modules for Gen-level object matching
417  delattr(proc, 'patJetGenJetMatch{}'.format(tagName))
418  delattr(proc, 'patJetPartonMatch{}'.format(tagName))
419  getJetMCFlavour = False
420 
421  setattr(getattr(proc, "patJets{}".format(tagName)), "getJetMCFlavour", cms.bool(getJetMCFlavour))
422  setattr(getattr(proc, "patJetCorrFactors{}".format(tagName)), "payload", cms.string(recoJetInfo.jetCorrPayload))
423  selJet = "selectedPatJets{}".format(tagName)
424  else:
425  selJet = inputCollection
426 
427  if not recoJetInfo.skipUserData:
428  #
429  #
430  #
431  jercVar = "jercVars{}".format(tagName)
432  if jercVar in self.main:
433  raise ValueError("Step '%s' already implemented" % jercVar)
434  setattr(proc, jercVar, proc.jercVars.clone(srcJet = selJet))
435  currentTasks.append(jercVar)
436  #
437  # JetID Loose
438  #
439  looseJetId = "looseJetId{}".format(tagName)
440  if looseJetId in self.main:
441  raise ValueError("Step '%s' already implemented" % looseJetId)
442  setattr(proc, looseJetId, proc.looseJetId.clone(
443  src = selJet,
444  filterParams=proc.looseJetId.filterParams.clone(
445  version ="WINTER16"
446  ),
447  )
448  )
449  currentTasks.append(looseJetId)
450  #
451  # JetID Tight
452  #
453  tightJetId = "tightJetId{}".format(tagName)
454  if tightJetId in self.main:
455  raise ValueError("Step '%s' already implemented" % tightJetId)
456  setattr(proc, tightJetId, proc.tightJetId.clone(
457  src = selJet,
458  filterParams=proc.tightJetId.filterParams.clone(
459  version = "SUMMER18{}".format("PUPPI" if recoJetInfo.jetPUMethod == "puppi" else "")
460  ),
461  )
462  )
463  tightJetIdObj = getattr(proc, tightJetId)
464  run2_jme_2016.toModify(
465  tightJetIdObj.filterParams,
466  version = "WINTER16"
467  )
468  run2_jme_2017.toModify(
469  tightJetIdObj.filterParams,
470  version = 'WINTER17{}'.format("PUPPI" if recoJetInfo.jetPUMethod == "puppi" else "")
471  )
472  currentTasks.append(tightJetId)
473  #
474  # JetID TightLepVeto
475  #
476  tightJetIdLepVeto = "tightJetIdLepVeto{}".format(tagName)
477  if tightJetIdLepVeto in self.main:
478  raise ValueError("Step '%s' already implemented" % tightJetIdLepVeto)
479  setattr(proc, tightJetIdLepVeto, proc.tightJetIdLepVeto.clone(
480  src = selJet,
481  filterParams=proc.tightJetIdLepVeto.filterParams.clone(
482  version = "SUMMER18{}".format("PUPPI" if recoJetInfo.jetPUMethod == "puppi" else "")
483  ),
484  )
485  )
486  tightJetIdLepVetoObj = getattr(proc, tightJetIdLepVeto)
487  run2_jme_2016.toModify(
488  tightJetIdLepVetoObj.filterParams,
489  version = "WINTER16"
490  )
491  run2_jme_2017.toModify(
492  tightJetIdLepVetoObj.filterParams,
493  version = 'WINTER17{}'.format("PUPPI" if recoJetInfo.jetPUMethod == "puppi" else ""),
494  )
495  currentTasks.append(tightJetIdLepVeto)
496  #
497  #
498  #
499  selectedPatJetsWithUserData = "{}WithUserData".format(selJet)
500  if selectedPatJetsWithUserData in self.main:
501  raise ValueError("Step '%s' already implemented" % selectedPatJetsWithUserData)
502  setattr(proc, selectedPatJetsWithUserData,
503  cms.EDProducer("PATJetUserDataEmbedder",
504  src = cms.InputTag(selJet),
505  userFloats = cms.PSet(
506  chFPV0EF = cms.InputTag("{}:chargedFromPV0EnergyFraction".format(jercVar)),
507  chFPV1EF = cms.InputTag("{}:chargedFromPV1EnergyFraction".format(jercVar)),
508  chFPV2EF = cms.InputTag("{}:chargedFromPV2EnergyFraction".format(jercVar)),
509  chFPV3EF = cms.InputTag("{}:chargedFromPV3EnergyFraction".format(jercVar)),
510  ),
511  userInts = cms.PSet(
512  tightId = cms.InputTag(tightJetId),
513  tightIdLepVeto = cms.InputTag(tightJetIdLepVeto),
514  ),
515  )
516  )
517  selectedPatJetsWithUserDataObj = getattr(proc, selectedPatJetsWithUserData)
518  run2_jme_2016.toModify(selectedPatJetsWithUserDataObj.userInts,
519  looseId = cms.InputTag(looseJetId),
520  )
521  currentTasks.append(selectedPatJetsWithUserData)
522  else:
523  selectedPatJetsWithUserData = "selectedPatJets{}".format(tagName)
524 
525  #
526  # Not sure why we can't re-use patJetCorrFactors* created by addJetCollection()
527  # (even cloning doesn't work) Let's just create our own
528  #
529  jetCorrFactors = "jetCorrFactors{}".format(tagName)
530  if jetCorrFactors in self.main:
531  raise ValueError("Step '%s' already implemented" % jetCorrFactors)
532 
533  setattr(proc, jetCorrFactors, patJetCorrFactors.clone(
534  src = selectedPatJetsWithUserData,
535  levels = JETCorrLevels,
536  primaryVertices = self.pvLabel,
537  payload = recoJetInfo.jetCorrPayload,
538  rho = "fixedGridRhoFastjetAll{}".format("Calo" if recoJetInfo.doCalo else ""),
539  )
540  )
541  currentTasks.append(jetCorrFactors)
542 
543  updatedJets = "updatedJets{}".format(tagName)
544  if updatedJets in self.main:
545  raise ValueError("Step '%s' already implemented" % updatedJets)
546 
547  setattr(proc, updatedJets, updatedPatJets.clone(
548  addBTagInfo = False,
549  jetSource = selectedPatJetsWithUserData,
550  jetCorrFactorsSource = [jetCorrFactors],
551  )
552  )
553  currentTasks.append(updatedJets)
554 
555  self.main.extend(currentTasks)
556 
557  return recoJetInfo
AnomalousCellParameters_cfi
jetCollectionTools.RecoJetInfo.jetLower
jetLower
Definition: jetCollectionTools.py:157
resolutioncreator_cfi.object
object
Definition: resolutioncreator_cfi.py:4
dqmMemoryStats.float
float
Definition: dqmMemoryStats.py:127
jetCollectionTools.GenJetInfo.jetSizeNr
jetSizeNr
Definition: jetCollectionTools.py:55
jetCollectionTools.RecoJetAdder.muLabel
muLabel
Definition: jetCollectionTools.py:216
jetCollectionTools.GenJetAdder.addGenJetCollection
def addGenJetCollection(self, proc, jet, inputCollection="", genName="", minPt=5.)
Definition: jetCollectionTools.py:82
jetCollectionTools.GenJetInfo.jetTagName
jetTagName
Definition: jetCollectionTools.py:38
Puppi_cff
jetCollectionTools.RecoJetInfo.jetPUMethod
jetPUMethod
Definition: jetCollectionTools.py:181
join
static std::string join(char **cmd)
Definition: RemoteFile.cc:17
cms::cuda::assert
assert(be >=bs)
jetCollectionTools.RecoJetInfo.jetUpper
jetUpper
Definition: jetCollectionTools.py:158
jetCollectionTools.GenJetInfo.jetSize
jetSize
Definition: jetCollectionTools.py:54
jetCollectionTools.RecoJetAdder.getSequence
def getSequence(self, proc)
Definition: jetCollectionTools.py:221
jetCollectionTools.RecoJetAdder.main
main
Definition: jetCollectionTools.py:210
jetCollectionTools.GenJetInfo
Definition: jetCollectionTools.py:30
jetCollectionTools.GenJetAdder
Definition: jetCollectionTools.py:62
jetCollectionTools.RecoJetInfo.jetCorrPayload
jetCorrPayload
Definition: jetCollectionTools.py:189
jetCorrFactors_cfi
jetCollectionTools.RecoJetInfo.doCalo
doCalo
Definition: jetCollectionTools.py:185
jetCollectionTools.GenJetAdder.prerequisites
prerequisites
Definition: jetCollectionTools.py:67
jetCollectionTools.RecoJetAdder
Definition: jetCollectionTools.py:204
jetCollectionTools.RecoJetInfo.jetSize
jetSize
Definition: jetCollectionTools.py:179
jetTools
jetCollectionTools.RecoJetInfo.jetTagName
jetTagName
Definition: jetCollectionTools.py:159
jetFlavourId_cff
jetCollectionTools.GenJetInfo.jet
jet
Definition: jetCollectionTools.py:35
ak4PFJets_cfi
jetCollectionTools.GenJetAdder.__init__
def __init__(self)
Definition: jetCollectionTools.py:66
jetCollectionTools.GenJetInfo.jetLower
jetLower
Definition: jetCollectionTools.py:36
jetCollectionTools.RecoJetInfo.jetReco
jetReco
Definition: jetCollectionTools.py:180
jetCollectionTools.GenJetInfo.inputCollection
inputCollection
Definition: jetCollectionTools.py:39
jetCollectionTools.RecoJetAdder.__init__
def __init__(self, runOnMC=True)
Definition: jetCollectionTools.py:208
mps_setup.append
append
Definition: mps_setup.py:85
jetCollectionTools.RecoJetAdder.prerequisites
prerequisites
Definition: jetCollectionTools.py:209
jetCollectionTools.GenJetInfo.__init__
def __init__(self, jet, inputCollection)
Definition: jetCollectionTools.py:34
jetCollectionTools.RecoJetInfo.jetSizeNr
jetSizeNr
Definition: jetCollectionTools.py:183
jetCollectionTools.RecoJetAdder.gpLabel
gpLabel
Definition: jetCollectionTools.py:218
jetCollectionTools.RecoJetAdder.pfLabel
pfLabel
Definition: jetCollectionTools.py:213
jetCollectionTools.GenJetInfo.jetUpper
jetUpper
Definition: jetCollectionTools.py:37
jetCollectionTools.RecoJetInfo.inputCollection
inputCollection
Definition: jetCollectionTools.py:160
jetCollectionTools.GenJetAdder.gpLabel
gpLabel
Definition: jetCollectionTools.py:69
edm::print
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66
jetCollectionTools.RecoJetAdder.pvLabel
pvLabel
Definition: jetCollectionTools.py:214
jetUpdater_cfi
jetCollectionTools.RecoJetInfo
Definition: jetCollectionTools.py:151
jetCollectionTools.RecoJetInfo.skipUserData
skipUserData
Definition: jetCollectionTools.py:187
format
pileupCalc.upper
upper
Definition: pileupCalc.py:214
jetCollectionTools.RecoJetInfo.jetAlgo
jetAlgo
Definition: jetCollectionTools.py:178
jetCollectionTools.GenJetAdder.getSequence
def getSequence(self, proc)
Definition: jetCollectionTools.py:71
jetCollectionTools.RecoJetAdder.bTagDiscriminators
bTagDiscriminators
Definition: jetCollectionTools.py:211
jetCollectionTools.RecoJetAdder.JETCorrLevels
JETCorrLevels
Definition: jetCollectionTools.py:212
jetCollectionTools.RecoJetAdder.runOnMC
runOnMC
Definition: jetCollectionTools.py:219
jetCollectionTools.RecoJetAdder.addRecoJetCollection
def addRecoJetCollection(self, proc, jet, inputCollection="", genJetsCollection="", minPt=5., bTagDiscriminators=None, JETCorrLevels=None)
Definition: jetCollectionTools.py:232
jetCollectionTools.GenJetAdder.main
main
Definition: jetCollectionTools.py:68
jetCollectionTools.RecoJetInfo.__init__
def __init__(self, jet, inputCollection)
Definition: jetCollectionTools.py:155
jetCollectionTools.RecoJetAdder.elLabel
elLabel
Definition: jetCollectionTools.py:217
jetCollectionTools.RecoJetInfo.doCS
doCS
Definition: jetCollectionTools.py:186
PFJetParameters_cfi
GenJetParameters_cfi
jetCollectionTools.RecoJetInfo.jet
jet
Definition: jetCollectionTools.py:156
jetCollectionTools.RecoJetAdder.svLabel
svLabel
Definition: jetCollectionTools.py:215
ConfigToolBase
jetCollectionTools.GenJetInfo.jetAlgo
jetAlgo
Definition: jetCollectionTools.py:53