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'] in ['ion', 'ionp']:
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", "NNJVT_TrkAugV1"] # (NN)JVT not strictly needed for no-calib jets
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", "NNJVT_TrkAugV1"]
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  jra_extra_outputs = []
343  if jetDef.context=='ftf':
344  pj_name = pj_alg.OutputContainer.Path
345  # Make sure that the jets are constructed with the ghost tracks included
346  merge_alg = CompFactory.PseudoJetMerger(
347  f"PJMerger_{pj_name}MergedWithGhostTracks",
348  InputPJContainers=[pj_name, trackColls["GhostTracks"]],
349  OutputContainer=f"{pj_name}MergedWithGhostTracks",
350  )
351  jra_extra_outputs.append(('xAOD::JetContainer',f"{jetDef.fullname()}.{trackColls['GhostTracksLabel']}"))
352  # update the pseudo jet name
353  acc.addEventAlgo(merge_alg,seqname)
354 
355  acc.addEventAlgo(
356  JetRecConfig.getJetRecAlg(
357  jetDef,
358  JetOnlineMon.getMonTool_TrigJetAlgorithm(flags, f"HLTJets/{jetDef.fullname()}/"),
359  extraOutputs=jra_extra_outputs,
360  ),
361  seqname,
362  )
363 
364  return acc
365 
366 
367 def StandardJetRecoCfg(flags, **jetDefDict):
368  """ Full reconstruction for 'simple' (ungroomed, not reclustered) jets
369 
370  First the uncalibrated jets are built, then (if necessary) the calibrated jets are provided
371  as a shallow copy.
372  """
373 
374  jetsOut, jetDef = jetDefDict['calib']
375  jetDefStr = jetDefToString(jetDef)
376  seqname = "JetRecSeq_"+jetDefStr
377 
378  # If we want the final jets to be uncalibrated, we can shortcut
379  if jetDef.suffix[1:] == "nojcalib":
380 
381  reco_acc = ComponentAccumulator()
382  reco_acc.addSequence(parOR(seqname))
383 
384  buildJets, buildJetDef = jetDefDict['build']
385  build_acc = StandardJetBuildCfg(
386  flags, buildJetDef
387  )
388  reco_acc.merge(build_acc, seqname)
389 
390  # This view alg is added here rather than in StandardJetBuildCfg
391  # so that we are able to get the no-calib collection name later
392  jetViewAcc = JetViewAlgCfg(
393  flags,
394  jetDef,
395  jetPtMinGeV=JET_DEFAULT_VIEW_PT_MIN_GEV, # GeV converted internally
396  )
397  reco_acc.merge(jetViewAcc, seqname)
398  return reco_acc
399 
400  # From here we run the full reconstruction including calibration
401  acc = ComponentAccumulator()
402  acc.addSequence(parOR(seqname))
403 
404  buildJets, buildJetDef = jetDefDict['build']
405  build_acc = StandardJetBuildCfg(
406  flags, buildJetDef
407  )
408  acc.merge(build_acc,seqname)
409 
410  jetsNoCalib, jetDefNoCalib = jetDefDict['nojcalib']
411  jetViewAcc = JetViewAlgCfg(
412  flags,
413  jetDefNoCalib,
414  jetPtMinGeV=JET_DEFAULT_VIEW_PT_MIN_GEV, # GeV converted internally
415  )
416  acc.merge(jetViewAcc, seqname)
417 
418  # Figure out what jet calibration we are running
419  jetCalib = jetCalibFromJetDef(jetDef)
420 
421  if "sub" in jetCalib:
422  # Add the event shape alg for area subtraction
423  # WARNING : offline jets use the parameter voronoiRf = 0.9 ! we might want to harmonize this.
424  eventShapeAlg = JetInputConfig.buildEventShapeAlg(jetDef, getHLTPrefix(),voronoiRf = 1.0 )
425  acc.addEventAlgo(eventShapeAlg,seqname)
426 
427  decorList = getDecorList(jetDef)
428 
429  # This algorithm creates the shallow copy and then also applies the calibration as part of the
430  # modifiers list
431  acc.addEventAlgo(
432  JetRecConfig.getJetCopyAlg(
433  jetsin=jetDefNoCalib.fullname(),
434  jetsoutdef=jetDef,
435  decorations=decorList,
437  f"HLTJets/{jetDef.fullname()}/"
438  ),
439  ),
440  seqname
441  )
442 
443  # Check conditions before adding fast flavour tag info to jets
444  recoAlg, constitType, _ = jetDefStr.split('_',2)
445  jetCalibDef = getJetCalibDefaultString(recoAlg,f'{constitType}',jetDef.context)
446  if(
447  flags.Trigger.Jet.fastbtagPFlow
448  and jetDef.basename=="AntiKt4EMPFlow" # Tag only standard small-R PFlow jets
449  and jetCalib==jetCalibDef # exclude jets with not full default calibration
450  ):
451 
452  ftagseqname = f"jetFtagSeq_{jetDef.context}"
453  acc.addSequence(parOR(ftagseqname),seqname)
454  # getjet context for our trkopt
455  trackingColls = jetDef._contextDic
456 
457  # Adding Fast flavor tagging
458  acc.merge(
460  flags,
461  jetDef.fullname(),
462  trackingColls["Vertices"],
463  trackingColls["Tracks"],
464  isPFlow=True,
465  ),
466  ftagseqname
467  )
468 
469 
470  # Filter the copied jet container so we only output jets with pt above jetPtMin
471  jetViewAcc = JetViewAlgCfg(
472  flags,
473  jetDef,
474  jetPtMinGeV=JET_DEFAULT_VIEW_PT_MIN_GEV, # GeV converted internally
475  )
476  acc.merge(jetViewAcc,seqname)
477 
478  return acc
479 
480 
481 def GroomedJetRecoCfg(flags, **jetDefDict):
482  """ Create the groomed jets
483 
484  First the ungroomed jets are created (using the standard configuration), then the grooming
485  is applied
486  """
487  # Grooming needs the ungroomed jets to be built first,
488  # so call the basic jet reco seq, then add a grooming alg
489 
490  ungroomedJetsName, ungroomedDef = jetDefDict['ungroomed']
491  groomedJets, groomDef = jetDefDict['groomed']
492  jetDefStr = jetDefToString(groomDef)
493 
494  seqname = "JetGroomSeq_"+jetDefStr
495  acc = ComponentAccumulator()
496  acc.addSequence(parOR(seqname),primary=True)
497 
498  build_acc = StandardJetBuildCfg(
499  flags,
500  ungroomedDef,
501  )
502  acc.merge(build_acc,seqname)
503 
504  groom_extraoutputs = []
505  if '_ftf' in jetDefStr:
506  groom_extraoutputs.append(('xAOD::JetContainer',f'{groomedJets}.GhostTrack_ftf'))
507  acc.addEventAlgo( JetRecConfig.getJetRecGroomAlg(
508  groomDef,
509  monTool=JetOnlineMon.getMonTool_TrigJetAlgorithm(flags, f"HLTJets/{groomedJets}/"),
510  extraOutputs=groom_extraoutputs,
511  ),
512  seqname
513  )
514 
515  recoAlg, constitType, _ = jetDefStr.split('_',2)
516  jetCalib = jetCalibFromJetDef(groomDef)
517  jetCalibDef = getJetCalibDefaultString(recoAlg,f'{constitType}',groomDef.context)
518  if(
519  groomDef.basename.startswith("AntiKt10EMPFlowCSSKSoftDrop") # Tag only groomed large-R PFlow jets
520  and jetCalib==jetCalibDef # exclude jets with not full default calibration
521  ):
522  trackingColls = groomDef._contextDic
523 
524  ftagseqname = f"jetFtagSeq_{groomDef.context}_largeR"
525  acc.addSequence(parOR(ftagseqname), seqname)
526 
527  acc.merge(
529  flags,
530  groomDef.fullname(),
531  trackingColls['Vertices'],
532  trackingColls['Tracks'],
533  isPFlow=True,
534  doXbbtagLargeRJet = True,
535  ),
536  ftagseqname
537  )
538  return acc
539 
540 
541 def ReclusteredJetRecoCfg(flags, **jetDefDict):
542  """ Create the reclustered jets
543 
544  First the input jets are built, then the reclustering algorithm is run
545  """
546 
547  basicJetsFiltered, basicJetDef = jetDefDict['calib']
548  rcJets, rcJetDef = jetDefDict['reclustered']
549  jetDefStr = jetDefToString(rcJetDef)
550 
551  seqname = "JetReclusterSeq_"+jetDefStr
552  acc = ComponentAccumulator()
553  acc.addSequence(parOR(seqname),primary=True)
554 
555  basic_acc = StandardJetRecoCfg(
556  flags, **jetDefDict
557  )
558  acc.merge(basic_acc,seqname)
559 
560  rcJetPtMin = 15 # 15 GeV minimum pt for jets to be reclustered
561  jetViewAcc = JetViewAlgCfg(
562  flags,
563  basicJetDef,
564  jetPtMinGeV=rcJetPtMin, # GeV converted internally
565  )
566  acc.merge(jetViewAcc,seqname)
567 
568  rcConstitPJAlg = JetRecConfig.getConstitPJGAlg(rcJetDef.inputdef, suffix=jetDefStr)
569  acc.addEventAlgo(rcConstitPJAlg,seqname)
570 
571  acc.addEventAlgo(
572  JetRecConfig.getJetRecAlg(
573  rcJetDef,
575  f"HLTJets/{rcJetDef.fullname()}/"
576  )
577  ),
578  seqname
579  )
580 
581  return acc
582 
583 
584 @AccumulatorCache
585 def FastFtaggedJetCopyAlgCfg(flags,jetDef):
586 
587  acc = ComponentAccumulator()
588  jetsIn = jetDef.fullname()
589  # Don't need modifiers here, we won't rerun calibration
590  ftagJetDef = jetDef.clone(suffix=jetDef.suffix+'_fastftag',modifiers=[],lock=True)
591  decorList = getDecorList(jetDef)
592  acc.addEventAlgo(JetRecConfig.getJetCopyAlg(jetsin=jetsIn,jetsoutdef=ftagJetDef,decorations=decorList))
593  return acc, ftagJetDef
594 
595 # Returns reco sequence for RoI-based track reco + low-level flavour tagging
596 @AccumulatorCache
597 def JetRoITrackJetTagSequenceCfg(flags,jetsIn,trkopt,RoIs):
598 
599  acc = ComponentAccumulator()
600 
601  trkcfg, trkmap = JetRoITrackingCfg(flags, jetsIn, trkopt, RoIs)
602  acc.merge( trkcfg )
603 
604  acc.merge(
606  flags,
607  jetsIn,
608  trkmap['Vertices'],
609  trkmap['Tracks']
610  )
611  )
612 
613  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:597
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:499
python.HLT.Bjet.BjetFlavourTaggingConfig.fastFlavourTaggingCfg
def fastFlavourTaggingCfg(flags, inputJets, inputVertex, inputTracks, isPFlow=False, fastDipsMinimumPt=None, doXbbtagLargeRJet=False)
Definition: BjetFlavourTaggingConfig.py:56
OnlineMon.getMonTool_Algorithm
def getMonTool_Algorithm(flags, path)
Definition: OnlineMon.py:3
python.HLT.Jet.JetRecoCommon.getDecorList
def getDecorList(jetDef)
Definition: JetRecoCommon.py:375
python.HLT.Jet.JetRecoSequencesConfig.ReclusteredJetRecoCfg
def ReclusteredJetRecoCfg(flags, **jetDefDict)
Definition: JetRecoSequencesConfig.py:541
python.HLT.Jet.JetRecoCommon.jetCalibFromJetDef
def jetCalibFromJetDef(jetDef)
Definition: JetRecoCommon.py:153
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:182
python.HLT.Jet.JetRecoCommon.getClustersKey
def getClustersKey(recoDict)
Definition: JetRecoCommon.py:251
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:300
python.HLT.Jet.JetRecoCommon.cloneAndUpdateJetRecoDict
def cloneAndUpdateJetRecoDict(jetRecoDict, **kwargs)
Definition: JetRecoCommon.py:106
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:118
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:494
python.HLT.Jet.JetRecoCommon.getJetCalibDefaultString
def getJetCalibDefaultString(recoAlg, constitType, trkopt)
Definition: JetRecoCommon.py:264
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:585
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:247
python.HLT.Jet.JetRecoCommon.isPFlow
def isPFlow(jetRecoDict)
Definition: JetRecoCommon.py:186
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:167
python.HLT.Jet.JetRecoCommon.defineJets
def defineJets(flags, jetRecoDict, clustersKey=None, prefix='', suffix='', pfoPrefix=None)
Definition: JetRecoCommon.py:472
python.HLT.Jet.JetRecoSequencesConfig.StandardJetRecoCfg
def StandardJetRecoCfg(flags, **jetDefDict)
Definition: JetRecoSequencesConfig.py:367
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:481
python.HLT.Jet.JetRecoCommon.getFilterCut
def getFilterCut(recoAlg)
Definition: JetRecoCommon.py:193
Trk::split
@ split
Definition: LayerMaterialProperties.h:38
python.HLT.Jet.JetRecoCommon.doTracking
def doTracking(jetRecoDict)
Definition: JetRecoCommon.py:179
python.HLT.Jet.JetRecoSequencesConfig.ReclusteredJetRecoDataDeps
def ReclusteredJetRecoDataDeps(flags, **jetRecoDict)
Definition: JetRecoSequencesConfig.py:192
PFCfg
Definition: PFCfg.py:1