ATLAS Offline Software
Loading...
Searching...
No Matches
egammaMVACalibConfig.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 egammaMVAToolCfg(flags, **kwargs):
10 acc = ComponentAccumulator()
11 acc.setPrivateTools(CompFactory.egammaMVACalibTool(**kwargs))
12 return acc
13
14def egammaTransformerToolCfg(flags, **kwargs):
15 acc = ComponentAccumulator()
16 doFix, _ = False, 'dummy'
17 if doFix:
18 kwargs['egammaCellRecoveryTool'] = None
19 kwargs['useFixForMissingCells'] = False
20 acc.setPrivateTools(CompFactory.egammaTransformerCalibTool(**kwargs))
21 return acc
22
23
24def egammaMVASvcCfg(flags, name="egammaMVASvc", **kwargs):
25
26 acc = ComponentAccumulator()
27
28 kwargs.setdefault("folder", flags.Egamma.Calib.MVAVersion)
29
30 if "ElectronTool" not in kwargs:
31 kwargs["ElectronTool"] = acc.popToolsAndMerge(
33 flags,
34 name="electronMVATool",
35 ParticleType=xAOD.EgammaParameters.electron,
36 folder=kwargs['folder'])
37 )
38
39 if flags.Egamma.doForwardCalib and "FwdElectronTool" not in kwargs:
40 kwargs["FwdElectronTool"] = acc.popToolsAndMerge(
42 flags,
43 name="fwdelectronMVATool",
44 ParticleType=xAOD.EgammaParameters.forwardelectron,
45 ShiftType=0,
46 folder=kwargs['folder'])
47 )
48
49 if "UnconvertedPhotonTool" not in kwargs:
50 kwargs["UnconvertedPhotonTool"] = acc.popToolsAndMerge(
52 flags,
53 name="unconvertedPhotonMVATool",
54 ParticleType=xAOD.EgammaParameters.unconvertedPhoton,
55 folder=kwargs['folder'])
56 )
57
58 if "ConvertedPhotonTool" not in kwargs:
59 kwargs["ConvertedPhotonTool"] = acc.popToolsAndMerge(
61 flags,
62 name="convertedPhotonMVATool",
63 ParticleType=xAOD.EgammaParameters.convertedPhoton,
64 folder=kwargs['folder'])
65 )
66
67 acc.addService(
68 CompFactory.egammaMVASvc(
69 name=name,
70 **kwargs), primary=True)
71 return acc
72
73def egammaTransformerSvcCfg(flags, name="egammaTransformerSvc", **kwargs):
74
75 acc = ComponentAccumulator()
76
77 kwargs.setdefault("folder", flags.Egamma.Calib.TransformerVersion)
78 if "ElectronTool" not in kwargs:
79 kwargs["ElectronTool"] = acc.popToolsAndMerge(
81 flags,
82 name="electronTransformerTool",
83 ParticleType=xAOD.EgammaParameters.electron,
84 folder=kwargs['folder'],
85 isMC = flags.Input.isMC),
86 )
87
88 if "UnconvertedPhotonTool" not in kwargs:
89 kwargs["UnconvertedPhotonTool"] = acc.popToolsAndMerge(
91 flags,
92 name="unconvertedPhotonTransformerTool",
93 ParticleType=xAOD.EgammaParameters.unconvertedPhoton,
94 folder=kwargs['folder'],
95 isMC = flags.Input.isMC),
96 )
97
98 if "ConvertedPhotonTool" not in kwargs:
99 kwargs["ConvertedPhotonTool"] = acc.popToolsAndMerge(
101 flags,
102 name="convertedPhotonTransformerTool",
103 ParticleType=xAOD.EgammaParameters.convertedPhoton,
104 folder=kwargs['folder'],
105 isMC = flags.Input.isMC),
106 )
107
108 kwargs['RemoveTRTConvBarrel'] = 1
109 acc.addService(
110 CompFactory.egammaMVASvc(
111 name=name,
112 **kwargs), primary=True)
113 return acc
114
115if __name__ == "__main__":
116
117 from AthenaConfiguration.AllConfigFlags import initConfigFlags
118 from AthenaConfiguration.ComponentAccumulator import printProperties
119 from AthenaConfiguration.TestDefaults import defaultTestFiles
120 flags = initConfigFlags()
121 flags.Input.Files = defaultTestFiles.RDO_RUN2
122 flags.fillFromArgs()
123 flags.lock()
124
125 cfg = ComponentAccumulator()
126 mlog = logging.getLogger("egammaMVASvcConfigTest")
127 mlog.info("Configuring egammaMVASvc :")
128 printProperties(mlog, cfg.getPrimaryAndMerge(
129 egammaMVASvcCfg(flags)),
130 nestLevel=1,
131 printDefaults=True)
132 printProperties(mlog, cfg.getPrimaryAndMerge(
134 nestLevel=1,
135 printDefaults=True)
136 cfg.printConfig()
137
138 f = open("egmvatools.pkl", "wb")
139 cfg.store(f)
140 f.close()
egammaMVASvcCfg(flags, name="egammaMVASvc", **kwargs)
egammaTransformerToolCfg(flags, **kwargs)
egammaTransformerSvcCfg(flags, name="egammaTransformerSvc", **kwargs)