ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
egamma
egammaMVACalib
python
egammaMVACalibConfig.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2026 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
def
egammaTransformerToolCfg
(flags, **kwargs):
15
acc = ComponentAccumulator()
16
from
egammaAlgs.egammaAODFixesConfig
import
runAODFix
17
_, fixes = runAODFix(flags)
18
# cluster AOD fix done, do not try to recover. If HI, no timing cut, so no fix here
19
if
(
'egClusterL2_3Fix'
in
fixes)
or
flags.Reco.EnableHI:
20
kwargs[
'egammaCellRecoveryTool'
] =
None
21
kwargs[
'useFixForMissingCells'
] =
False
22
acc.setPrivateTools(CompFactory.egammaTransformerCalibTool(**kwargs))
23
return
acc
24
25
def
egammaMVASvcCfg
(flags, name="egammaMVASvc", **kwargs):
26
27
acc = ComponentAccumulator()
28
29
kwargs.setdefault(
"folder"
, flags.Egamma.Calib.MVAVersion)
30
31
if
"ElectronTool"
not
in
kwargs:
32
kwargs[
"ElectronTool"
] = acc.popToolsAndMerge(
33
egammaMVAToolCfg
(
34
flags,
35
name=
"electronMVATool"
,
36
ParticleType=xAOD.EgammaParameters.electron,
37
folder=kwargs[
'folder'
])
38
)
39
40
if
flags.Egamma.doForwardCalib
and
"FwdElectronTool"
not
in
kwargs:
41
kwargs[
"FwdElectronTool"
] = acc.popToolsAndMerge(
42
egammaMVAToolCfg
(
43
flags,
44
name=
"fwdelectronMVATool"
,
45
ParticleType=xAOD.EgammaParameters.forwardelectron,
46
ShiftType=0,
47
folder=kwargs[
'folder'
])
48
)
49
50
if
"UnconvertedPhotonTool"
not
in
kwargs:
51
kwargs[
"UnconvertedPhotonTool"
] = acc.popToolsAndMerge(
52
egammaMVAToolCfg
(
53
flags,
54
name=
"unconvertedPhotonMVATool"
,
55
ParticleType=xAOD.EgammaParameters.unconvertedPhoton,
56
folder=kwargs[
'folder'
])
57
)
58
59
if
"ConvertedPhotonTool"
not
in
kwargs:
60
kwargs[
"ConvertedPhotonTool"
] = acc.popToolsAndMerge(
61
egammaMVAToolCfg
(
62
flags,
63
name=
"convertedPhotonMVATool"
,
64
ParticleType=xAOD.EgammaParameters.convertedPhoton,
65
folder=kwargs[
'folder'
])
66
)
67
68
acc.addService(
69
CompFactory.egammaMVASvc(
70
name=name,
71
**kwargs), primary=
True
)
72
return
acc
73
74
def
egammaTransformerSvcCfg
(flags, name="egammaTransformerSvc", **kwargs):
75
76
acc = ComponentAccumulator()
77
78
kwargs.setdefault(
"folder"
, flags.Egamma.Calib.TransformerVersion)
79
if
"ElectronTool"
not
in
kwargs:
80
kwargs[
"ElectronTool"
] = acc.popToolsAndMerge(
81
egammaTransformerToolCfg
(
82
flags,
83
name=
"electronTransformerTool"
,
84
ParticleType=xAOD.EgammaParameters.electron,
85
folder=kwargs[
'folder'
],
86
isMC = flags.Input.isMC),
87
)
88
89
if
"UnconvertedPhotonTool"
not
in
kwargs:
90
kwargs[
"UnconvertedPhotonTool"
] = acc.popToolsAndMerge(
91
egammaTransformerToolCfg
(
92
flags,
93
name=
"unconvertedPhotonTransformerTool"
,
94
ParticleType=xAOD.EgammaParameters.unconvertedPhoton,
95
folder=kwargs[
'folder'
],
96
isMC = flags.Input.isMC),
97
)
98
99
if
"ConvertedPhotonTool"
not
in
kwargs:
100
kwargs[
"ConvertedPhotonTool"
] = acc.popToolsAndMerge(
101
egammaTransformerToolCfg
(
102
flags,
103
name=
"convertedPhotonTransformerTool"
,
104
ParticleType=xAOD.EgammaParameters.convertedPhoton,
105
folder=kwargs[
'folder'
],
106
isMC = flags.Input.isMC),
107
)
108
109
kwargs[
'RemoveTRTConvBarrel'
] = 1
110
acc.addService(
111
CompFactory.egammaMVASvc(
112
name=name,
113
**kwargs), primary=
True
)
114
return
acc
115
116
if
__name__ ==
"__main__"
:
117
118
from
AthenaConfiguration.AllConfigFlags
import
initConfigFlags
119
from
AthenaConfiguration.ComponentAccumulator
import
printProperties
120
from
AthenaConfiguration.TestDefaults
import
defaultTestFiles
121
flags = initConfigFlags()
122
flags.Input.Files = defaultTestFiles.RDO_RUN2
123
flags.fillFromArgs()
124
flags.lock()
125
126
cfg = ComponentAccumulator()
127
mlog = logging.getLogger(
"egammaMVASvcConfigTest"
)
128
mlog.info(
"Configuring egammaMVASvc :"
)
129
printProperties(mlog, cfg.getPrimaryAndMerge(
130
egammaMVASvcCfg
(flags)),
131
nestLevel=1,
132
printDefaults=
True
)
133
printProperties(mlog, cfg.getPrimaryAndMerge(
134
egammaTransformerSvcCfg
(flags)),
135
nestLevel=1,
136
printDefaults=
True
)
137
cfg.printConfig()
138
139
f = open(
"egmvatools.pkl"
,
"wb"
)
140
cfg.store(f)
141
f.close()
python.egammaMVACalibConfig.egammaMVASvcCfg
egammaMVASvcCfg(flags, name="egammaMVASvc", **kwargs)
Definition
egammaMVACalibConfig.py:25
python.egammaMVACalibConfig.egammaMVAToolCfg
egammaMVAToolCfg(flags, **kwargs)
Definition
egammaMVACalibConfig.py:9
python.egammaMVACalibConfig.egammaTransformerSvcCfg
egammaTransformerSvcCfg(flags, name="egammaTransformerSvc", **kwargs)
Definition
egammaMVACalibConfig.py:74
python.egammaMVACalibConfig.egammaTransformerToolCfg
egammaTransformerToolCfg(flags, **kwargs)
Definition
egammaMVACalibConfig.py:14
Generated on
for ATLAS Offline Software by
1.17.0