ATLAS Offline Software
Loading...
Searching...
No Matches
egammaMVACalibConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 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
14
15def egammaMVASvcCfg(flags, name="egammaMVASvc", **kwargs):
16
17 acc = ComponentAccumulator()
18
19 kwargs.setdefault("folder", flags.Egamma.Calib.MVAVersion)
20
21 if "ElectronTool" not in kwargs:
22 kwargs["ElectronTool"] = acc.popToolsAndMerge(
24 flags,
25 name="electronMVATool",
26 ParticleType=xAOD.EgammaParameters.electron,
27 folder=kwargs['folder'])
28 )
29
30 if flags.Egamma.doForwardCalib and "FwdElectronTool" not in kwargs:
31 kwargs["FwdElectronTool"] = acc.popToolsAndMerge(
33 flags,
34 name="fwdelectronMVATool",
35 ParticleType=xAOD.EgammaParameters.forwardelectron,
36 ShiftType=0,
37 folder=kwargs['folder'])
38 )
39
40 if "UnconvertedPhotonTool" not in kwargs:
41 kwargs["UnconvertedPhotonTool"] = acc.popToolsAndMerge(
43 flags,
44 name="unconvertedPhotonMVATool",
45 ParticleType=xAOD.EgammaParameters.unconvertedPhoton,
46 folder=kwargs['folder'])
47 )
48
49 if "ConvertedPhotonTool" not in kwargs:
50 kwargs["ConvertedPhotonTool"] = acc.popToolsAndMerge(
52 flags,
53 name="convertedPhotonMVATool",
54 ParticleType=xAOD.EgammaParameters.convertedPhoton,
55 folder=kwargs['folder'])
56 )
57
58 acc.addService(
59 CompFactory.egammaMVASvc(
60 name=name,
61 **kwargs), primary=True)
62 return acc
63
64
65if __name__ == "__main__":
66
67 from AthenaConfiguration.AllConfigFlags import initConfigFlags
68 from AthenaConfiguration.ComponentAccumulator import printProperties
69 from AthenaConfiguration.TestDefaults import defaultTestFiles
70 flags = initConfigFlags()
71 flags.Input.Files = defaultTestFiles.RDO_RUN2
72 flags.fillFromArgs()
73 flags.lock()
74
75 cfg = ComponentAccumulator()
76 mlog = logging.getLogger("egammaMVASvcConfigTest")
77 mlog.info("Configuring egammaMVASvc :")
78 printProperties(mlog, cfg.getPrimaryAndMerge(
79 egammaMVASvcCfg(flags,
80 folder=flags.Egamma.Calib.MVAVersion)),
81 nestLevel=1,
82 printDefaults=True)
83 cfg.printConfig()
84
85 f = open("egmvatools.pkl", "wb")
86 cfg.store(f)
87 f.close()
egammaMVASvcCfg(flags, name="egammaMVASvc", **kwargs)