ATLAS Offline Software
JetRecoSequencesConfig.py
Go to the documentation of this file.
1 #
2 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 #
4 
5 """ ComponentAccumulator equivalents for the functions in JetRecoSequences """
6 
7 from .JetRecoCommon import (
8  interpretRecoAlg,
9  cloneAndUpdateJetRecoDict,
10  defineJets,
11  defineGroomedJets,
12  defineReclusteredJets,
13  getFilterCut,
14  getCalibMods,
15  getDecorList,
16  getHLTPrefix,
17  getClustersKey,
18  isPFlow,
19  doTracking,
20  doFSTracking,
21  getJetCalibDefaultString,
22  jetDefToString,
23  jetCalibFromJetDef,
24 )
25 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
26 from AthenaConfiguration.ComponentFactory import CompFactory
27 from AthenaCommon.CFElements import parOR
28 from ..CommonSequences.FullScanDefs import fs_cells
29 from ..Bjet.BjetFlavourTaggingConfig import fastFlavourTaggingCfg
30 from .JetTrackingConfig import JetRoITrackingCfg
31 from .JetHIConfig import HeavyIonJetRecoDataDeps
32 
33 from JetRecConfig import JetRecConfig
34 from JetRecConfig import JetInputConfig
35 from JetRecConfig.DependencyHelper import solveDependencies, solveGroomingDependencies
36 
37 from JetRecTools import OnlineMon
38 from JetRec import JetOnlineMon
39 
40 from EventShapeTools.EventDensityConfig import getEventShapeName
41 
42 from AthenaConfiguration.AccumulatorCache import AccumulatorCache
43 
44 from typing import Final
45 
46 # Default threshold for filtering jets for input to hypo
47 JET_DEFAULT_VIEW_PT_MIN_GEV : Final[int] = 10
48 
49 def formatFilteredJetsName(jetsIn, jetPtMinGeV):
50  return f"{jetsIn}_pt{int(jetPtMinGeV)}"
51 
52 
56 def JetRecoDataDeps(flags, **jetRecoDict):
57 
58  jetalg, jetradius, extra = interpretRecoAlg(jetRecoDict["recoAlg"])
59 
60  if jetRecoDict['ionopt']=='ion':
61  jetDefDict = HeavyIonJetRecoDataDeps(
62  flags, **jetRecoDict
63  )
64  elif extra == "r":
65  jetDefDict = ReclusteredJetRecoDataDeps(
66  flags, **jetRecoDict
67  )
68  jetDefDict['final'] = jetDefDict['reclustered']
69  elif extra in ["t", "sd"]:
70  jetDefDict = GroomedJetRecoDataDeps(
71  flags, **jetRecoDict
72  )
73  jetDefDict['final'] = jetDefDict['groomed']
74  else:
75  jetDefDict = StandardJetRecoDataDeps(
76  flags, **jetRecoDict
77  )
78  jetDefDict['final'] = jetDefDict['calib']
79 
80  # Consistency check that we generated what we intended to generate
81  gen_jetDefStr = jetDefToString(jetDefDict['final'][1])
82  assert jetRecoDict['jetDefStr'] == gen_jetDefStr, (
83  f"Expected jetDefStr {jetRecoDict['jetDefStr']} from reco dict, generated {gen_jetDefStr}"
84  )
85 
86  return jetDefDict
87 
88 
89 def StandardJetBuildDataDeps(flags, **jetRecoDict):
90  """Jet clustering step -- generally only called through StandardJetRecoDataDeps"""
91  use_FS_tracking = doFSTracking(jetRecoDict)
92  trkopt = jetRecoDict['trkopt']
93  clustersKey = getClustersKey(jetRecoDict)
94 
95  is_pflow = isPFlow(jetRecoDict)
96  if is_pflow:
97  jetDef = defineJets(
98  flags,
99  jetRecoDict,
100  pfoPrefix=f"HLT_{trkopt}",
101  prefix=getHLTPrefix(),
102  )
103  # Record which clusters should be used to form PFOs
104  # Purely for trigger usage
105  jetDef.inputdef.prereqs = [f'extinput:{clustersKey}']
106  else:
107  jetDef = defineJets(
108  flags,
109  jetRecoDict,
110  clustersKey=clustersKey,
111  prefix=getHLTPrefix(),
112  )
113  # Sort and filter
114  jetDef.modifiers = [
115  "Sort",
116  "Filter:{}".format(getFilterCut(jetRecoDict["recoAlg"])),
117  "ConstitFourMom_copy",
118  ]
119  if jetRecoDict["recoAlg"] == "a4":
120  jetDef.modifiers += ["CaloEnergies"] # needed for GSC
121  if is_pflow:
122  jetDef.modifiers += ["CaloEnergiesClus"] # Needed for FlowElement GSC
123  if use_FS_tracking:
124  jetDef.modifiers += ["TrackMoments", "JVF", "JVT"]
125 
126  pj_name = JetRecConfig.getPJContName(jetDef.inputdef)
127  if use_FS_tracking:
128  pj_name = f"{pj_name}MergedWithGhostTracks"
129  jetDef._internalAtt["finalPJContainer"] = pj_name
130 
131  jetsOut = jetDef.fullname()
132  jetDef = solveDependencies(jetDef,flags)
133  jetDef.lock()
134 
135  return {'build': (jetsOut, jetDef)}
136 
137 
138 def StandardJetRecoDataDeps(flags, **jetRecoDict):
139  """Jet clustering + calibration (via shallow copy)"""
140  if jetRecoDict["jetCalib"] == "nojcalib":
141  # If we don't calibrate, we need to return the clustered jets with filter
142  jetDefDict = StandardJetBuildDataDeps(
143  flags, **jetRecoDict
144  )
145  jetsNoCalib, jetDef = jetDefDict['build']
146  jetDef.lock()
147  jetsNoCalibFiltered = formatFilteredJetsName(jetsNoCalib, jetPtMinGeV=JET_DEFAULT_VIEW_PT_MIN_GEV)
148  # Inelegantly repeat the values because the requested calibration is null
149  jetDefDict.update({'nojcalib': (jetsNoCalibFiltered, jetDef), 'calib': (jetsNoCalibFiltered, jetDef)})
150  return jetDefDict
151  else:
152  # If we do calibrate, then the process is to copy+calibrate, and return those jets
153  jrdNoJCalib = cloneAndUpdateJetRecoDict(
154  jetRecoDict,
155  jetCalib="nojcalib"
156  )
157  jetDefDict = StandardJetBuildDataDeps(
158  flags, **jrdNoJCalib
159  )
160  jetsNoCalib, jetDefNoCalib = jetDefDict['build']
161  jetsViewNoCalib = formatFilteredJetsName(jetsNoCalib, jetPtMinGeV=JET_DEFAULT_VIEW_PT_MIN_GEV)
162 
163  jetDef = jetDefNoCalib.clone()
164  jetDef.suffix = jetDefNoCalib.suffix.replace("nojcalib", jetRecoDict["jetCalib"])
165 
166  if "sub" in jetRecoDict["jetCalib"]:
167  rhoKey = getEventShapeName(jetDef, nameprefix=getHLTPrefix())
168  else:
169  rhoKey = "auto"
170 
171  # If we need JVT rerun the JVT modifier
172  use_FS_tracking = doFSTracking(jetRecoDict)
173  is_pflow = isPFlow(jetRecoDict)
174 
175  jetDef.modifiers = getCalibMods(flags, jetRecoDict, rhoKey)
176  if use_FS_tracking:
177  jetDef.modifiers += ["JVT"]
178 
179  if jetRecoDict["recoAlg"] == "a4":
180  jetDef.modifiers += ["CaloQuality"]
181 
182  if not is_pflow and jetRecoDict["recoAlg"] == "a4":
183  from TriggerMenuMT.HLT.Jet.JetRecoCommon import cleaningDict
184  jetDef.modifiers += [f'Cleaning:{clean_wp}' for _,clean_wp in cleaningDict.items()]
185 
186  jetDef = solveDependencies(jetDef,flags)
187  jetDef.lock()
188  jetsOut = formatFilteredJetsName(jetDef.fullname(),jetPtMinGeV=JET_DEFAULT_VIEW_PT_MIN_GEV)
189  jetDefDict.update({'nojcalib':(jetsViewNoCalib, jetDefNoCalib), 'calib':(jetsOut, jetDef)})
190  return jetDefDict
191 
192 def ReclusteredJetRecoDataDeps(flags, **jetRecoDict):
193  basicJetRecoDict = cloneAndUpdateJetRecoDict(
194  jetRecoDict,
195  # Standard size for reclustered inputs
196  recoAlg = "a4",
197  )
198 
199  jetDefDict = StandardJetRecoDataDeps(
200  flags, **basicJetRecoDict
201  )
202  basicJetsName, basicJetDef = jetDefDict['calib']
203 
204  rcJetPtMinGeV = 15 # 15 GeV minimum pt for jets to be reclustered
205  rcInputJetsName = formatFilteredJetsName(basicJetDef.fullname(), rcJetPtMinGeV)
206  rc_suffix = f"_{jetRecoDict['jetCalib']}" + (f"_{jetRecoDict['trkopt']}" if doTracking(jetRecoDict) else "")
207 
208  rcJetDef = defineReclusteredJets(
209  jetRecoDict,
210  rcInputJetsName,
211  basicJetDef.inputdef.label,
212  getHLTPrefix(),
213  rc_suffix,
214  )
215 
216  rcConstitPJKey = JetRecConfig.getPJContName(rcJetDef.inputdef, suffix=jetRecoDict['jetDefStr'])
217  rcJetDef._internalAtt["finalPJContainer"] = rcConstitPJKey
218  rcJetDef.lock()
219 
220  rcJetsOut = rcJetDef.fullname()
221  jetDefDict['reclustered'] = (rcJetsOut, rcJetDef)
222  return jetDefDict
223 
224 
225 def GroomedJetRecoDataDeps(flags, **jetRecoDict):
226  ungroomedJRD = cloneAndUpdateJetRecoDict(
227  jetRecoDict,
228  # Drop grooming spec
229  recoAlg=jetRecoDict["recoAlg"].rstrip("tsd"),
230  # No need to calibrate
231  jetCalib = "nojcalib",
232  )
233 
234  jetDefDict = StandardJetBuildDataDeps(flags, **ungroomedJRD)
235  ungroomedJetsName, ungroomedDef = jetDefDict['build']
236 
237  groomDef = defineGroomedJets(jetRecoDict, ungroomedDef)
238  groomedJetsName = groomDef.fullname()
239  groomDef.modifiers = getCalibMods(flags,jetRecoDict)
240  groomDef.modifiers += [
241  "Sort",
242  "Filter:{}".format(getFilterCut(jetRecoDict["recoAlg"])),
243  ]
244  groomDef = solveGroomingDependencies(groomDef, flags)
245  groomDef.lock()
246 
247  return {'ungroomed':(ungroomedJetsName, ungroomedDef), 'groomed':(groomedJetsName, groomDef)}
248 
249 
250 
253 @AccumulatorCache
254 def JetRecoCfg(flags, **jetDefDict):
255  """The top-level sequence
256 
257  Forwards arguments to the standard jet reco, grooming or reclustering sequences.
258  """
259 
260  if 'reclustered' in jetDefDict:
261  return ReclusteredJetRecoCfg(
262  flags, **jetDefDict
263  )
264  elif 'groomed' in jetDefDict:
265  return GroomedJetRecoCfg(
266  flags, **jetDefDict
267  )
268  else:
269  return StandardJetRecoCfg(
270  flags, **jetDefDict
271  )
272 
273 
274 # Get a configured JetViewAlg that creates a VIEW_ELEMENTS container of jets above a minimum jet pT
275 # Filtered jets are given to hypo.
276 # jetPtMinGeV is minimum jet pt in GeV for jets to be seen by hypo
277 @AccumulatorCache
278 def JetViewAlgCfg(flags,jetDef,jetPtMinGeV=JET_DEFAULT_VIEW_PT_MIN_GEV):
279 
280  decorList = getDecorList(jetDef)
281  filteredJetsName = f"{jetDef.fullname()}_pt{int(jetPtMinGeV)}"
282  acc = ComponentAccumulator()
283  acc.addEventAlgo(
284  CompFactory.JetViewAlg(
285  "jetview_"+filteredJetsName,
286  InputContainer=jetDef.fullname(),
287  OutputContainer=filteredJetsName,
288  PtMin=jetPtMinGeV*1e3, #MeV
289  DecorDeps=decorList
290  )
291  )
292 
293  return acc
294 
295 
296 @AccumulatorCache
297 def StandardJetBuildCfg(flags, jetDef):
298  """ Standard jet reconstruction, no reclustering or grooming
299 
300  The clusters (and tracks, if necessary) should be built beforehand,
301  but this config will build the PFOs if they are needed.
302 
303  The reconstruction is configured from the input JetDefinition
304  """
305 
306  jetDefStr = jetDefToString(jetDef)
307  trackColls = jetDef._contextDic
308 
309  seqname = "JetBuildSeq_"+jetDefStr
310  acc = ComponentAccumulator()
311  acc.addSequence(parOR(seqname),primary=True)
312 
313  # Add PFlow reconstruction if necessary
314  if 'PFlow' in jetDef.inputdef.label:
315  from eflowRec.PFHLTConfig import PFCfg
316 
317  clustersKey = jetDef.inputdef.prereqs[0].split(':')[1]
318  acc.merge(
319  PFCfg(
320  flags,
321  jetDef.context,
322  clustersin=clustersKey,
323  calclustersin="",
324  tracksin=trackColls["Tracks"],
325  verticesin=trackColls["Vertices"],
326  cellsin=fs_cells,
327  ),
328  seqname
329  )
330 
331  alg = JetRecConfig.getConstitModAlg(
332  jetDef, jetDef.inputdef,
333  monTool=OnlineMon.getMonTool_Algorithm(flags, f"HLTJets/{jetDef.fullname()}/"),
334  )
335  # getConstitModAlg will return None if there's nothing for it to do
336  if alg is not None:
337  acc.addEventAlgo(alg,seqname)
338 
339  pj_alg = JetRecConfig.getConstitPJGAlg(jetDef.inputdef)
340  acc.addEventAlgo(pj_alg,seqname)
341 
342  if jetDef.context=='ftf':
343  pj_name = pj_alg.OutputContainer.Path
344  # Make sure that the jets are constructed with the ghost tracks included
345  merge_alg = CompFactory.PseudoJetMerger(
346  f"PJMerger_{pj_name}MergedWithGhostTracks",
347  InputPJContainers=[pj_name, trackColls["GhostTracks"]],
348  OutputContainer=f"{pj_name}MergedWithGhostTracks",
349  )
350  # update the pseudo jet name
351  acc.addEventAlgo(merge_alg,seqname)
352 
353  acc.addEventAlgo(
354  JetRecConfig.getJetRecAlg(
355  jetDef,JetOnlineMon.getMonTool_TrigJetAlgorithm(flags, f"HLTJets/{jetDef.fullname()}/")
356  ),
357  seqname,
358  )
359 
360  return acc
361 
362 
363 def StandardJetRecoCfg(flags, **jetDefDict):
364  """ Full reconstruction for 'simple' (ungroomed, not reclustered) jets
365 
366  First the uncalibrated jets are built, then (if necessary) the calibrated jets are provided
367  as a shallow copy.
368  """
369 
370  jetsOut, jetDef = jetDefDict['calib']
371  jetDefStr = jetDefToString(jetDef)
372  seqname = "JetRecSeq_"+jetDefStr
373 
374  # If we want the final jets to be uncalibrated, we can shortcut
375  if jetDef.suffix[1:] == "nojcalib":
376 
377  reco_acc = ComponentAccumulator()
378  reco_acc.addSequence(parOR(seqname))
379 
380  buildJets, buildJetDef = jetDefDict['build']
381  build_acc = StandardJetBuildCfg(
382  flags, buildJetDef
383  )
384  reco_acc.merge(build_acc, seqname)
385 
386  # This view alg is added here rather than in StandardJetBuildCfg
387  # so that we are able to get the no-calib collection name later
388  jetViewAcc = JetViewAlgCfg(
389  flags,
390  jetDef,
391  jetPtMinGeV=JET_DEFAULT_VIEW_PT_MIN_GEV, # GeV converted internally
392  )
393  reco_acc.merge(jetViewAcc, seqname)
394  return reco_acc
395 
396  # From here we run the full reconstruction including calibration
397  acc = ComponentAccumulator()
398  acc.addSequence(parOR(seqname))
399 
400  buildJets, buildJetDef = jetDefDict['build']
401  build_acc = StandardJetBuildCfg(
402  flags, buildJetDef
403  )
404  acc.merge(build_acc,seqname)
405 
406  jetsNoCalib, jetDefNoCalib = jetDefDict['nojcalib']
407  jetViewAcc = JetViewAlgCfg(
408  flags,
409  jetDefNoCalib,
410  jetPtMinGeV=JET_DEFAULT_VIEW_PT_MIN_GEV, # GeV converted internally
411  )
412  acc.merge(jetViewAcc, seqname)
413 
414  # Figure out what jet calibration we are running
415  jetCalib = jetCalibFromJetDef(jetDef)
416 
417  if "sub" in jetCalib:
418  # Add the event shape alg for area subtraction
419  # WARNING : offline jets use the parameter voronoiRf = 0.9 ! we might want to harmonize this.
420  eventShapeAlg = JetInputConfig.buildEventShapeAlg(jetDef, getHLTPrefix(),voronoiRf = 1.0 )
421  acc.addEventAlgo(eventShapeAlg,seqname)
422 
423  decorList = getDecorList(jetDef)
424 
425  # This algorithm creates the shallow copy and then also applies the calibration as part of the
426  # modifiers list
427  acc.addEventAlgo(
428  JetRecConfig.getJetCopyAlg(
429  jetsin=jetDefNoCalib.fullname(),
430  jetsoutdef=jetDef,
431  decorations=decorList,
433  f"HLTJets/{jetDef.fullname()}/"
434  ),
435  ),
436  seqname
437  )
438 
439  # Check conditions before adding fast flavour tag info to jets
440  recoAlg, constitType, _ = jetDefStr.split('_',2)
441  jetCalibDef = getJetCalibDefaultString(recoAlg,f'{constitType}',jetDef.context)
442  if(
443  flags.Trigger.Jet.fastbtagPFlow
444  and jetDef.basename=="AntiKt4EMPFlow" # Tag only standard small-R PFlow jets
445  and jetCalib==jetCalibDef # exclude jets with not full default calibration
446  ):
447 
448  ftagseqname = f"jetFtagSeq_{jetDef.context}"
449  acc.addSequence(parOR(ftagseqname),seqname)
450  # getjet context for our trkopt
451  trackingColls = jetDef._contextDic
452 
453  # Adding Fast flavor tagging
454  acc.merge(
456  flags,
457  jetDef.fullname(),
458  trackingColls["Vertices"],
459  trackingColls["Tracks"],
460  isPFlow=True,
461  ),
462  ftagseqname
463  )
464 
465 
466  # Filter the copied jet container so we only output jets with pt above jetPtMin
467  jetViewAcc = JetViewAlgCfg(
468  flags,
469  jetDef,
470  jetPtMinGeV=JET_DEFAULT_VIEW_PT_MIN_GEV, # GeV converted internally
471  )
472  acc.merge(jetViewAcc,seqname)
473 
474  return acc
475 
476 
477 def GroomedJetRecoCfg(flags, **jetDefDict):
478  """ Create the groomed jets
479 
480  First the ungroomed jets are created (using the standard configuration), then the grooming
481  is applied
482  """
483  # Grooming needs the ungroomed jets to be built first,
484  # so call the basic jet reco seq, then add a grooming alg
485 
486  ungroomedJetsName, ungroomedDef = jetDefDict['ungroomed']
487  groomedJets, groomDef = jetDefDict['groomed']
488  jetDefStr = jetDefToString(groomDef)
489 
490  seqname = "JetGroomSeq_"+jetDefStr
491  acc = ComponentAccumulator()
492  acc.addSequence(parOR(seqname),primary=True)
493 
494  build_acc = StandardJetBuildCfg(
495  flags,
496  ungroomedDef,
497  )
498  acc.merge(build_acc,seqname)
499 
500  acc.addEventAlgo( JetRecConfig.getJetRecGroomAlg(
501  groomDef,
502  monTool=JetOnlineMon.getMonTool_TrigJetAlgorithm(flags, f"HLTJets/{groomedJets}/"),
503  ),
504  seqname
505  )
506 
507  recoAlg, constitType, _ = jetDefStr.split('_',2)
508  jetCalib = jetCalibFromJetDef(groomDef)
509  jetCalibDef = getJetCalibDefaultString(recoAlg,f'{constitType}',groomDef.context)
510  if(
511  groomDef.basename.startswith("AntiKt10EMPFlowCSSKSoftDrop") # Tag only groomed large-R PFlow jets
512  and jetCalib==jetCalibDef # exclude jets with not full default calibration
513  ):
514  trackingColls = groomDef._contextDic
515 
516  ftagseqname = f"jetFtagSeq_{groomDef.context}_largeR"
517  acc.addSequence(parOR(ftagseqname), seqname)
518 
519  acc.merge(
521  flags,
522  groomDef.fullname(),
523  trackingColls['Vertices'],
524  trackingColls['Tracks'],
525  isPFlow=True,
526  doXbbtagLargeRJet = True,
527  ),
528  ftagseqname
529  )
530  return acc
531 
532 
533 def ReclusteredJetRecoCfg(flags, **jetDefDict):
534  """ Create the reclustered jets
535 
536  First the input jets are built, then the reclustering algorithm is run
537  """
538 
539  basicJetsFiltered, basicJetDef = jetDefDict['calib']
540  rcJets, rcJetDef = jetDefDict['reclustered']
541  jetDefStr = jetDefToString(rcJetDef)
542 
543  seqname = "JetReclusterSeq_"+jetDefStr
544  acc = ComponentAccumulator()
545  acc.addSequence(parOR(seqname),primary=True)
546 
547  basic_acc = StandardJetRecoCfg(
548  flags, **jetDefDict
549  )
550  acc.merge(basic_acc,seqname)
551 
552  rcJetPtMin = 15 # 15 GeV minimum pt for jets to be reclustered
553  jetViewAcc = JetViewAlgCfg(
554  flags,
555  basicJetDef,
556  jetPtMinGeV=rcJetPtMin, # GeV converted internally
557  )
558  acc.merge(jetViewAcc,seqname)
559 
560  rcConstitPJAlg = JetRecConfig.getConstitPJGAlg(rcJetDef.inputdef, suffix=jetDefStr)
561  acc.addEventAlgo(rcConstitPJAlg,seqname)
562 
563  acc.addEventAlgo(
564  JetRecConfig.getJetRecAlg(
565  rcJetDef,
567  f"HLTJets/{rcJetDef.fullname()}/"
568  )
569  ),
570  seqname
571  )
572 
573  return acc
574 
575 
576 @AccumulatorCache
577 def FastFtaggedJetCopyAlgCfg(flags,jetDef):
578 
579  acc = ComponentAccumulator()
580  jetsIn = jetDef.fullname()
581  # Don't need modifiers here, we won't rerun calibration
582  ftagJetDef = jetDef.clone(suffix=jetDef.suffix+'_fastftag',modifiers=[],lock=True)
583  decorList = getDecorList(jetDef)
584  acc.addEventAlgo(JetRecConfig.getJetCopyAlg(jetsin=jetsIn,jetsoutdef=ftagJetDef,decorations=decorList))
585  return acc, ftagJetDef
586 
587 # Returns reco sequence for RoI-based track reco + low-level flavour tagging
588 @AccumulatorCache
589 def JetRoITrackJetTagSequenceCfg(flags,jetsIn,trkopt,RoIs):
590 
591  acc = ComponentAccumulator()
592 
593  trkcfg, trkmap = JetRoITrackingCfg(flags, jetsIn, trkopt, RoIs)
594  acc.merge( trkcfg )
595 
596  acc.merge(
598  flags,
599  jetsIn,
600  trkmap['Vertices'],
601  trkmap['Tracks']
602  )
603  )
604 
605  return acc
python.HLT.Jet.JetRecoSequencesConfig.formatFilteredJetsName
def formatFilteredJetsName(jetsIn, jetPtMinGeV)
Definition: JetRecoSequencesConfig.py:49
python.HLT.Jet.JetRecoSequencesConfig.JetRoITrackJetTagSequenceCfg
def JetRoITrackJetTagSequenceCfg(flags, jetsIn, trkopt, RoIs)
Definition: JetRecoSequencesConfig.py:589
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
vtune_athena.format
format
Definition: vtune_athena.py:14
python.HLT.Jet.JetRecoCommon.defineGroomedJets
def defineGroomedJets(jetRecoDict, ungroomedDef)
Definition: JetRecoCommon.py:496
python.HLT.Bjet.BjetFlavourTaggingConfig.fastFlavourTaggingCfg
def fastFlavourTaggingCfg(flags, inputJets, inputVertex, inputTracks, isPFlow=False, fastDipsMinimumPt=None, doXbbtagLargeRJet=False)
Definition: BjetFlavourTaggingConfig.py:57
OnlineMon.getMonTool_Algorithm
def getMonTool_Algorithm(flags, path)
Definition: OnlineMon.py:3
python.HLT.Jet.JetRecoCommon.getDecorList
def getDecorList(jetDef)
Definition: JetRecoCommon.py:373
python.HLT.Jet.JetRecoSequencesConfig.ReclusteredJetRecoCfg
def ReclusteredJetRecoCfg(flags, **jetDefDict)
Definition: JetRecoSequencesConfig.py:533
python.HLT.Jet.JetRecoCommon.jetCalibFromJetDef
def jetCalibFromJetDef(jetDef)
Definition: JetRecoCommon.py:151
python.HLT.Jet.JetRecoSequencesConfig.JetRecoCfg
def JetRecoCfg(flags, **jetDefDict)
Configuration of the HLT jet reconstruction Takes as input the dictionaries of JetDefs from the data ...
Definition: JetRecoSequencesConfig.py:254
python.HLT.Jet.JetTrackingConfig.JetRoITrackingCfg
def JetRoITrackingCfg(flags, jetsIn, trkopt, RoIs)
Definition: JetTrackingConfig.py:67
python.HLT.Jet.JetRecoCommon.doFSTracking
def doFSTracking(jetRecoDict)
Definition: JetRecoCommon.py:180
python.HLT.Jet.JetRecoCommon.getClustersKey
def getClustersKey(recoDict)
Definition: JetRecoCommon.py:249
python.HLT.Jet.JetRecoSequencesConfig.JetRecoDataDeps
def JetRecoDataDeps(flags, **jetRecoDict)
Data dependency generation for the stages of jet reconstruction This is used to precompute the collec...
Definition: JetRecoSequencesConfig.py:56
python.HLT.Jet.JetRecoCommon.getCalibMods
def getCalibMods(flags, jetRecoDict, rhoKey="auto")
— Modifier and decoration list getters —
Definition: JetRecoCommon.py:298
python.HLT.Jet.JetRecoCommon.cloneAndUpdateJetRecoDict
def cloneAndUpdateJetRecoDict(jetRecoDict, **kwargs)
Definition: JetRecoCommon.py:105
python.HLT.Jet.JetRecoSequencesConfig.GroomedJetRecoDataDeps
def GroomedJetRecoDataDeps(flags, **jetRecoDict)
Definition: JetRecoSequencesConfig.py:225
JetOnlineMon.getMonTool_TrigJetAlgorithm
def getMonTool_TrigJetAlgorithm(flags, path)
Definition: JetOnlineMon.py:4
EventDensityConfig.getEventShapeName
def getEventShapeName(defOrLabel, nameprefix="", suffix=None, radius=0.4)
Definition: EventDensityConfig.py:7
python.HLT.Jet.JetRecoCommon.jetDefToString
def jetDefToString(jetDef)
— Interpreting JetDefinition —
Definition: JetRecoCommon.py:117
python.HLT.Jet.JetRecoSequencesConfig.StandardJetBuildCfg
def StandardJetBuildCfg(flags, jetDef)
Definition: JetRecoSequencesConfig.py:297
python.HLT.Jet.JetRecoCommon.defineReclusteredJets
def defineReclusteredJets(jetRecoDict, smallRjets, inputlabel, prefix, suffix)
Definition: JetRecoCommon.py:491
python.HLT.Jet.JetRecoCommon.getJetCalibDefaultString
def getJetCalibDefaultString(recoAlg, constitType, trkopt)
Definition: JetRecoCommon.py:262
python.JetAnalysisCommon.parOR
parOR
Definition: JetAnalysisCommon.py:271
python.HLT.Jet.JetRecoSequencesConfig.StandardJetRecoDataDeps
def StandardJetRecoDataDeps(flags, **jetRecoDict)
Definition: JetRecoSequencesConfig.py:138
python.HLT.Jet.JetRecoSequencesConfig.FastFtaggedJetCopyAlgCfg
def FastFtaggedJetCopyAlgCfg(flags, jetDef)
Definition: JetRecoSequencesConfig.py:577
python.DependencyHelper.solveDependencies
def solveDependencies(jetdef0, flags)
Definition: DependencyHelper.py:20
python.HLT.Jet.JetRecoSequencesConfig.StandardJetBuildDataDeps
def StandardJetBuildDataDeps(flags, **jetRecoDict)
Definition: JetRecoSequencesConfig.py:89
python.HLT.Jet.JetRecoSequencesConfig.JetViewAlgCfg
def JetViewAlgCfg(flags, jetDef, jetPtMinGeV=JET_DEFAULT_VIEW_PT_MIN_GEV)
Definition: JetRecoSequencesConfig.py:278
python.HLT.Jet.JetRecoCommon.getHLTPrefix
def getHLTPrefix()
— String getters —
Definition: JetRecoCommon.py:245
python.HLT.Jet.JetRecoCommon.isPFlow
def isPFlow(jetRecoDict)
Definition: JetRecoCommon.py:184
if
if(febId1==febId2)
Definition: LArRodBlockPhysicsV0.cxx:567
python.DependencyHelper.solveGroomingDependencies
def solveGroomingDependencies(groomdef0, flags)
Definition: DependencyHelper.py:64
python.HLT.Jet.JetRecoCommon.interpretRecoAlg
def interpretRecoAlg(recoAlg)
— General helpers —
Definition: JetRecoCommon.py:165
python.HLT.Jet.JetRecoCommon.defineJets
def defineJets(flags, jetRecoDict, clustersKey=None, prefix='', suffix='', pfoPrefix=None)
Definition: JetRecoCommon.py:469
python.HLT.Jet.JetRecoSequencesConfig.StandardJetRecoCfg
def StandardJetRecoCfg(flags, **jetDefDict)
Definition: JetRecoSequencesConfig.py:363
python.HLT.Jet.JetHIConfig.HeavyIonJetRecoDataDeps
def HeavyIonJetRecoDataDeps(flags, **jetRecoDict)
Definition: JetHIConfig.py:21
python.HLT.Jet.JetRecoSequencesConfig.GroomedJetRecoCfg
def GroomedJetRecoCfg(flags, **jetDefDict)
Definition: JetRecoSequencesConfig.py:477
python.HLT.Jet.JetRecoCommon.getFilterCut
def getFilterCut(recoAlg)
Definition: JetRecoCommon.py:191
Trk::split
@ split
Definition: LayerMaterialProperties.h:38
python.HLT.Jet.JetRecoCommon.doTracking
def doTracking(jetRecoDict)
Definition: JetRecoCommon.py:177
python.HLT.Jet.JetRecoSequencesConfig.ReclusteredJetRecoDataDeps
def ReclusteredJetRecoDataDeps(flags, **jetRecoDict)
Definition: JetRecoSequencesConfig.py:192
PFCfg
Definition: PFCfg.py:1