ATLAS Offline Software
EGAM3.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 # ====================================================================
3 # EGAM3.py
4 # This defines DAOD_EGAM3, a skimmed DAOD format for Run 3.
5 # Z->eegamma reduction for low-pT electron and photon studies
6 # It requires the flag EGAM3 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.ElectronsCPDetailedContent import (
16  ElectronsCPDetailedContent,
17  GSFTracksCPDetailedContent,
18 )
19 
20 from DerivationFrameworkEGamma.TriggerContent import (
21  ExtraContainersTrigger,
22  ExtraContainersPhotonTrigger,
23  ExtraContainersElectronTrigger,
24  ExtraContainersTriggerDataOnly,
25  ExtraVariablesHLTPhotons,
26 )
27 
28 
30  """Configure the EGAM3 skimming tool"""
31  acc = ComponentAccumulator()
32 
33  # eegamma or eee selection for photon efficiency studies, ee triggers
34  expression1a = " && ".join(
35  [
36  "(count(DFCommonPhotons_et>9.5*GeV)>=1)",
37  "(count(EGAM3_DiElectronMass1 > 40.0*GeV)>=1)",
38  ]
39  )
40  expression1b = " && ".join(
41  [
42  "(count(Electrons.pt>9.5*GeV)>=3)",
43  "(count(EGAM3_DiElectronMass1 > 40.0*GeV)>=1)",
44  ]
45  )
46 
47  # eegamma selection for low-pT central electron studies with T&P
48  expression2 = " && ".join(
49  [
50  "(count(DFCommonPhotons_et>9.5*GeV && "
51  + "Photons.DFCommonPhotonsIsEMTight)>=1)",
52  "(count(EGAM3_DiElectronMass2 > 40.0*GeV)>=1)",
53  ]
54  )
55 
56  # eegamma selection for low-pT forward electron studies with T&P
57  expression3 = " && ".join(
58  [
59  "(count(DFCommonPhotons_et>9.5*GeV && "
60  + "Photons.DFCommonPhotonsIsEMTight)>=1)",
61  "(count(EGAM3_DiElectronMass3 > 40.0*GeV)>=1)",
62  ]
63  )
64 
65  # take OR of previous selections
66  expression = (
67  "( "
68  + expression1a
69  + " ) || "
70  + "( "
71  + expression1b
72  + " ) || "
73  + "( "
74  + expression2
75  + " ) || "
76  + "( "
77  + expression3
78  + " )"
79  )
80  print("EGAM3 skimming expression: ", expression)
81 
82  acc.setPrivateTools(
83  CompFactory.DerivationFramework.xAODStringSkimmingTool(
84  name="EGAM3SkimmingTool", expression=expression
85  )
86  )
87 
88  return acc
89 
90 
92  """Configure the EGAM3 ee invariant mass augmentation tool 1"""
93  acc = ComponentAccumulator()
94 
95  # ====================================================================
96  # 1. ee invariant mass of events passing eegamma or eee selection for
97  # photon efficiency studies, di-electron triggers
98  #
99  # two opposite-sign medium el, pT>10 GeV, |eta|<2.5, mee>40 GeV
100  # eegamma: one reco photon, ET>10 GeV< |eta|<2.5
101  # eee: 3 electrons, pT>10 GeV, mee>40 GeV
102  # if skim size too large either require tight electrons (at least one)
103  # or raise electron pT threshold (at least one)
104  # ====================================================================
105 
106  requirementElectrons = " && ".join(
107  ["(Electrons.DFCommonElectronsLHMedium)", "(Electrons.pt > 9.5*GeV)"]
108  )
109 
110  acc.setPrivateTools(
111  CompFactory.DerivationFramework.EGInvariantMassTool(
112  name="EGAM3_EEMassTool11",
113  Object1Requirements=requirementElectrons,
114  Object2Requirements=requirementElectrons,
115  StoreGateEntryName="EGAM3_DiElectronMass1",
116  Mass1Hypothesis=0.511 * MeV,
117  Mass2Hypothesis=0.511 * MeV,
118  Container1Name="Electrons",
119  Container2Name="Electrons",
120  CheckCharge=True,
121  DoTransverseMass=False,
122  MinDeltaR=0.0,
123  )
124  )
125 
126  return acc
127 
128 
130  """Configure the EGAM3 ee invariant mass augmentation tool 2"""
131  acc = ComponentAccumulator()
132 
133  # ====================================================================
134  # 2. dielectron invariant mass for eegamma selection for low-pT
135  # electron studies with T&P
136  #
137  # tag e: tight, |eta|<2.5, pT>25 GeV
138  # probe e: reco, ET>7 GeV, central electron
139  # gamma: tight, ET>10 GeV
140  # ====================================================================
141  # asymmetric electron cuts/single e trigger, low pT cut for subleading
142  # e (for e calibration studies at low pT)
143 
144  requirementElectron1 = " && ".join(
145  ["(Electrons.DFCommonElectronsLHTight)", "(Electrons.pt > 24.5*GeV)"]
146  )
147  requirementElectron2 = "(Electrons.pt > 6.5*GeV)"
148 
149  acc.setPrivateTools(
150  CompFactory.DerivationFramework.EGInvariantMassTool(
151  name="EGAM3_ZEEMassTool2",
152  Object1Requirements=requirementElectron1,
153  Object2Requirements=requirementElectron2,
154  StoreGateEntryName="EGAM3_DiElectronMass2",
155  Mass1Hypothesis=0.511 * MeV,
156  Mass2Hypothesis=0.511 * MeV,
157  Container1Name="Electrons",
158  Container2Name="Electrons",
159  CheckCharge=True,
160  DoTransverseMass=False,
161  MinDeltaR=0.0,
162  )
163  )
164 
165  return acc
166 
167 
169  """Configure the EGAM3 ee invariant mass augmentation tool 3"""
170  acc = ComponentAccumulator()
171 
172  # ====================================================================
173  # 3. eegamma selection for low-pT electron studies with T&P
174  # tag e: tight, |eta|<2.5, pT>25 GeV
175  # probe e: reco, ET>7 GeV, forward electron
176  # gamma: tight, ET>10 GeV
177  # ====================================================================
178 
179  requirementElectron1 = " && ".join(
180  ["(Electrons.DFCommonElectronsLHTight)", "(Electrons.pt > 24.5*GeV)"]
181  )
182  requirementElectron2 = "(ForwardElectrons.pt > 6.5*GeV)"
183 
184  acc.setPrivateTools(
185  CompFactory.DerivationFramework.EGInvariantMassTool(
186  name="EGAM3_EEMassTool3",
187  Object1Requirements=requirementElectron1,
188  Object2Requirements=requirementElectron2,
189  StoreGateEntryName="EGAM3_DiElectronMass3",
190  Mass1Hypothesis=0.511 * MeV,
191  Mass2Hypothesis=0.511 * MeV,
192  Container1Name="Electrons",
193  Container2Name="ForwardElectrons",
194  CheckCharge=True,
195  DoTransverseMass=False,
196  MinDeltaR=0.0,
197  )
198  )
199 
200  return acc
201 
202 
203 # Main algorithm config
204 def EGAM3KernelCfg(flags, name="EGAM3Kernel", **kwargs):
205  """Configure the derivation framework driving algorithm (kernel)
206  for EGAM3"""
207  acc = ComponentAccumulator()
208 
209  # Common augmentations
210  from DerivationFrameworkPhys.PhysCommonConfig import PhysCommonAugmentationsCfg
211 
212  acc.merge(
214  flags, TriggerListsHelper=kwargs["TriggerListsHelper"]
215  )
216  )
217 
218  # EGAM3 augmentations
219  augmentationTools = []
220 
221  # ====================================================================
222  # ee and egamma invariant masses
223  # ====================================================================
224  EGAM3eeMassTool1 = acc.popToolsAndMerge(EGAM3eeMassTool1Cfg(flags))
225  acc.addPublicTool(EGAM3eeMassTool1)
226  augmentationTools.append(EGAM3eeMassTool1)
227 
228  EGAM3eeMassTool2 = acc.popToolsAndMerge(EGAM3eeMassTool2Cfg(flags))
229  acc.addPublicTool(EGAM3eeMassTool2)
230  augmentationTools.append(EGAM3eeMassTool2)
231 
232  EGAM3eeMassTool3 = acc.popToolsAndMerge(EGAM3eeMassTool3Cfg(flags))
233  acc.addPublicTool(EGAM3eeMassTool3)
234  augmentationTools.append(EGAM3eeMassTool3)
235 
236  # ====================================================================
237  # Common calo decoration tools
238  # ====================================================================
239  from DerivationFrameworkCalo.DerivationFrameworkCaloConfig import (
240  CaloDecoratorKernelCfg)
241  acc.merge(CaloDecoratorKernelCfg(flags))
242 
243  # thinning tools
244  thinningTools = []
245  streamName = kwargs["StreamName"]
246 
247  # Track thinning
248  if flags.Derivation.Egamma.doTrackThinning:
249  from DerivationFrameworkInDet.InDetToolsConfig import (
250  TrackParticleThinningCfg,
251  MuonTrackParticleThinningCfg,
252  TauTrackParticleThinningCfg,
253  )
254 
255  TrackThinningKeepElectronTracks = True
256  TrackThinningKeepAllElectronTracks = False
257  TrackThinningKeepPhotonTracks = True
258  TrackThinningKeepAllPhotonTracks = True
259  TrackThinningKeepJetTracks = False
260  TrackThinningKeepMuonTracks = False
261  TrackThinningKeepTauTracks = False
262  TrackThinningKeepPVTracks = True
263 
264  # Tracks associated with Electrons
265  if TrackThinningKeepElectronTracks:
266  EGAM3ElectronTPThinningTool = (
267  CompFactory.DerivationFramework.EgammaTrackParticleThinning(
268  name="EGAM3ElectronTPThinningTool",
269  StreamName=streamName,
270  SGKey="Electrons",
271  GSFTrackParticlesKey="GSFTrackParticles",
272  InDetTrackParticlesKey="InDetTrackParticles",
273  SelectionString="Electrons.pt > 0*GeV",
274  BestMatchOnly=True,
275  ConeSize=0.3,
276  )
277  )
278  acc.addPublicTool(EGAM3ElectronTPThinningTool)
279  thinningTools.append(EGAM3ElectronTPThinningTool)
280 
281  # Tracks associated with Electrons (all tracks, large cone, for track
282  # isolation studies of the selected electrons)
283  if TrackThinningKeepAllElectronTracks:
284  EGAM3ElectronTPThinningTool2 = (
285  CompFactory.DerivationFramework.EgammaTrackParticleThinning(
286  name="EGAM3ElectronTPThinningTool2",
287  StreamName=streamName,
288  SGKey="Electrons",
289  GSFTrackParticlesKey="GSFTrackParticles",
290  InDetTrackParticlesKey="InDetTrackParticles",
291  SelectionString="Electrons.pt > 4*GeV",
292  BestMatchOnly=False,
293  ConeSize=0.6,
294  )
295  )
296  acc.addPublicTool(EGAM3ElectronTPThinningTool2)
297  thinningTools.append(EGAM3ElectronTPThinningTool2)
298 
299  # Tracks associated with Photons
300  if TrackThinningKeepPhotonTracks:
301  EGAM3PhotonTPThinningTool = (
302  CompFactory.DerivationFramework.EgammaTrackParticleThinning(
303  name="EGAM3PhotonTPThinningTool",
304  StreamName=streamName,
305  SGKey="Photons",
306  GSFTrackParticlesKey="GSFTrackParticles",
307  InDetTrackParticlesKey="InDetTrackParticles",
308  GSFConversionVerticesKey="GSFConversionVertices",
309  SelectionString="Photons.pt > 0*GeV",
310  BestMatchOnly=True,
311  ConeSize=0.3,
312  )
313  )
314  acc.addPublicTool(EGAM3PhotonTPThinningTool)
315  thinningTools.append(EGAM3PhotonTPThinningTool)
316 
317  # Tracks associated with Photons (all tracks, large cone,
318  # for track isolation studies of the selected photons)
319  if TrackThinningKeepAllPhotonTracks:
320  EGAM3PhotonTPThinningTool2 = (
321  CompFactory.DerivationFramework.EgammaTrackParticleThinning(
322  name="EGAM3PhotonTPThinningTool2",
323  StreamName=streamName,
324  SGKey="Photons",
325  GSFTrackParticlesKey="GSFTrackParticles",
326  InDetTrackParticlesKey="InDetTrackParticles",
327  GSFConversionVerticesKey="GSFConversionVertices",
328  SelectionString="Photons.pt > 9.5*GeV",
329  BestMatchOnly=False,
330  ConeSize=0.6,
331  )
332  )
333  acc.addPublicTool(EGAM3PhotonTPThinningTool2)
334  thinningTools.append(EGAM3PhotonTPThinningTool2)
335 
336  # Tracks associated with Jets
337  if TrackThinningKeepJetTracks:
338  EGAM3JetTPThinningTool = (
339  CompFactory.DerivationFramework.JetTrackParticleThinning(
340  name="EGAM3JetTPThinningTool",
341  StreamName=streamName,
342  JetKey="AntiKt4EMPFlowJets",
343  InDetTrackParticlesKey="InDetTrackParticles",
344  )
345  )
346  acc.addPublicTool(EGAM3JetTPThinningTool)
347  thinningTools.append(EGAM3JetTPThinningTool)
348 
349  # Tracks associated with Muons
350  if TrackThinningKeepMuonTracks:
351  EGAM3MuonTPThinningTool = acc.getPrimaryAndMerge(
353  flags,
354  name="EGAM3MuonTPThinningTool",
355  StreamName=streamName,
356  MuonKey="Muons",
357  InDetTrackParticlesKey="InDetTrackParticles",
358  )
359  )
360  thinningTools.append(EGAM3MuonTPThinningTool)
361 
362  # Tracks associated with Taus
363  if TrackThinningKeepTauTracks:
364  EGAM3TauTPThinningTool = acc.getPrimaryAndMerge(
366  flags,
367  name="EGAM3TauTPThinningTool",
368  StreamName=streamName,
369  TauKey="TauJets",
370  ConeSize=0.6,
371  InDetTrackParticlesKey="InDetTrackParticles",
372  DoTauTracksThinning=True,
373  TauTracksKey="TauTracks",
374  )
375  )
376  thinningTools.append(EGAM3TauTPThinningTool)
377 
378  # Tracks from primary vertex
379  thinning_expression = " && ".join(
380  [
381  "(InDetTrackParticles.DFCommonTightPrimary)",
382  "(abs(DFCommonInDetTrackZ0AtPV)*sin(InDetTrackParticles.theta)<3*mm)",
383  "(InDetTrackParticles.pt>10*GeV)",
384  ]
385  )
386  if TrackThinningKeepPVTracks:
387  EGAM3TPThinningTool = acc.getPrimaryAndMerge(
389  flags,
390  name="EGAM3TPThinningTool",
391  StreamName=streamName,
392  SelectionString=thinning_expression,
393  InDetTrackParticlesKey="InDetTrackParticles",
394  )
395  )
396  thinningTools.append(EGAM3TPThinningTool)
397 
398  # skimming
399  skimmingTool = acc.popToolsAndMerge(EGAM3SkimmingToolCfg(flags))
400  acc.addPublicTool(skimmingTool)
401 
402  # setup the kernel
403  acc.addEventAlgo(
404  CompFactory.DerivationFramework.DerivationKernel(
405  name,
406  SkimmingTools=[skimmingTool],
407  AugmentationTools=augmentationTools,
408  ThinningTools=thinningTools,
409  )
410  )
411 
412  return acc
413 
414 
415 def EGAM3Cfg(flags):
416  acc = ComponentAccumulator()
417 
418  # Get the lists of triggers needed for trigger matching.
419  # This is needed at this scope (for the slimming) and further down
420  # in the config chain for actually configuring the matching, so we create
421  # it here and pass it down
422  # TODO: this should ideally be called higher up to avoid it being run
423  # multiple times in a train
424  from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
425 
426  EGAM3TriggerListsHelper = TriggerListsHelper(flags)
427 
428  # configure skimming/thinning/augmentation tools
429  acc.merge(
431  flags,
432  name="EGAM3Kernel",
433  StreamName="StreamDAOD_EGAM3",
434  TriggerListsHelper=EGAM3TriggerListsHelper,
435  )
436  )
437 
438  # configure slimming
439  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
440  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
441  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
442 
443  EGAM3SlimmingHelper = SlimmingHelper(
444  "EGAM3SlimmingHelper",
445  NamesAndTypes=flags.Input.TypedCollections,
446  flags=flags,
447  )
448 
449  # ------------------------------------------
450  # containers for which we save all variables
451  # -------------------------------------------
452 
453  # baseline
454  EGAM3SlimmingHelper.AllVariables = [
455  "Photons",
456  "GSFTrackParticles",
457  "egammaClusters",
458  "ForwardElectrons",
459  "ForwardElectronClusters",
460  ]
461 
462  # for trigger studies we also add:
463  MenuType = None
464  if flags.Trigger.EDMVersion == 2:
465  MenuType = "Run2"
466  elif flags.Trigger.EDMVersion == 3:
467  MenuType = "Run3"
468  else:
469  MenuType = ""
470  EGAM3SlimmingHelper.AllVariables += ExtraContainersTrigger[MenuType]
471  EGAM3SlimmingHelper.AllVariables += ExtraContainersPhotonTrigger[MenuType]
472  EGAM3SlimmingHelper.AllVariables += ExtraContainersElectronTrigger[MenuType]
473  if not flags.Input.isMC:
474  EGAM3SlimmingHelper.AllVariables += ExtraContainersTriggerDataOnly[MenuType]
475 
476  # and on MC we also add:
477  if flags.Input.isMC:
478  EGAM3SlimmingHelper.AllVariables += [
479  "TruthEvents",
480  "TruthParticles",
481  "TruthVertices",
482  "egammaTruthParticles",
483  "MuonTruthParticles",
484  ]
485 
486  # -------------------------------------------
487  # containers that we slim
488  # -------------------------------------------
489 
490  # first add variables from smart-slimming
491  # adding only also those for which we add all variables since
492  # the XXXCPContent.py files also bring in some extra variables
493  # for other collections
494  EGAM3SlimmingHelper.SmartCollections = [
495  "Electrons",
496  "Photons",
497  "Muons",
498  "TauJets",
499  "PrimaryVertices",
500  "InDetTrackParticles",
501  "AntiKt4EMPFlowJets",
502  "BTagging_AntiKt4EMPFlow",
503  "MET_Baseline_AntiKt4EMPFlow",
504  ]
505  if flags.Input.isMC:
506  EGAM3SlimmingHelper.SmartCollections += [
507  "AntiKt4TruthJets",
508  "AntiKt4TruthDressedWZJets",
509  ]
510 
511  # then add extra variables:
512 
513  # electrons
514  EGAM3SlimmingHelper.ExtraVariables += ["Electrons.Loose.Medium.Tight"]
515 
516  # muons
517  EGAM3SlimmingHelper.ExtraVariables += [
518  "Muons.ptcone20.ptcone30.ptcone40.etcone20.etcone30.etcone40"
519  ]
520 
521  # conversion vertices
522  EGAM3SlimmingHelper.ExtraVariables += [
523  "GSFConversionVertices.x.y.z.px.py.pz.pt1.pt2.etaAtCalo.phiAtCalo",
524  "GSFConversionVertices.trackParticleLinks",
525  ]
526 
527  # primary vertices
528  EGAM3SlimmingHelper.ExtraVariables += ["PrimaryVertices.x.y.sumPt2"]
529 
530  # energy density
531  EGAM3SlimmingHelper.ExtraVariables += [
532  "TopoClusterIsoCentralEventShape.Density",
533  "TopoClusterIsoForwardEventShape.Density",
534  "NeutralParticleFlowIsoCentralEventShape.Density",
535  "NeutralParticleFlowIsoForwardEventShape.Density",
536  ]
537 
538  from DerivationFrameworkEGamma import EGammaIsoConfig
539 
540  (
541  pflowIsoVar,
542  densityList,
543  densityDict,
544  acc1,
545  ) = EGammaIsoConfig.makeEGammaCommonIsoCfg(flags)
546  acc.merge(acc1)
547  EGAM3SlimmingHelper.AppendToDictionary.update(densityDict)
548  EGAM3SlimmingHelper.ExtraVariables += densityList
549 
550  # To have ptcone40
551  from IsolationAlgs.DerivationTrackIsoConfig import DerivationTrackIsoCfg
552 
553  acc.merge(
555  flags, object_types=("Photons",), ptCuts=(500, 1000), postfix="Extra"
556  )
557  )
558 
559  # electrons: detailed shower shape and track variables
560  EGAM3SlimmingHelper.ExtraVariables += ElectronsCPDetailedContent
561  EGAM3SlimmingHelper.ExtraVariables += GSFTracksCPDetailedContent
562 
563  # photons and electrons: gain and cluster energy per layer
564  from DerivationFrameworkCalo.DerivationFrameworkCaloConfig import (
565  getGainDecorations,
566  getClusterEnergyPerLayerDecorations,
567  )
568 
569  gainDecorations = getGainDecorations(acc, flags, "EGAM3Kernel")
570  print("EGAM3 gain decorations: ", gainDecorations)
571  EGAM3SlimmingHelper.ExtraVariables.extend(gainDecorations)
572  clusterEnergyDecorations = getClusterEnergyPerLayerDecorations(acc, "EGAM3Kernel")
573  print("EGAM3 cluster energy decorations: ", clusterEnergyDecorations)
574  EGAM3SlimmingHelper.ExtraVariables.extend(clusterEnergyDecorations)
575 
576  # photon HLT variables
577  EGAM3SlimmingHelper.ExtraVariables += ExtraVariablesHLTPhotons[MenuType]
578 
579  # truth
580  if flags.Input.isMC:
581  EGAM3SlimmingHelper.ExtraVariables += [
582  "Electrons.truthOrigin.truthType.truthParticleLink"
583  ]
584 
585  # Add event info
586  if flags.Derivation.Egamma.doEventInfoSlimming:
587  EGAM3SlimmingHelper.SmartCollections.append("EventInfo")
588  else:
589  EGAM3SlimmingHelper.AllVariables += ["EventInfo"]
590 
591  # Add egamma trigger objects
592  EGAM3SlimmingHelper.IncludeEGammaTriggerContent = True
593 
594  # Add trigger matching info
595  # Run 2
596  if flags.Trigger.EDMVersion == 2:
597  from DerivationFrameworkPhys.TriggerMatchingCommonConfig import (
598  AddRun2TriggerMatchingToSlimmingHelper,
599  )
600 
602  SlimmingHelper=EGAM3SlimmingHelper,
603  OutputContainerPrefix="TrigMatch_",
604  TriggerList=EGAM3TriggerListsHelper.Run2TriggerNamesNoTau,
605  )
606  # Run 3
607  if flags.Trigger.EDMVersion == 3:
608  from TrigNavSlimmingMT.TrigNavSlimmingMTConfig import (
609  AddRun3TrigNavSlimmingCollectionsToSlimmingHelper,
610  )
611 
613  # Run 2 is added here temporarily to allow testing/comparison/debugging
614  from DerivationFrameworkPhys.TriggerMatchingCommonConfig import (
615  AddRun2TriggerMatchingToSlimmingHelper,
616  )
617 
619  SlimmingHelper=EGAM3SlimmingHelper,
620  OutputContainerPrefix="TrigMatch_",
621  TriggerList=EGAM3TriggerListsHelper.Run3TriggerNamesNoTau,
622  )
623 
624  # Add full CellContainer
625  EGAM3SlimmingHelper.StaticContent = [
626  "CaloCellContainer#AllCalo",
627  "CaloClusterCellLinkContainer#egammaClusters_links",
628  ]
629 
630  EGAM3ItemList = EGAM3SlimmingHelper.GetItemList()
631  acc.merge(
633  flags,
634  "DAOD_EGAM3",
635  ItemList=EGAM3ItemList,
636  AcceptAlgs=["EGAM3Kernel"],
637  )
638  )
639  acc.merge(
641  flags,
642  "DAOD_EGAM3",
643  AcceptAlgs=["EGAM3Kernel"],
644  createMetadata=[
645  MetadataCategory.CutFlowMetaData,
646  MetadataCategory.TruthMetaData,
647  ],
648  )
649  )
650 
651  return acc
python.EGAM3.EGAM3SkimmingToolCfg
def EGAM3SkimmingToolCfg(flags)
Definition: EGAM3.py:29
TrigNavSlimmingMTConfig.AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
def AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(slimmingHelper)
Definition: TrigNavSlimmingMTConfig.py:97
SystemOfUnits
python.EGAM3.EGAM3eeMassTool2Cfg
def EGAM3eeMassTool2Cfg(flags)
Definition: EGAM3.py:129
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.InDetToolsConfig.TrackParticleThinningCfg
def TrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:424
python.TriggerMatchingCommonConfig.AddRun2TriggerMatchingToSlimmingHelper
def AddRun2TriggerMatchingToSlimmingHelper(**kwargs)
Definition: TriggerMatchingCommonConfig.py:30
python.EGAM3.EGAM3eeMassTool3Cfg
def EGAM3eeMassTool3Cfg(flags)
Definition: EGAM3.py:168
python.EGAM3.EGAM3eeMassTool1Cfg
def EGAM3eeMassTool1Cfg(flags)
Definition: EGAM3.py:91
python.EGAM3.EGAM3Cfg
def EGAM3Cfg(flags)
Definition: EGAM3.py:415
python.InDetToolsConfig.MuonTrackParticleThinningCfg
def MuonTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:494
python.InDetToolsConfig.TauTrackParticleThinningCfg
def TauTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:505
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
python.EGAM3.EGAM3KernelCfg
def EGAM3KernelCfg(flags, name="EGAM3Kernel", **kwargs)
Definition: EGAM3.py:204
DerivationFrameworkCaloConfig.CaloDecoratorKernelCfg
def CaloDecoratorKernelCfg(flags, name="CaloDecoratorKernel", **kwargs)
Definition: DerivationFrameworkCaloConfig.py:77
DerivationFrameworkCaloConfig.getClusterEnergyPerLayerDecorations
def getClusterEnergyPerLayerDecorations(acc, kernel)
Definition: DerivationFrameworkCaloConfig.py:154
Muon::print
std::string print(const MuPatSegment &)
Definition: MuonTrackSteering.cxx:28
DerivationFrameworkCaloConfig.getGainDecorations
def getGainDecorations(acc, flags, kernel, collections=None, info=["E", "nCells"])
Definition: DerivationFrameworkCaloConfig.py:122
python.PhysCommonConfig.PhysCommonAugmentationsCfg
def PhysCommonAugmentationsCfg(flags, **kwargs)
Definition: PhysCommonConfig.py:14
DerivationTrackIsoConfig.DerivationTrackIsoCfg
def DerivationTrackIsoCfg(flags, **jwarg)
Definition: DerivationTrackIsoConfig.py:11
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:216
SlimmingHelper
Definition: SlimmingHelper.py:1