ATLAS Offline Software
EGAM2.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 # ====================================================================
3 # EGAM2.py
4 # This defines DAOD_EGAM2, a skimmed DAOD format for Run 3.
5 # J/psi->ee derivation for calibration
6 # It requires the flag EGAM2 in Derivation_tf.py
7 # ====================================================================
8 
9 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
10 from AthenaConfiguration.ComponentFactory import CompFactory
11 from AthenaConfiguration.Enums import MetadataCategory
12 
13 from AthenaCommon.SystemOfUnits import MeV
14 
15 from DerivationFrameworkEGamma.PhotonsCPDetailedContent import (
16  PhotonsCPDetailedContent,
17 )
18 
19 from DerivationFrameworkEGamma.TriggerContent import (
20  ExtraContainersTrigger,
21  ExtraContainersElectronTrigger,
22  JPsiTriggers,
23 )
24 
25 
27  """Configure the EGAM2 skimming tool"""
28  acc = ComponentAccumulator()
29 
30  # off-line based selection
31  expression_calib = (
32  "(count(EGAM2_DiElectronMass1 > 1.0*GeV && "
33  + "EGAM2_DiElectronMass1 < 5.0*GeV)>=1)"
34  )
35  expression_TP = (
36  "(count(EGAM2_DiElectronMass2 > 1.0*GeV && "
37  + "EGAM2_DiElectronMass2 < 6.0*GeV)>=1)"
38  )
39  expression = expression_calib + " || " + expression_TP
40  print("EGAM2 offline skimming expression: ", expression)
41 
42  EGAM2_OfflineSkimmingTool = CompFactory.DerivationFramework.xAODStringSkimmingTool(
43  name="EGAM2_OfflineSkimmingTool", expression=expression
44  )
45 
46  # trigger-based selection
47  MenuType = None
48  if flags.Trigger.EDMVersion == 2:
49  MenuType = "Run2"
50  elif flags.Trigger.EDMVersion == 3:
51  MenuType = "Run3"
52  else:
53  MenuType = ""
54  triggers = JPsiTriggers[MenuType]
55  print("EGAM2 trigger skimming list (OR): ", triggers)
56 
57  EGAM2_TriggerSkimmingTool = CompFactory.DerivationFramework.TriggerSkimmingTool(
58  name="EGAM2_TriggerSkimmingTool", TriggerListOR=triggers
59  )
60 
61  # do the OR of trigger-based and offline-based selection
62  print("EGAM2 skimming is logical OR of previous selections")
63  EGAM2_SkimmingTool = CompFactory.DerivationFramework.FilterCombinationOR(
64  name="EGAM2_SkimmingTool",
65  FilterList=[EGAM2_OfflineSkimmingTool, EGAM2_TriggerSkimmingTool],
66  )
67 
68  acc.addPublicTool(EGAM2_OfflineSkimmingTool)
69  acc.addPublicTool(EGAM2_TriggerSkimmingTool)
70  acc.addPublicTool(EGAM2_SkimmingTool, primary=True)
71 
72  return acc
73 
74 
76  """Configure the EGAM2 ee invariant mass augmentation tool 1"""
77  acc = ComponentAccumulator()
78 
79  # ====================================================================
80  # 1. di-electron invariant mass for events passing the J/psi->ee
81  # selection for e/gamma calibration
82  #
83  # 2 tight or medium e (depends on Run2 triggers..), pT>4.5 GeV, OS
84  # 1<Mee<5 GeV (applied in skimming step later)
85  # ====================================================================
86  electronPtRequirement = "(Electrons.pt > 4.5*GeV)"
87  electronQualityRequirement = "(Electrons.DFCommonElectronsLHMedium)"
88  requirement_el = (
89  "(" + electronQualityRequirement + "&&" + electronPtRequirement + ")"
90  )
91 
92  acc.setPrivateTools(
93  CompFactory.DerivationFramework.EGInvariantMassTool(
94  name="EGAM2_JpsieeMassTool1",
95  Object1Requirements=requirement_el,
96  Object2Requirements=requirement_el,
97  StoreGateEntryName="EGAM2_DiElectronMass1",
98  Mass1Hypothesis=0.511 * MeV,
99  Mass2Hypothesis=0.511 * MeV,
100  Container1Name="Electrons",
101  Container2Name="Electrons",
102  CheckCharge=True,
103  DoTransverseMass=False,
104  MinDeltaR=0.0,
105  )
106  )
107 
108  return acc
109 
110 
112  """Configure the EGAM2 ee invariant mass augmentation tool 2"""
113  acc = ComponentAccumulator()
114 
115  # ====================================================================
116  # 2. di-electron invariant mass for events passing the J/psi->ee
117  # selection based on Jpsi->e+cluster trigger, for low pT (7-20 GeV)
118  # central photon efficiencies with tag and probe
119  #
120  # Tag: 1 tight e, central, pT>4.5 GeV
121  # Probe: 1 e, central, pT>4.5 GeV
122  # OS+SS
123  # dR>0.15
124  # 1<mee<6 GeV (applied in skimming step later)
125  # ====================================================================
126  requirement_el_tag = " && ".join(
127  ["(Electrons.DFCommonElectronsLHTight)", "(Electrons.pt > 4.5*GeV)"]
128  )
129  requirement_el_probe = "Electrons.pt > 4.5*GeV"
130 
131  acc.setPrivateTools(
132  CompFactory.DerivationFramework.EGInvariantMassTool(
133  name="EGAM2_JpsieeMassTool2",
134  Object1Requirements=requirement_el_tag,
135  Object2Requirements=requirement_el_probe,
136  StoreGateEntryName="EGAM2_DiElectronMass2",
137  Mass1Hypothesis=0.511 * MeV,
138  Mass2Hypothesis=0.511 * MeV,
139  Container1Name="Electrons",
140  Container2Name="Electrons",
141  CheckCharge=False,
142  DoTransverseMass=False,
143  MinDeltaR=0.15,
144  )
145  )
146 
147  return acc
148 
149 
150 def EGAM2KernelCfg(flags, name="EGAM2Kernel", **kwargs):
151  """Configure the derivation framework driving algorithm (kernel)
152  for EGAM2"""
153  acc = ComponentAccumulator()
154 
155  # Common augmentations
156  from DerivationFrameworkPhys.PhysCommonConfig import PhysCommonAugmentationsCfg
157 
158  acc.merge(
160  flags, TriggerListsHelper=kwargs["TriggerListsHelper"]
161  )
162  )
163 
164  # EGAM2 augmentations
165  augmentationTools = []
166 
167  # ====================================================================
168  # ee invariant masses
169  # ====================================================================
170  EGAM2JpsieeMassTool1 = acc.popToolsAndMerge(EGAM2JpsieeMassTool1Cfg(flags))
171  acc.addPublicTool(EGAM2JpsieeMassTool1)
172  augmentationTools.append(EGAM2JpsieeMassTool1)
173 
174  EGAM2JpsieeMassTool2 = acc.popToolsAndMerge(EGAM2JpsieeMassTool2Cfg(flags))
175  acc.addPublicTool(EGAM2JpsieeMassTool2)
176  augmentationTools.append(EGAM2JpsieeMassTool2)
177 
178  # ====================================================================
179  # Gain and cluster energies per layer decoration tool
180  # ====================================================================
181  from DerivationFrameworkCalo.DerivationFrameworkCaloConfig import (
182  CaloDecoratorKernelCfg,
183  )
184 
185  acc.merge(CaloDecoratorKernelCfg(flags))
186 
187  # thinning tools
188  thinningTools = []
189  streamName = kwargs["StreamName"]
190 
191  # Track thinning
192  if flags.Derivation.Egamma.doTrackThinning:
193  from DerivationFrameworkInDet.InDetToolsConfig import (
194  TrackParticleThinningCfg,
195  MuonTrackParticleThinningCfg,
196  TauTrackParticleThinningCfg,
197  )
198 
199  TrackThinningKeepElectronTracks = True
200  TrackThinningKeepPhotonTracks = True
201  TrackThinningKeepAllElectronTracks = False
202  TrackThinningKeepJetTracks = False
203  TrackThinningKeepMuonTracks = False
204  TrackThinningKeepTauTracks = False
205  TrackThinningKeepPVTracks = False
206 
207  # Tracks associated with Electrons
208  if TrackThinningKeepElectronTracks:
209  EGAM2ElectronTPThinningTool = (
210  CompFactory.DerivationFramework.EgammaTrackParticleThinning(
211  name="EGAM2ElectronTPThinningTool",
212  StreamName=streamName,
213  SGKey="Electrons",
214  GSFTrackParticlesKey="GSFTrackParticles",
215  InDetTrackParticlesKey="InDetTrackParticles",
216  SelectionString="Electrons.pt > 0*GeV",
217  BestMatchOnly=True,
218  ConeSize=0.3,
219  )
220  )
221  acc.addPublicTool(EGAM2ElectronTPThinningTool)
222  thinningTools.append(EGAM2ElectronTPThinningTool)
223 
224  # Tracks associated with Electrons (all tracks, large cone, for track
225  # isolation studies of the selected electrons)
226  if TrackThinningKeepAllElectronTracks:
227  EGAM2ElectronTPThinningTool2 = (
228  CompFactory.DerivationFramework.EgammaTrackParticleThinning(
229  name="EGAM2ElectronTPThinningTool2",
230  StreamName=streamName,
231  SGKey="Electrons",
232  GSFTrackParticlesKey="GSFTrackParticles",
233  InDetTrackParticlesKey="InDetTrackParticles",
234  SelectionString="Electrons.pt > 4*GeV",
235  BestMatchOnly=False,
236  ConeSize=0.6,
237  )
238  )
239  acc.addPublicTool(EGAM2ElectronTPThinningTool2)
240  thinningTools.append(EGAM2ElectronTPThinningTool2)
241 
242  # Tracks associated with Photons
243  if TrackThinningKeepPhotonTracks:
244  EGAM2PhotonTPThinningTool = (
245  CompFactory.DerivationFramework.EgammaTrackParticleThinning(
246  name="EGAM2PhotonTPThinningTool",
247  StreamName=streamName,
248  SGKey="Photons",
249  GSFTrackParticlesKey="GSFTrackParticles",
250  InDetTrackParticlesKey="InDetTrackParticles",
251  GSFConversionVerticesKey="GSFConversionVertices",
252  SelectionString="Photons.pt > 0*GeV",
253  BestMatchOnly=True,
254  ConeSize=0.3,
255  )
256  )
257  acc.addPublicTool(EGAM2PhotonTPThinningTool)
258  thinningTools.append(EGAM2PhotonTPThinningTool)
259 
260  # Tracks associated with Jets
261  if TrackThinningKeepJetTracks:
262  EGAM2JetTPThinningTool = (
263  CompFactory.DerivationFramework.JetTrackParticleThinning(
264  name="EGAM2JetTPThinningTool",
265  StreamName=streamName,
266  JetKey="AntiKt4EMPFlowJets",
267  InDetTrackParticlesKey="InDetTrackParticles",
268  )
269  )
270  acc.addPublicTool(EGAM2JetTPThinningTool)
271  thinningTools.append(EGAM2JetTPThinningTool)
272 
273  # Tracks associated with Muons
274  if TrackThinningKeepMuonTracks:
275  EGAM2MuonTPThinningTool = acc.getPrimaryAndMerge(
277  flags,
278  name="EGAM2MuonTPThinningTool",
279  StreamName=streamName,
280  MuonKey="Muons",
281  InDetTrackParticlesKey="InDetTrackParticles",
282  )
283  )
284  thinningTools.append(EGAM2MuonTPThinningTool)
285 
286  # Tracks associated with Taus
287  if TrackThinningKeepTauTracks:
288  EGAM2TauTPThinningTool = acc.getPrimaryAndMerge(
290  flags,
291  name="EGAM2TauTPThinningTool",
292  StreamName=streamName,
293  TauKey="TauJets",
294  ConeSize=0.6,
295  InDetTrackParticlesKey="InDetTrackParticles",
296  DoTauTracksThinning=True,
297  TauTracksKey="TauTracks",
298  )
299  )
300  thinningTools.append(EGAM2TauTPThinningTool)
301 
302  # Tracks from primary vertex
303  thinning_expression = " && ".join(
304  [
305  "(InDetTrackParticles.DFCommonTightPrimary)",
306  "(abs(DFCommonInDetTrackZ0AtPV)*sin(InDetTrackParticles.theta)<3*mm)",
307  "(InDetTrackParticles.pt > 10*GeV)",
308  ]
309  )
310  if TrackThinningKeepPVTracks:
311  EGAM2TPThinningTool = acc.getPrimaryAndMerge(
313  flags,
314  name="EGAM2TPThinningTool",
315  StreamName=streamName,
316  SelectionString=thinning_expression,
317  InDetTrackParticlesKey="InDetTrackParticles",
318  )
319  )
320  thinningTools.append(EGAM2TPThinningTool)
321 
322  # skimming
323  skimmingTool = acc.getPrimaryAndMerge(EGAM2SkimmingToolCfg(flags))
324 
325  # setup the kernel
326  acc.addEventAlgo(
327  CompFactory.DerivationFramework.DerivationKernel(
328  name,
329  SkimmingTools=[skimmingTool],
330  AugmentationTools=augmentationTools,
331  ThinningTools=thinningTools,
332  )
333  )
334 
335  return acc
336 
337 
338 def EGAM2Cfg(flags):
339  acc = ComponentAccumulator()
340 
341  # Get the lists of triggers needed for trigger matching.
342  # This is needed at this scope (for the slimming) and further down
343  # in the config chain for actually configuring the matching, so we create
344  # it here and pass it down
345  # TODO: this should ideally be called higher up to avoid it being run
346  # multiple times in a train.
347  # TODO: restrict it to relevant triggers
348  from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
349 
350  EGAM2TriggerListsHelper = TriggerListsHelper(flags)
351 
352  # configure skimming/thinning/augmentation tools
353  acc.merge(
355  flags,
356  name="EGAM2Kernel",
357  StreamName="StreamDAOD_EGAM2",
358  TriggerListsHelper=EGAM2TriggerListsHelper,
359  )
360  )
361 
362  # configure slimming
363  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
364  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
365  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
366 
367  EGAM2SlimmingHelper = SlimmingHelper(
368  "EGAM2SlimmingHelper",
369  NamesAndTypes=flags.Input.TypedCollections,
370  flags=flags,
371  )
372 
373  # ------------------------------------------
374  # containers for which we save all variables
375  # -------------------------------------------
376 
377  # baseline
378  EGAM2SlimmingHelper.AllVariables = [
379  "Electrons",
380  "GSFTrackParticles",
381  "egammaClusters",
382  ]
383 
384  # for trigger studies we also add:
385  MenuType = None
386  if flags.Trigger.EDMVersion == 2:
387  MenuType = "Run2"
388  elif flags.Trigger.EDMVersion == 3:
389  MenuType = "Run3"
390  else:
391  MenuType = ""
392  EGAM2SlimmingHelper.AllVariables += ExtraContainersTrigger[MenuType]
393  EGAM2SlimmingHelper.AllVariables += ExtraContainersElectronTrigger[MenuType]
394 
395  # and on MC we also add:
396  if flags.Input.isMC:
397  EGAM2SlimmingHelper.AllVariables += [
398  "TruthEvents",
399  "TruthParticles",
400  "TruthVertices",
401  "egammaTruthParticles",
402  ]
403 
404  # -------------------------------------------
405  # containers that we slim
406  # -------------------------------------------
407 
408  # first add variables from smart-slimming
409  # adding only also those for which we add all variables since
410  # the XXXCPContent.py files also bring in some extra variables
411  # for other collections
412  # muons, tau, MET, b-tagging could be switched off if not needed
413  # and use too much space
414  EGAM2SlimmingHelper.SmartCollections = [
415  "Electrons",
416  "Photons",
417  "Muons",
418  "TauJets",
419  "InDetTrackParticles",
420  "PrimaryVertices",
421  "AntiKt4EMPFlowJets",
422  "MET_Baseline_AntiKt4EMPFlow",
423  "BTagging_AntiKt4EMPFlow",
424  ]
425  if flags.Input.isMC:
426  EGAM2SlimmingHelper.SmartCollections += [
427  "AntiKt4TruthJets",
428  "AntiKt4TruthDressedWZJets",
429  ]
430 
431  # then add extra variables:
432 
433  # muons
434  EGAM2SlimmingHelper.ExtraVariables += [
435  "Muons.ptcone20.ptcone30.ptcone40.etcone20.etcone30.etcone40"
436  ]
437 
438  # conversion vertices
439  EGAM2SlimmingHelper.ExtraVariables += [
440  "GSFConversionVertices.x.y.z.px.py.pz.pt1.pt2.etaAtCalo.phiAtCalo",
441  "GSFConversionVertices.trackParticleLinks",
442  ]
443 
444  # primary vertices
445  EGAM2SlimmingHelper.ExtraVariables += ["PrimaryVertices.x.y.sumPt2"]
446 
447  # photons: detailed shower shape variables
448  EGAM2SlimmingHelper.ExtraVariables += PhotonsCPDetailedContent
449 
450  # photons: gain and cluster energy per layer
451  from DerivationFrameworkCalo.DerivationFrameworkCaloConfig import (
452  getGainDecorations,
453  getClusterEnergyPerLayerDecorations,
454  )
455 
456  gainDecorations = getGainDecorations(acc, flags, "EGAM2Kernel")
457  print("EGAM2 gain decorations: ", gainDecorations)
458  EGAM2SlimmingHelper.ExtraVariables.extend(gainDecorations)
459  clusterEnergyDecorations = getClusterEnergyPerLayerDecorations(acc, "EGAM2Kernel")
460  print("EGAM2 cluster energy decorations: ", clusterEnergyDecorations)
461  EGAM2SlimmingHelper.ExtraVariables.extend(clusterEnergyDecorations)
462 
463  # energy density
464  EGAM2SlimmingHelper.ExtraVariables += [
465  "TopoClusterIsoCentralEventShape.Density",
466  "TopoClusterIsoForwardEventShape.Density",
467  "NeutralParticleFlowIsoCentralEventShape.Density",
468  "NeutralParticleFlowIsoForwardEventShape.Density",
469  ]
470 
471  # truth
472  if flags.Input.isMC:
473  EGAM2SlimmingHelper.ExtraVariables += [
474  "MuonTruthParticles.e.px.py.pz.status.pdgId.truthOrigin.truthType"
475  ]
476 
477  EGAM2SlimmingHelper.ExtraVariables += [
478  "Photons.truthOrigin.truthType.truthParticleLink"
479  ]
480 
481  # Add event info
482  if flags.Derivation.Egamma.doEventInfoSlimming:
483  EGAM2SlimmingHelper.SmartCollections.append("EventInfo")
484  else:
485  EGAM2SlimmingHelper.AllVariables += ["EventInfo"]
486 
487  # Add egamma trigger objects
488  EGAM2SlimmingHelper.IncludeEGammaTriggerContent = True
489 
490  # Trigger matching
491  # Run 2
492  if flags.Trigger.EDMVersion == 2:
493  from DerivationFrameworkPhys.TriggerMatchingCommonConfig import AddRun2TriggerMatchingToSlimmingHelper
494  AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = EGAM2SlimmingHelper,
495  OutputContainerPrefix = "TrigMatch_",
496  TriggerList = EGAM2TriggerListsHelper.Run2TriggerNamesNoTau)
497 
498  # add some single-leg trigger matching info needed for Jpsi triggers
499  # This is scheduling an instance of TriggerMatchingCommonRun2Cfg which is in addition to the ones from PhysCommonAugmentationsCfg
500  # And adding the output branches to the SlimmingHelper in addition
501  from DerivationFrameworkPhys.TriggerMatchingCommonConfig import (
502  TriggerMatchingCommonRun2Cfg
503  )
504  EGAM2TrigMatchList = [
505  "HLT_e5_lhtight_nod0",
506  "HLT_e9_lhtight_nod0",
507  "HLT_e14_lhtight_nod0",
508  ]
510  flags,
511  name="EGAM2TrigMatch",
512  OutputContainerPrefix="TrigMatch_",
513  ChainNames=EGAM2TrigMatchList)
514  )
516  SlimmingHelper=EGAM2SlimmingHelper,
517  OutputContainerPrefix="TrigMatch_",
518  TriggerList=EGAM2TrigMatchList
519  )
520 
521  # Run 3, or Run 2 with navigation conversion
522  if flags.Trigger.EDMVersion == 3 or (flags.Trigger.EDMVersion == 2 and flags.Trigger.doEDMVersionConversion):
523  from TrigNavSlimmingMT.TrigNavSlimmingMTConfig import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
525 
526 
527  EGAM2ItemList = EGAM2SlimmingHelper.GetItemList()
528  acc.merge(
530  flags,
531  "DAOD_EGAM2",
532  ItemList=EGAM2ItemList,
533  AcceptAlgs=["EGAM2Kernel"],
534  )
535  )
536  acc.merge(
538  flags,
539  "DAOD_EGAM2",
540  AcceptAlgs=["EGAM2Kernel"],
541  createMetadata=[
542  MetadataCategory.CutFlowMetaData,
543  MetadataCategory.TruthMetaData,
544  ],
545  )
546  )
547 
548  return acc
python.EGAM2.EGAM2JpsieeMassTool1Cfg
def EGAM2JpsieeMassTool1Cfg(flags)
Definition: EGAM2.py:75
TrigNavSlimmingMTConfig.AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
def AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(slimmingHelper)
Definition: TrigNavSlimmingMTConfig.py:98
python.EGAM2.EGAM2SkimmingToolCfg
def EGAM2SkimmingToolCfg(flags)
Definition: EGAM2.py:26
SystemOfUnits
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=[], MetadataItemList=[], disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, AcceptAlgs=[], HelperTools=[])
Definition: OutputStreamConfig.py:12
python.EGAM2.EGAM2JpsieeMassTool2Cfg
def EGAM2JpsieeMassTool2Cfg(flags)
Definition: EGAM2.py:111
python.InDetToolsConfig.TrackParticleThinningCfg
def TrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:458
python.TriggerMatchingCommonConfig.AddRun2TriggerMatchingToSlimmingHelper
def AddRun2TriggerMatchingToSlimmingHelper(**kwargs)
Definition: TriggerMatchingCommonConfig.py:30
python.TriggerMatchingCommonConfig.TriggerMatchingCommonRun2Cfg
def TriggerMatchingCommonRun2Cfg(ConfigFlags, name, **kwargs)
Definition: TriggerMatchingCommonConfig.py:62
python.InDetToolsConfig.MuonTrackParticleThinningCfg
def MuonTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:528
python.InDetToolsConfig.TauTrackParticleThinningCfg
def TauTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:539
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
python.EGAM2.EGAM2KernelCfg
def EGAM2KernelCfg(flags, name="EGAM2Kernel", **kwargs)
Definition: EGAM2.py:150
DerivationFrameworkCaloConfig.CaloDecoratorKernelCfg
def CaloDecoratorKernelCfg(flags, name="CaloDecoratorKernel", **kwargs)
Definition: DerivationFrameworkCaloConfig.py:77
python.EGAM2.EGAM2Cfg
def EGAM2Cfg(flags)
Definition: EGAM2.py:338
DerivationFrameworkCaloConfig.getClusterEnergyPerLayerDecorations
def getClusterEnergyPerLayerDecorations(acc, kernel)
Definition: DerivationFrameworkCaloConfig.py:159
DerivationFrameworkCaloConfig.getGainDecorations
def getGainDecorations(acc, flags, kernel, collections=None, info=["E", "nCells"])
Definition: DerivationFrameworkCaloConfig.py:127
python.PhysCommonConfig.PhysCommonAugmentationsCfg
def PhysCommonAugmentationsCfg(flags, **kwargs)
Definition: PhysCommonConfig.py:14
dbg::print
void print(std::FILE *stream, std::format_string< Args... > fmt, Args &&... args)
Definition: SGImplSvc.cxx:70
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:219
SlimmingHelper
Definition: SlimmingHelper.py:1