ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TriggerCommon
TriggerMenuMT
python
HLT
Electron
TrigElectronFactoriesCfg.py
Go to the documentation of this file.
1
#
2
# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
#
4
5
__doc__ =
"ToolFactories to configure egammaAlgs to be used at the HLT"
6
7
"""
8
This file defines the factories of the algorithms to be used in an electron trigger sequence in athenaMT
9
These are inspired by the offline factories, alhtough modified so they reflect the configuration we need for these algorithms at the HLT.
10
Offline configurations are available here:
11
https://gitlab.cern.ch/atlas/athena/blob/master/Reconstruction/egamma/egammaAlgs/python/
12
13
14
"""
15
16
from
AthenaConfiguration.ComponentFactory
import
CompFactory
17
from
AthenaConfiguration.ComponentAccumulator
import
ComponentAccumulator
18
from
AthenaConfiguration.Enums
import
BeamType
19
20
def
TrigEMTrackMatchBuilderToolCfg
(flags,tag,trackparticles):
21
acc = ComponentAccumulator()
22
name=
'TrigEMTrackMatchBuilder'
+tag
23
from
egammaTrackTools.egammaTrackToolsConfig
import
EMExtrapolationToolsCfg
24
emExtrapolatorTools = acc.popToolsAndMerge(EMExtrapolationToolsCfg(flags))
25
builderTool = CompFactory.EMTrackMatchBuilder( name,
#TODO, this is provate tool, it does not need to be specifically named
26
TrackParticlesName = trackparticles,
27
ExtrapolationTool = emExtrapolatorTools,
28
broadDeltaEta = 0.1,
#candidate match is done in 2 times this so +- 0.2
29
broadDeltaPhi = 0.15,
#candidate match is done in 2 times this so +- 0.3
30
useCandidateMatch =
True
,
31
useScoring =
True
,
32
SecondPassRescale =
True
,
33
UseRescaleMetric =
True
,
34
isCosmics = flags.Beam.Type
is
BeamType.Cosmics)
35
acc.setPrivateTools(builderTool)
36
return
acc
37
38
39
def
TrigEgammaRecElectronCfg
(flags, tag, trackparticles, calocluster, egammaRecContainer):
40
acc = ComponentAccumulator()
41
name =
'TrigEgammaRecElectron'
+tag
42
electronRec = CompFactory.egammaRecBuilder( name,
43
InputClusterContainerName= calocluster,
44
egammaRecContainer= egammaRecContainer,
45
doConversions =
False
,
46
TrackMatchBuilderTool = acc.popToolsAndMerge(
TrigEMTrackMatchBuilderToolCfg
(flags, tag, trackparticles)) )
47
acc.addEventAlgo(electronRec)
48
return
acc
49
50
51
def
TrigElectronSuperClusterBuilderCfg
(flags, tag, InputEgammaRecContainerName, SuperElectronRecCollectionName,trackparticles):
52
acc = ComponentAccumulator()
53
from
egammaTools.egammaSwToolConfig
import
egammaSwToolCfg
54
from
egammaMVACalib.egammaMVACalibConfig
import
egammaMVASvcCfg
55
superClusterBuilder = CompFactory.electronSuperClusterBuilder(
'TrigElectronSuperClusterBuilder'
+tag,
56
InputEgammaRecContainerName = InputEgammaRecContainerName,
57
OutputEgammaRecContainerKey = SuperElectronRecCollectionName,
58
ClusterCorrectionTool = acc.popToolsAndMerge(egammaSwToolCfg(flags)),
59
MVACalibSvc = acc.getPrimaryAndMerge(egammaMVASvcCfg(flags)),
60
EtThresholdCut = 1000,
61
TrackMatchBuilderTool = acc.popToolsAndMerge(
TrigEMTrackMatchBuilderToolCfg
(flags, tag, trackparticles)),
62
LinkToConstituents =
False
)
63
acc.addEventAlgo(superClusterBuilder)
64
return
acc
65
66
67
68
def
TrigEMClusterToolCfg
(flags,variant,OutputClusterContainerName):
69
acc = ComponentAccumulator()
70
from
egammaMVACalib.egammaMVACalibConfig
import
egammaMVASvcCfg
71
tool = CompFactory.EMClusterTool(
'TrigEMClusterTool_electron'
+variant,
72
OutputClusterContainerName = OutputClusterContainerName,
73
MVACalibSvc = acc.getPrimaryAndMerge(egammaMVASvcCfg(flags))
74
)
75
acc.setPrivateTools(tool)
76
return
acc
77
78
79
def
TrigTopoEgammaElectronCfg
(flags, tag, variant, cellsName, InputElectronRecCollectionName, InputPhotonRecCollectionName, ElectronOutputName, PhotonOutputName, OutputClusterContainerName):
80
acc = ComponentAccumulator()
81
from
egammaTools.EMShowerBuilderConfig
import
EMShowerBuilderCfg
82
builder = CompFactory.xAODEgammaBuilder(name=
'topoEgammaBuilder_TrigElectrons'
+tag,
83
InputElectronRecCollectionName = InputElectronRecCollectionName,
84
InputPhotonRecCollectionName = InputPhotonRecCollectionName,
85
ElectronOutputName = ElectronOutputName,
86
PhotonOutputName = PhotonOutputName,
87
DummyElectronOutputName =
"HLT_PrecisionDummyElectron"
,
88
AmbiguityTool = CompFactory.EGammaAmbiguityTool(),
89
EMClusterTool = acc.popToolsAndMerge(
TrigEMClusterToolCfg
(flags,variant,OutputClusterContainerName)),
90
EMShowerTool = acc.popToolsAndMerge(EMShowerBuilderCfg(flags, CellsName=cellsName)),
91
doPhotons =
False
,
92
doElectrons =
True
)
93
acc.addEventAlgo(builder)
94
return
acc
95
96
97
def
TrigTrackIsolationToolCfg
(flags,tag,trackParticleLocation):
98
from
InDetTrackSelectionTool.InDetTrackSelectionToolConfig
import
(
99
InDetTrackSelectionTool_Loose_Cfg)
100
acc = ComponentAccumulator()
101
102
tpicTool = CompFactory.xAOD.TrackParticlesInConeTool(TrackParticleLocation = trackParticleLocation)
103
tiTool = CompFactory.xAOD.TrackIsolationTool(name=
'TrigTrackIsolationTool'
+tag,
104
TrackParticleLocation = trackParticleLocation,
105
VertexLocation =
''
,
106
TracksInConeTool = tpicTool,
107
TrackSelectionTool = acc.popToolsAndMerge(
108
InDetTrackSelectionTool_Loose_Cfg(flags, maxZ0SinTheta = 3, minPt = 1000)))
109
acc.setPrivateTools(tiTool)
110
return
acc
111
112
113
def
TrigElectronIsoBuilderCfg
(flags, tag, TrackParticleLocation, electronCollectionContainerName, useBremAssoc):
114
acc = ComponentAccumulator()
115
from
xAODPrimitives.xAODIso
import
xAODIso
as
isoPar
116
builder = CompFactory.IsolationBuilder(
117
name =
'TrigElectronIsolationBuilder'
+tag,
118
ElectronCollectionContainerName = electronCollectionContainerName,
119
CaloCellIsolationTool =
None
,
120
CaloTopoIsolationTool =
None
,
121
PFlowIsolationTool =
None
,
122
useBremAssoc = useBremAssoc,
123
TrackIsolationTool = acc.popToolsAndMerge(
TrigTrackIsolationToolCfg
(flags,tag,TrackParticleLocation)),
124
ElIsoTypes = [[isoPar.ptcone30,isoPar.ptcone20]],
125
ElCorTypes = [[isoPar.coreTrackPtr]],
126
ElCorTypesExtra = [[]],
127
IsTrigger =
True
)
128
acc.addEventAlgo(builder)
129
return
acc
130
131
def
PrecisionElectronTopoMonitorCfg
(flags, tag, electronKey, isoVarKeys):
132
acc = ComponentAccumulator()
133
name =
'PrecisionElectronTopoMonitoring'
+tag
134
from
TrigEgammaMonitoring.egammaMonitorPrecisionConfig
import
egammaMonitorPrecisionCfg
135
monTool = egammaMonitorPrecisionCfg(flags, name)
136
PrecisionElectronTopoMonitor = CompFactory.egammaMonitorElectronAlgorithm(
137
name = name,
138
ElectronKey = electronKey,
139
IsoVarKeys = isoVarKeys,
140
MonTool = monTool)
141
acc.addEventAlgo(PrecisionElectronTopoMonitor)
142
return
acc
143
144
def
PrecisionElectronSuperClusterMonitorCfg
(flags, tag, inputEgammaRecContainerName):
145
acc = ComponentAccumulator()
146
name =
'PrecisionElectronSuperClusterMonitoring'
+tag
147
from
TrigEgammaMonitoring.egammaMonitorPrecisionConfig
import
egammaMonitorSuperClusterCfg
148
monTool = egammaMonitorSuperClusterCfg(flags, name)
149
PrecisionElectronSuperClusterMonitor = CompFactory.egammaMonitorSuperClusterAlgorithm(
150
name = name,
151
InputEgammaRecContainerName = inputEgammaRecContainerName,
152
MonTool = monTool)
153
acc.addEventAlgo(PrecisionElectronSuperClusterMonitor)
154
return
acc
155
python.HLT.Electron.TrigElectronFactoriesCfg.TrigTopoEgammaElectronCfg
TrigTopoEgammaElectronCfg(flags, tag, variant, cellsName, InputElectronRecCollectionName, InputPhotonRecCollectionName, ElectronOutputName, PhotonOutputName, OutputClusterContainerName)
Definition
TrigElectronFactoriesCfg.py:79
python.HLT.Electron.TrigElectronFactoriesCfg.PrecisionElectronTopoMonitorCfg
PrecisionElectronTopoMonitorCfg(flags, tag, electronKey, isoVarKeys)
Definition
TrigElectronFactoriesCfg.py:131
python.HLT.Electron.TrigElectronFactoriesCfg.PrecisionElectronSuperClusterMonitorCfg
PrecisionElectronSuperClusterMonitorCfg(flags, tag, inputEgammaRecContainerName)
Definition
TrigElectronFactoriesCfg.py:144
python.HLT.Electron.TrigElectronFactoriesCfg.TrigEMTrackMatchBuilderToolCfg
TrigEMTrackMatchBuilderToolCfg(flags, tag, trackparticles)
Definition
TrigElectronFactoriesCfg.py:20
python.HLT.Electron.TrigElectronFactoriesCfg.TrigElectronIsoBuilderCfg
TrigElectronIsoBuilderCfg(flags, tag, TrackParticleLocation, electronCollectionContainerName, useBremAssoc)
Definition
TrigElectronFactoriesCfg.py:113
python.HLT.Electron.TrigElectronFactoriesCfg.TrigTrackIsolationToolCfg
TrigTrackIsolationToolCfg(flags, tag, trackParticleLocation)
Definition
TrigElectronFactoriesCfg.py:97
python.HLT.Electron.TrigElectronFactoriesCfg.TrigElectronSuperClusterBuilderCfg
TrigElectronSuperClusterBuilderCfg(flags, tag, InputEgammaRecContainerName, SuperElectronRecCollectionName, trackparticles)
Definition
TrigElectronFactoriesCfg.py:51
python.HLT.Electron.TrigElectronFactoriesCfg.TrigEgammaRecElectronCfg
TrigEgammaRecElectronCfg(flags, tag, trackparticles, calocluster, egammaRecContainer)
Definition
TrigElectronFactoriesCfg.py:39
python.HLT.Electron.TrigElectronFactoriesCfg.TrigEMClusterToolCfg
TrigEMClusterToolCfg(flags, variant, OutputClusterContainerName)
Definition
TrigElectronFactoriesCfg.py:68
Generated on
for ATLAS Offline Software by
1.17.0