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