ATLAS Offline Software
egammaReconstructionConfig.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 reconstruction.
4 """
5 
6 from AthenaCommon.Logging import logging
7 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
8 
9 
10 def 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 
27  # === TODO === : Acts EM extrapolator is missing.
28 
29  # from egammaAlgs.egammaSelectedTrackCopyConfig import (
30  # egammaSelectedTrackCopyCfg)
31  # acc.merge(egammaSelectedTrackCopyCfg(flags))
32 
33  from egammaAlgs.ActsEMBremCollectionBuilderConfig import (
34  ActsEMBremCollectionBuilderCfg)
35  acc.merge(ActsEMBremCollectionBuilderCfg(flags))
36 
37  else:
38  from egammaAlgs.egammaSelectedTrackCopyConfig import (
39  egammaSelectedTrackCopyCfg)
40  acc.merge(egammaSelectedTrackCopyCfg(flags))
41 
42  from egammaAlgs.EMBremCollectionBuilderConfig import (
43  EMBremCollectionBuilderCfg)
44  acc.merge(EMBremCollectionBuilderCfg(flags))
45 
46  if (flags.Tracking.writeExtendedSi_PRDInfo or
47  flags.Tracking.writeExtendedTRT_PRDInfo):
48  from DerivationFrameworkInDet.InDetToolsConfig import (
49  GSFTSOS_CommonKernelCfg)
50  acc.merge(GSFTSOS_CommonKernelCfg(flags))
51 
52  # Add e/gamma conversion finding
53  if flags.Egamma.doConversionBuilding:
54  from egammaAlgs.EMVertexBuilderConfig import (
55  EMVertexBuilderCfg)
56  acc.merge(EMVertexBuilderCfg(flags))
57 
58  # Add algorithms to produce
59  # xAOD Electrons and Photons
60  if flags.Egamma.doCentral:
61  from egammaAlgs.egammaRecBuilderConfig import (
62  egammaRecBuilderCfg)
63  acc.merge(egammaRecBuilderCfg(flags))
64 
65  from egammaAlgs.egammaSuperClusterBuilderConfig import (
66  electronSuperClusterBuilderCfg, photonSuperClusterBuilderCfg)
67  acc.merge(electronSuperClusterBuilderCfg(flags))
68  acc.merge(photonSuperClusterBuilderCfg(flags))
69 
70  from egammaAlgs.xAODEgammaBuilderConfig import (
71  xAODEgammaBuilderCfg)
72  acc.merge(xAODEgammaBuilderCfg(flags))
73 
74  from egammaAlgs.egammaLargeClusterMakerAlgConfig import (
75  egammaLargeClusterMakerAlgCfg)
76  acc.merge(egammaLargeClusterMakerAlgCfg(flags))
77 
78  # Add calo seeded forward algorithms to produce xAOD Forward Electrons.
79  if flags.Egamma.doForward:
80  from egammaAlgs.egammaForwardBuilderConfig import (
81  egammaForwardBuilderCfg)
82  acc.merge(egammaForwardBuilderCfg(flags))
83 
84  from egammaAlgs.egammaLargeFWDClusterMakerAlgConfig import (
85  egammaLargeFWDClusterMakerAlgCfg)
86  acc.merge(egammaLargeFWDClusterMakerAlgCfg(flags))
87 
88  # Add truth association.
89  if flags.Egamma.doTruthAssociation:
90  from egammaAlgs.egammaTruthAssociationConfig import (
91  egammaTruthAssociationCfg)
92  acc.merge(egammaTruthAssociationCfg(flags))
93 
94  mlog.info("EGamma reconstruction configured")
95 
96  return acc
97 
98 
99 if __name__ == "__main__":
100  from AthenaConfiguration.AllConfigFlags import initConfigFlags
101  from AthenaConfiguration.TestDefaults import defaultTestFiles
102  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
103  flags = initConfigFlags()
104  flags.Input.Files = defaultTestFiles.RDO_RUN2
105  flags.Output.doWriteESD = True # To test the ESD parts.
106  flags.Output.doWriteAOD = True # To test the AOD parts.
107  flags.lock()
108 
109  acc = MainServicesCfg(flags)
110  acc.merge(egammaReconstructionCfg(flags))
111  acc.printConfig(withDetails=True, printDefaults=True)
112 
113  with open("egammareconstructionconfig.pkl", "wb") as f:
114  acc.store(f)
EMBremCollectionBuilderConfig.EMBremCollectionBuilderCfg
def EMBremCollectionBuilderCfg(flags, name="EMBremCollectionBuilder", **kwargs)
Definition: EMBremCollectionBuilderConfig.py:8
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
EMVertexBuilderConfig.EMVertexBuilderCfg
def EMVertexBuilderCfg(flags, name="EMVertexBuilder", **kwargs)
Definition: EMVertexBuilderConfig.py:8
ActsEMBremCollectionBuilderConfig.ActsEMBremCollectionBuilderCfg
def ActsEMBremCollectionBuilderCfg(flags, name="ActsEMBremCollectionBuilder", **kwargs)
Definition: ActsEMBremCollectionBuilderConfig.py:6
egammaLargeFWDClusterMakerAlgConfig.egammaLargeFWDClusterMakerAlgCfg
def egammaLargeFWDClusterMakerAlgCfg(flags, name="egammaLargeFWDClusterMaker", **kwargs)
Definition: egammaLargeFWDClusterMakerAlgConfig.py:16
python.InDetToolsConfig.GSFTSOS_CommonKernelCfg
def GSFTSOS_CommonKernelCfg(flags, name="GSFTSOS_CommonKernel")
Definition: InDetToolsConfig.py:280
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:312
egammaForwardBuilderConfig.egammaForwardBuilderCfg
def egammaForwardBuilderCfg(flags, name='egammaForwardElectron', **kwargs)
Definition: egammaForwardBuilderConfig.py:13
egammaLargeClusterMakerAlgConfig.egammaLargeClusterMakerAlgCfg
def egammaLargeClusterMakerAlgCfg(flags, name="egammaLargeClusterMaker", **kwargs)
Definition: egammaLargeClusterMakerAlgConfig.py:16
egammaSuperClusterBuilderConfig.electronSuperClusterBuilderCfg
def electronSuperClusterBuilderCfg(flags, name='electronSuperClusterBuilder', sequenceName=None, **kwargs)
Definition: egammaSuperClusterBuilderConfig.py:16
xAODEgammaBuilderConfig.xAODEgammaBuilderCfg
def xAODEgammaBuilderCfg(flags, name='xAODEgammaBuilder', sequenceName=None, **kwargs)
Definition: xAODEgammaBuilderConfig.py:17
Trk::open
@ open
Definition: BinningType.h:40
egammaRecBuilderConfig.egammaRecBuilderCfg
def egammaRecBuilderCfg(flags, name='egammaRecBuilder', sequenceName=None, **kwargs)
Definition: egammaRecBuilderConfig.py:13
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
egammaSelectedTrackCopyConfig.egammaSelectedTrackCopyCfg
def egammaSelectedTrackCopyCfg(flags, name="egammaSelectedTrackCopy", **kwargs)
Definition: egammaSelectedTrackCopyConfig.py:11
egammaTruthAssociationConfig.egammaTruthAssociationCfg
def egammaTruthAssociationCfg(flags, name='egammaTruthAssociation', sequenceName=None, **kwargs)
Definition: egammaTruthAssociationConfig.py:15
egammaSuperClusterBuilderConfig.photonSuperClusterBuilderCfg
def photonSuperClusterBuilderCfg(flags, name='photonSuperClusterBuilder', sequenceName=None, **kwargs)
Definition: egammaSuperClusterBuilderConfig.py:57
egammaTopoClusterCopierConfig.egammaTopoClusterCopierCfg
def egammaTopoClusterCopierCfg(flags, name='', **kwargs)
Definition: egammaTopoClusterCopierConfig.py:11
python.egammaReconstructionConfig.egammaReconstructionCfg
def egammaReconstructionCfg(flags, name="egammaReconstruction")
Definition: egammaReconstructionConfig.py:10