ATLAS Offline Software
Loading...
Searching...
No Matches
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
7from MCTruthClassifier.MCTruthClassifierConfig import (
8 MCTruthClassifierCaloTruthMatchCfg)
9
10from AthenaCommon.Logging import logging
11from AthenaConfiguration.ComponentFactory import CompFactory
12from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
13
14
15def 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(
24 MCTruthClassifierCaloTruthMatchCfg(flags))
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
60if __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)
egammaTruthAssociationCfg(flags, name='egammaTruthAssociation', sequenceName=None, **kwargs)