ATLAS Offline Software
egammaMVACalibConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaCommon.Logging import logging
4 from AthenaConfiguration.ComponentFactory import CompFactory
5 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6 from xAODEgamma.xAODEgammaParameters import xAOD
7 
8 
9 def egammaMVAToolCfg(flags, **kwargs):
10  acc = ComponentAccumulator()
11  acc.setPrivateTools(CompFactory.egammaMVACalibTool(**kwargs))
12  return acc
13 
14 
15 def 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 
65 if __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 
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()
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:342
python.egammaMVACalibConfig.egammaMVASvcCfg
def egammaMVASvcCfg(flags, name="egammaMVASvc", **kwargs)
Definition: egammaMVACalibConfig.py:15
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
python.egammaMVACalibConfig.egammaMVAToolCfg
def egammaMVAToolCfg(flags, **kwargs)
Definition: egammaMVACalibConfig.py:9