ATLAS Offline Software
Loading...
Searching...
No Matches
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
6from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
7
8
9def 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:
49 acc.merge(CaloThinCellsByClusterAlgCfg(
50 flags,
51 streamName="StreamAOD",
52 clusters=clus,
53 samplings=samplings,
54 cells=cellsName
55 ))
56
57 return acc
58
59
60if __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)
egammaxAODThinningCfg(flags, name="EGammaxAODThinning")