ATLAS Offline Software
Loading...
Searching...
No Matches
egammaReconstructionConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3""" Instantiate the EGamma reconstruction.
4"""
5
6from AthenaCommon.Logging import logging
7from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
8
9
10def egammaReconstructionCfg(flags, name="egammaReconstruction"):
11
12 mlog = logging.getLogger(name)
13 mlog.info('Starting EGamma reconstruction configuration')
14
15 acc = ComponentAccumulator()
16
17 # In case it has not be added upstream already
18 from egammaAlgs.egammaTopoClusterCopierConfig import (
19 egammaTopoClusterCopierCfg)
20 acc.merge(egammaTopoClusterCopierCfg(flags))
21
22 # Add e/gamma tracking algorithms
23 if flags.Egamma.doTracking:
24
25 if flags.Acts.GsfRefitActs:
26 if flags.Acts.extrapolateElectronsLegacy or not flags.Acts.TrackingGeometry.UseBlueprint:
27 from egammaAlgs.egammaSelectedTrackCopyConfig import (
28 egammaSelectedTrackCopyCfg)
29 acc.merge(egammaSelectedTrackCopyCfg(flags))
30 else:
31 from ActsConfig.CaloExtensionBuilderConfig import ActsCaloExtensionBuilderCfg
32 from egammaAlgs.ActsEgammaSelectedTrackCopyConfig import (
33 ActsEgammaSelectedTrackCopyCfg)
34 acc.merge(ActsEgammaSelectedTrackCopyCfg(flags))
35 acc.merge(ActsCaloExtensionBuilderCfg(flags))
36
37 from egammaAlgs.ActsEMBremCollectionBuilderConfig import (
38 ActsEMBremCollectionBuilderCfg)
39 acc.merge(ActsEMBremCollectionBuilderCfg(flags))
40
41 else:
42 from egammaAlgs.egammaSelectedTrackCopyConfig import (
43 egammaSelectedTrackCopyCfg)
44 acc.merge(egammaSelectedTrackCopyCfg(flags))
45
46 from egammaAlgs.EMBremCollectionBuilderConfig import (
47 EMBremCollectionBuilderCfg)
48 acc.merge(EMBremCollectionBuilderCfg(flags))
49
50 if (flags.Tracking.writeExtendedSi_PRDInfo or
51 flags.Tracking.writeExtendedTRT_PRDInfo):
52 from DerivationFrameworkInDet.InDetToolsConfig import (
53 GSFTSOS_CommonKernelCfg)
54 acc.merge(GSFTSOS_CommonKernelCfg(flags))
55
56 # Add e/gamma conversion finding
57 if flags.Egamma.doConversionBuilding:
58 from egammaAlgs.EMVertexBuilderConfig import (
59 EMVertexBuilderCfg)
60 acc.merge(EMVertexBuilderCfg(flags))
61
62 # Add algorithms to produce
63 # xAOD Electrons and Photons
64 if flags.Egamma.doCentral:
65 from egammaAlgs.egammaRecBuilderConfig import (
66 egammaRecBuilderCfg)
67 acc.merge(egammaRecBuilderCfg(flags))
68
69 from egammaAlgs.egammaSuperClusterBuilderConfig import (
70 electronSuperClusterBuilderCfg, photonSuperClusterBuilderCfg)
71 acc.merge(electronSuperClusterBuilderCfg(flags))
72 acc.merge(photonSuperClusterBuilderCfg(flags))
73
74 from egammaAlgs.xAODEgammaBuilderConfig import (
75 xAODEgammaBuilderCfg)
76 acc.merge(xAODEgammaBuilderCfg(flags))
77
78 from egammaAlgs.egammaLargeClusterMakerAlgConfig import (
79 egammaLargeClusterMakerAlgCfg)
80 acc.merge(egammaLargeClusterMakerAlgCfg(flags))
81
82 # Add calo seeded forward algorithms to produce xAOD Forward Electrons.
83 if flags.Egamma.doForward:
84 from egammaAlgs.egammaForwardBuilderConfig import (
85 egammaForwardBuilderCfg)
86 acc.merge(egammaForwardBuilderCfg(flags))
87
88 from egammaAlgs.egammaLargeFWDClusterMakerAlgConfig import (
89 egammaLargeFWDClusterMakerAlgCfg)
90 acc.merge(egammaLargeFWDClusterMakerAlgCfg(flags))
91
92 # Add truth association.
93 if flags.Egamma.doTruthAssociation:
94 from egammaAlgs.egammaTruthAssociationConfig import (
95 egammaTruthAssociationCfg)
96 acc.merge(egammaTruthAssociationCfg(flags))
97
98 mlog.info("EGamma reconstruction configured")
99
100 return acc
101
102
103if __name__ == "__main__":
104 from AthenaConfiguration.AllConfigFlags import initConfigFlags
105 from AthenaConfiguration.TestDefaults import defaultTestFiles
106 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
107 flags = initConfigFlags()
108 flags.Input.Files = defaultTestFiles.RDO_RUN2
109 flags.Output.doWriteESD = True # To test the ESD parts.
110 flags.Output.doWriteAOD = True # To test the AOD parts.
111 flags.lock()
112
113 acc = MainServicesCfg(flags)
114 acc.merge(egammaReconstructionCfg(flags))
115 acc.printConfig(withDetails=True, printDefaults=True)
116
117 with open("egammareconstructionconfig.pkl", "wb") as f:
118 acc.store(f)
egammaReconstructionCfg(flags, name="egammaReconstruction")