ATLAS Offline Software
egammaxAODThinningConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 __doc__ = """
4  Instantiate the Egamma related xAOD Thinning
5  """
6 
7 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
8 
9 
10 def egammaxAODThinningCfg(flags, name="EGammaxAODThinning"):
11 
12  acc = ComponentAccumulator()
13  # Add e/gamma track thinning
14  if flags.Egamma.doTrackThinning:
15  from egammaAlgs.egammaTrackThinnerConfig import (
16  egammaTrackThinnerCfg)
17  acc.merge(egammaTrackThinnerCfg(flags))
18 
19  # keep cells for egamma and egammaLargeClusters
20  if flags.Egamma.keepCaloCellsAOD:
21  outFlags = flags.Egamma.Keys.Output
22  allClusters = []
23  if flags.Egamma.doCentral:
24  allClusters.append(outFlags.CaloClusters)
25  allClusters.append(outFlags.EgammaLargeClusters)
26 
27  if flags.Egamma.doForward:
28  allClusters.append(outFlags.ForwardClusters)
29  allClusters.append(outFlags.EgammaLargeFWDClusters)
30 
31  if flags.Tracking.doLargeD0:
32  allClusters.append(f"LRT{outFlags.CaloClusters}")
33 
34  if flags.HeavyIon.Egamma.doSubtractedClusters:
35  allClusters.append(flags.HeavyIon.Egamma.CaloTopoCluster)
36 
37  samplings = [
38  "TileGap1",
39  "TileGap2",
40  "TileGap3",
41  "TileBar0",
42  "TileExt0",
43  "HEC0",
44  ]
45  from CaloRec.CaloThinCellsByClusterAlgConfig import (
46  CaloThinCellsByClusterAlgCfg)
47 
48  cellsName = flags.Egamma.Keys.Input.CaloCells
49  for clus in allClusters:
51  flags,
52  streamName="StreamAOD",
53  clusters=clus,
54  samplings=samplings,
55  cells=cellsName
56  ))
57 
58  return acc
59 
60 
61 if __name__ == "__main__":
62  from AthenaConfiguration.AllConfigFlags import initConfigFlags
63  from AthenaConfiguration.TestDefaults import defaultTestFiles
64  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
65  flags = initConfigFlags()
66  flags.Input.Files = defaultTestFiles.ESD
67  flags.Output.doWriteAOD = True # To test the AOD parts
68  flags.lock()
69  acc = MainServicesCfg(flags)
70  acc.merge(egammaxAODThinningCfg(flags))
71  acc.printConfig(withDetails=True,
72  printDefaults=True)
73 
74  with open("egammaxaodthinningconfig.pkl", "wb") as f:
75  acc.store(f)
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
egammaTrackThinnerConfig.egammaTrackThinnerCfg
def egammaTrackThinnerCfg(flags, name='egammaTrackThinner', **kwargs)
Definition: egammaTrackThinnerConfig.py:7
python.CaloThinCellsByClusterAlgConfig.CaloThinCellsByClusterAlgCfg
def CaloThinCellsByClusterAlgCfg(flags, streamName, clusters, samplings=[], cells='AllCalo')
Definition: CaloThinCellsByClusterAlgConfig.py:11
python.egammaxAODThinningConfig.egammaxAODThinningCfg
def egammaxAODThinningCfg(flags, name="EGammaxAODThinning")
Definition: egammaxAODThinningConfig.py:10
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:256
Trk::open
@ open
Definition: BinningType.h:40
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19