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