ATLAS Offline Software
egammaTruthAssociationConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 """ Configure egammaTruthAssociation
4 """
5 
6 
7 from MCTruthClassifier.MCTruthClassifierConfig import (
8  MCTruthClassifierCaloTruthMatchCfg)
9 
10 from AthenaCommon.Logging import logging
11 from AthenaConfiguration.ComponentFactory import CompFactory
12 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
13 
14 
15 def egammaTruthAssociationCfg(flags, name='egammaTruthAssociation',
16  sequenceName = None,
17  **kwargs):
18 
19  seqkw = {'sequence': sequenceName} if sequenceName else {}
20  acc = ComponentAccumulator (**seqkw)
21 
22  if "MCTruthClassifier" not in kwargs:
23  kwargs["MCTruthClassifier"] = acc.popToolsAndMerge(
25 
26  kwargs.setdefault(
27  "ClusterContainerName",
28  flags.Egamma.Keys.Output.CaloClusters)
29  kwargs.setdefault(
30  "ElectronContainerName",
31  flags.Egamma.Keys.Output.Electrons)
32  kwargs.setdefault(
33  "PhotonContainerName",
34  flags.Egamma.Keys.Output.Photons)
35  kwargs.setdefault(
36  "FwdElectronContainerName",
37  flags.Egamma.Keys.Output.ForwardElectrons)
38  kwargs.setdefault(
39  "TruthEventContainerName",
40  flags.Egamma.Keys.Input.TruthEvents)
41  kwargs.setdefault(
42  "TruthParticleContainerName",
43  flags.Egamma.Keys.Input.TruthParticles)
44  kwargs.setdefault(
45  "EgammaTruthContainerName",
46  flags.Egamma.Keys.Output.TruthParticles)
47  kwargs.setdefault(
48  "MatchForwardElectrons",
49  flags.Egamma.doForward)
50  kwargs.setdefault(
51  "UPCmode",
52  flags.Egamma.doLowMu)
53 
54  egtruthAlg = CompFactory.egammaTruthAssociationAlg(name, **kwargs)
55 
56  acc.addEventAlgo(egtruthAlg)
57  return acc
58 
59 
60 if __name__ == "__main__":
61  from AthenaConfiguration.AllConfigFlags import initConfigFlags
62  from AthenaConfiguration.TestDefaults import defaultTestFiles
63  from AthenaConfiguration.ComponentAccumulator import printProperties
64  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
65  flags = initConfigFlags()
66  flags.Input.Files = defaultTestFiles.RDO_RUN2
67  flags.lock()
68  acc = MainServicesCfg(flags)
69  mlog = logging.getLogger("egammaTruthAssociationConfigTest")
70  mlog.info("Configuring egammaTruthAssociation: ")
71  acc.merge(egammaTruthAssociationCfg(flags))
72  printProperties(mlog,
73  acc.getEventAlgo("egammaTruthAssociation"),
74  nestLevel=1,
75  printDefaults=True)
76  with open("egammatruthassociation.pkl", "wb") as f:
77  acc.store(f)
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:312
extractSporadic.printProperties
def printProperties(h, q, hLB)
Definition: extractSporadic.py:7
Trk::open
@ open
Definition: BinningType.h:40
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
egammaTruthAssociationConfig.egammaTruthAssociationCfg
def egammaTruthAssociationCfg(flags, name='egammaTruthAssociation', sequenceName=None, **kwargs)
Definition: egammaTruthAssociationConfig.py:15
MCTruthClassifierConfig.MCTruthClassifierCaloTruthMatchCfg
def MCTruthClassifierCaloTruthMatchCfg(flags, name="MCTruthClassifier", **kwargs)
Definition: MCTruthClassifier/python/MCTruthClassifierConfig.py:23