ATLAS Offline Software
Loading...
Searching...
No Matches
egammaTransformerCalibConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3from AthenaCommon.Logging import logging
4from AthenaConfiguration.ComponentFactory import CompFactory
5from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6from xAODEgamma.xAODEgammaParameters import xAOD
7
8
9def egammaTransformerToolCfg(flags, **kwargs):
10 acc = ComponentAccumulator()
11 isMC = flags.Input.isMC
12 kwargs["isMC"] = isMC
13 acc.setPrivateTools(CompFactory.egammaTransformerCalibTool(**kwargs))
14 return acc
15
16
17def egammaTransformerSvcCfg(flags, name="egammaTransformerSvc", **kwargs):
18
19 acc = ComponentAccumulator()
20
21 kwargs.setdefault("folder", flags.Egamma.Calib.TransformerVersion)
22 if "ElectronTool" not in kwargs:
23 kwargs["ElectronTool"] = acc.popToolsAndMerge(
25 flags,
26 name="electronTransformerTool",
27 ParticleType=xAOD.EgammaParameters.electron,
28 folder=kwargs['folder'],
29 isMC = flags.Input.isMC),
30 )
31
32 if flags.Egamma.doForwardCalib and "FwdElectronTool" not in kwargs:
33 kwargs["FwdElectronTool"] = acc.popToolsAndMerge(
35 flags,
36 name="fwdelectronTransformerTool",
37 ParticleType=xAOD.EgammaParameters.forwardelectron,
38 folder=kwargs['folder'],
39 isMC = flags.Input.isMC),
40 )
41
42 if "UnconvertedPhotonTool" not in kwargs:
43 kwargs["UnconvertedPhotonTool"] = acc.popToolsAndMerge(
45 flags,
46 name="unconvertedPhotonTransformerTool",
47 ParticleType=xAOD.EgammaParameters.unconvertedPhoton,
48 folder=kwargs['folder'],
49 isMC = flags.Input.isMC),
50 )
51
52 if "ConvertedPhotonTool" not in kwargs:
53 kwargs["ConvertedPhotonTool"] = acc.popToolsAndMerge(
55 flags,
56 name="convertedPhotonTransformerTool",
57 ParticleType=xAOD.EgammaParameters.convertedPhoton,
58 folder=kwargs['folder'],
59 isMC = flags.Input.isMC),
60 )
61
62 acc.addService(
63 CompFactory.egammaTransformerSvc(
64 name=name,
65 **kwargs), primary=True)
66 return acc
67
68if __name__ == "__main__":
69
70 from AthenaConfiguration.AllConfigFlags import initConfigFlags
71 from AthenaConfiguration.ComponentAccumulator import printProperties
72 from AthenaConfiguration.TestDefaults import defaultTestFiles
73 flags = initConfigFlags()
74 flags.Input.Files = defaultTestFiles.RDO_RUN2
75 flags.fillFromArgs()
76 flags.lock()
77
78 cfg = ComponentAccumulator()
79 mlog = logging.getLogger("egammaTransformerSvcConfigTest")
80 mlog.info("Configuring egammaTransformerSvc :")
81 printProperties(mlog, cfg.getPrimaryAndMerge(
83 folder=flags.Egamma.Calib.TransformerVersion)),
84 nestLevel=1,
85 printDefaults=True)
86 cfg.printConfig()
87
88 f = open("egtransformertools.pkl", "wb")
89 cfg.store(f)
90 f.close()
egammaTransformerSvcCfg(flags, name="egammaTransformerSvc", **kwargs)