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 egammaAlgs.ActsEgammaSelectedTrackCopyConfig import (
32 ActsEgammaSelectedTrackCopyCfg)
33 acc.merge(ActsEgammaSelectedTrackCopyCfg(flags))
34
35 from egammaAlgs.ActsEMBremCollectionBuilderConfig import (
36 ActsEMBremCollectionBuilderCfg)
37 acc.merge(ActsEMBremCollectionBuilderCfg(flags))
38
39 else:
40 from egammaAlgs.egammaSelectedTrackCopyConfig import (
41 egammaSelectedTrackCopyCfg)
42 acc.merge(egammaSelectedTrackCopyCfg(flags))
43
44 from egammaAlgs.EMBremCollectionBuilderConfig import (
45 EMBremCollectionBuilderCfg)
46 acc.merge(EMBremCollectionBuilderCfg(flags))
47
48 if (flags.Tracking.writeExtendedSi_PRDInfo or
49 flags.Tracking.writeExtendedTRT_PRDInfo):
50 from DerivationFrameworkInDet.InDetToolsConfig import (
51 GSFTSOS_CommonKernelCfg)
52 acc.merge(GSFTSOS_CommonKernelCfg(flags))
53
54 # Add e/gamma conversion finding
55 if flags.Egamma.doConversionBuilding:
56 from egammaAlgs.EMVertexBuilderConfig import (
57 EMVertexBuilderCfg)
58 acc.merge(EMVertexBuilderCfg(flags))
59
60 # Add algorithms to produce
61 # xAOD Electrons and Photons
62 if flags.Egamma.doCentral:
63 from egammaAlgs.egammaRecBuilderConfig import (
64 egammaRecBuilderCfg)
65 acc.merge(egammaRecBuilderCfg(flags))
66
67 from egammaAlgs.egammaSuperClusterBuilderConfig import (
68 electronSuperClusterBuilderCfg, photonSuperClusterBuilderCfg)
69 acc.merge(electronSuperClusterBuilderCfg(flags))
70 acc.merge(photonSuperClusterBuilderCfg(flags))
71
72 from egammaAlgs.xAODEgammaBuilderConfig import (
73 xAODEgammaBuilderCfg)
74 acc.merge(xAODEgammaBuilderCfg(flags))
75
76 from egammaAlgs.egammaLargeClusterMakerAlgConfig import (
77 egammaLargeClusterMakerAlgCfg)
78 acc.merge(egammaLargeClusterMakerAlgCfg(flags))
79
80 # Add calo seeded forward algorithms to produce xAOD Forward Electrons.
81 if flags.Egamma.doForward:
82 from egammaAlgs.egammaForwardBuilderConfig import (
83 egammaForwardBuilderCfg)
84 acc.merge(egammaForwardBuilderCfg(flags))
85
86 from egammaAlgs.egammaLargeFWDClusterMakerAlgConfig import (
87 egammaLargeFWDClusterMakerAlgCfg)
88 acc.merge(egammaLargeFWDClusterMakerAlgCfg(flags))
89
90 # Add truth association.
91 if flags.Egamma.doTruthAssociation:
92 from egammaAlgs.egammaTruthAssociationConfig import (
93 egammaTruthAssociationCfg)
94 acc.merge(egammaTruthAssociationCfg(flags))
95
96 mlog.info("EGamma reconstruction configured")
97
98 return acc
99
100
101if __name__ == "__main__":
102 from AthenaConfiguration.AllConfigFlags import initConfigFlags
103 from AthenaConfiguration.TestDefaults import defaultTestFiles
104 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
105 flags = initConfigFlags()
106 flags.Input.Files = defaultTestFiles.RDO_RUN2
107 flags.Output.doWriteESD = True # To test the ESD parts.
108 flags.Output.doWriteAOD = True # To test the AOD parts.
109 flags.lock()
110
111 acc = MainServicesCfg(flags)
112 acc.merge(egammaReconstructionCfg(flags))
113 acc.printConfig(withDetails=True, printDefaults=True)
114
115 with open("egammareconstructionconfig.pkl", "wb") as f:
116 acc.store(f)
egammaReconstructionCfg(flags, name="egammaReconstruction")