ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TriggerCommon
TriggerMenuMT
python
HLT
Egamma
TrigEgammaFactoriesCfg.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3
from
AthenaConfiguration.ComponentFactory
import
CompFactory
4
from
AthenaConfiguration.ComponentAccumulator
import
ComponentAccumulator
5
from
TriggerMenuMT.HLT.Egamma.TrigEgammaKeys
import
getTrigEgammaKeys
6
7
def
TrigEgammaRecCfg
(flags, name= "trigEgammaRec"):
8
acc = ComponentAccumulator()
9
TrigEgammaKeys = getTrigEgammaKeys(flags)
10
egammaRec = CompFactory.egammaRecBuilder( name = name,
11
InputClusterContainerName = TrigEgammaKeys.precisionCaloTopoCollection,
# input,
12
egammaRecContainer = TrigEgammaKeys.precisionCaloEgammaRecCollection,
# output,
13
doTrackMatching =
False
,
14
# Builder tools
15
TrackMatchBuilderTool =
None
,
# Don't want to use these for trigger....
16
ConversionBuilderTool =
None
,
17
doConversions =
False
)
18
acc.addEventAlgo(egammaRec)
19
return
acc
20
21
def
TrigEgammaSuperClusterBuilderCfg
(flags, name, calibrationType, superClusterCollectionName, superegammaRecCollectionName):
22
acc = ComponentAccumulator()
23
TrigEgammaKeys = getTrigEgammaKeys(flags)
24
from
egammaTools.egammaSwToolConfig
import
egammaSwToolCfg
25
from
egammaMVACalib.egammaMVACalibConfig
import
egammaMVASvcCfg
26
trigMVAfolder = flags.Trigger.egamma.Calib.precCaloMVAVersion
27
TrigEgammaSuperClusterBuilder = CompFactory.egammaSuperClusterBuilder(
28
name = name,
29
InputEgammaRecContainerName = TrigEgammaKeys.precisionCaloEgammaRecCollection,
30
SuperClusterCollectionName = superClusterCollectionName,
31
OutputEgammaRecContainerKey = superegammaRecCollectionName,
# output,
32
ClusterCorrectionTool = acc.popToolsAndMerge(egammaSwToolCfg(flags)),
33
MVACalibSvc = acc.getPrimaryAndMerge(egammaMVASvcCfg(flags,name=
"trigPrecCaloEgammaMVASvc"
,folder = trigMVAfolder)),
34
CalibrationType = calibrationType,
35
EtThresholdCut = 1000,
36
LinkToConstituents =
False
)
37
acc.addEventAlgo(TrigEgammaSuperClusterBuilder)
38
return
acc
39
40
def
TrigCaloClustersInConeToolCfg
(flags, ion):
41
acc = ComponentAccumulator()
42
from
TriggerMenuMT.HLT.CommonSequences.FullScanDefs
import
em_clusters
43
name =
"TrigCaloClustersInConeToolHI"
if
ion
else
"TrigCaloClustersInConeTool"
44
tool = CompFactory.xAOD.CaloClustersInConeTool(name = name,
45
CaloClusterLocation = em_clusters)
# FS topo calo clusters
46
acc.setPrivateTools(tool)
47
return
acc
48
49
def
TrigCaloIsoCorrectionToolCfg
(flags):
50
acc = ComponentAccumulator()
51
tool = CompFactory.CP.IsolationCorrectionTool(name =
"TrigLeakageCorrTool"
)
52
acc.setPrivateTools(tool)
53
return
acc
54
55
def
CaloFillRectangularClusterCfg
(flags, **kwargs):
56
result = ComponentAccumulator()
57
kwargs.setdefault(
"eta_size"
, 5)
58
kwargs.setdefault(
"phi_size"
, 7)
59
kwargs.setdefault(
"cells_name"
,
'CaloCells'
)
60
result.setPrivateTools(CompFactory.CaloFillRectangularCluster(**kwargs))
61
return
result
62
63
def
TrigCaloIsolationToolCfg_HI
(flags):
64
acc = ComponentAccumulator()
65
name =
"TrigCaloIsolationToolHI"
66
from
CaloIdentifier
import
SUBCALO
67
tool = CompFactory.xAOD.CaloIsolationTool(name = name,
68
CaloFillRectangularClusterTool = acc.popToolsAndMerge(
CaloFillRectangularClusterCfg
(flags,name=
"trigegamma_CaloFillRectangularCluster_HI"
)),
69
ClustersInConeTool = acc.popToolsAndMerge(
TrigCaloClustersInConeToolCfg
(flags,ion=
True
)),
70
FlowElementsInConeTool =
None
,
71
ParticleCaloExtensionTool =
None
,
72
IsoLeakCorrectionTool = acc.popToolsAndMerge(
TrigCaloIsoCorrectionToolCfg
(flags)),
73
ParticleCaloCellAssociationTool =
None
,
74
saveOnlyRequestedCorrections =
True
,
75
InitializeReadHandles =
False
,
76
doEnergyDensityCorrection =
True
,
77
UseEMScale =
True
,
78
EMCaloNums = [SUBCALO.LAREM],
79
HadCaloNums = [SUBCALO.LARHEC, SUBCALO.TILE])
80
acc.setPrivateTools(tool)
81
return
acc
82
83
def
TrigCaloIsolationToolCfg
(flags):
84
acc = ComponentAccumulator()
85
name =
"TrigCaloIsolationTool"
86
from
CaloIdentifier
import
SUBCALO
87
tool = CompFactory.xAOD.CaloIsolationTool(name = name,
88
CaloFillRectangularClusterTool = acc.popToolsAndMerge(
CaloFillRectangularClusterCfg
(flags,name=
"trigegamma_CaloFillRectangularCluster"
)),
89
ClustersInConeTool = acc.popToolsAndMerge(
TrigCaloClustersInConeToolCfg
(flags,ion=
False
)),
90
FlowElementsInConeTool =
None
,
91
ParticleCaloExtensionTool =
None
,
92
IsoLeakCorrectionTool = acc.popToolsAndMerge(
TrigCaloIsoCorrectionToolCfg
(flags)),
93
ParticleCaloCellAssociationTool =
None
,
94
saveOnlyRequestedCorrections =
True
,
95
InitializeReadHandles =
True
,
96
TopoClusterEDCentralContainer =
'TrigIsoEventShape'
,
97
TopoClusterEDForwardContainer =
'TrigIsoEventShape'
,
98
EFlowEDCentralContainer =
'TrigIsoEventShape'
,
99
EFlowEDForwardContainer =
'TrigIsoEventShape'
,
100
EMCaloNums = [SUBCALO.LAREM],
101
HadCaloNums = [SUBCALO.LARHEC, SUBCALO.TILE])
102
acc.setPrivateTools(tool)
103
return
acc
104
105
106
def
TrigPhotonIsoBuilderCfg
(flags, ion = False):
107
acc = ComponentAccumulator()
108
TrigEgammaKeys = getTrigEgammaKeys(flags, ion=ion)
109
if
ion:
110
name =
'TrigPhotonIsolationBuilderHI'
111
TrigCaloIsolationTool =
TrigCaloIsolationToolCfg_HI
(flags)
112
else
:
113
name =
'TrigPhotonIsolationBuilder'
114
TrigCaloIsolationTool =
TrigCaloIsolationToolCfg
(flags)
115
116
from
xAODPrimitives.xAODIso
import
xAODIso
as
isoPar
117
TrigPhotonIsolationBuilder = CompFactory.IsolationBuilder(name = name,
118
PhotonCollectionContainerName = TrigEgammaKeys.precisionPhotonContainer,
119
CaloCellIsolationTool =
None
,
120
CaloTopoIsolationTool = acc.popToolsAndMerge(TrigCaloIsolationTool),
121
PFlowIsolationTool =
None
,
122
TrackIsolationTool =
None
,
123
PhIsoTypes = [[isoPar.topoetcone20, isoPar.topoetcone30, isoPar.topoetcone40]],
124
PhCorTypes = [[isoPar.core57cells, isoPar.pileupCorrection]],
125
PhCorTypesExtra = [[]],
126
)
127
acc.addEventAlgo(TrigPhotonIsolationBuilder)
128
return
acc
129
130
131
def
TrigEgammaPseudoJetAlgCfg
(flags, name='TrigPhotonEgammaPSeudoJetBuilder'):
132
acc = ComponentAccumulator()
133
# This is to run pseudoJetAlgorithm to compute event density over FullScan TopoClusters
134
TrigEgammaPseudoJetAlgBuilder = CompFactory.PseudoJetAlgorithm(name = name,
135
Label =
"EMTopo"
,
136
InputContainer =
"HLT_TopoCaloClustersFS"
,
137
OutputContainer =
"PseudoJetTrigEMTopo"
,
138
SkipNegativeEnergy =
True
)
139
acc.addEventAlgo(TrigEgammaPseudoJetAlgBuilder)
140
return
acc
141
142
143
def
TrigConfigEventDensityToolCfg
( flags, **kwargs ):
144
acc = ComponentAccumulator()
145
kwargs.setdefault(
"JetAlgorithm"
,
"Kt"
)
146
kwargs.setdefault(
"JetRadius"
, 0.5)
147
kwargs.setdefault(
"InputContainer"
,
"PseudoJetTrigEMTopo"
)
148
kwargs.setdefault(
"AbsRapidityMin"
,0.0)
149
kwargs.setdefault(
"AbsRapidityMax"
,2.0)
150
kwargs.setdefault(
"AreaDefinition"
,
"Voronoi"
)
151
kwargs.setdefault(
"VoronoiRfact"
,0.9)
152
kwargs.setdefault(
"OutputContainer"
,
'TrigIsoEventShape'
)
153
acc.setPrivateTools(CompFactory.EventDensityTool(**kwargs))
154
return
acc
155
156
157
def
TrigIsoEventShapeAlgCfg
(flags, name = 'TrigPhotonIsoEventShapeAlg'):
158
acc = ComponentAccumulator()
159
TrigIsoEventShapeAlg = CompFactory.EventDensityAthAlg(name = name,
160
EventDensityTool = acc.popToolsAndMerge(
TrigConfigEventDensityToolCfg
(flags=flags,name=
"TrigIsoTool"
)))
161
acc.addEventAlgo(TrigIsoEventShapeAlg)
162
return
acc
163
164
165
def
TrigEgammaFSEventDensitySequenceCfg
(flags, name = 'TrigEgammaFSEventDensitySequence'):
166
acc = ComponentAccumulator()
167
from
TrigCaloRec.TrigCaloRecConfig
import
jetmetTopoClusteringCfg
168
acc.merge(jetmetTopoClusteringCfg(flags,
169
RoIs =
''
) )
170
acc.merge(
TrigEgammaPseudoJetAlgCfg
(flags))
171
acc.merge(
TrigIsoEventShapeAlgCfg
(flags))
172
return
acc
173
174
python.HLT.Egamma.TrigEgammaFactoriesCfg.TrigCaloIsoCorrectionToolCfg
TrigCaloIsoCorrectionToolCfg(flags)
Definition
TrigEgammaFactoriesCfg.py:49
python.HLT.Egamma.TrigEgammaFactoriesCfg.TrigEgammaPseudoJetAlgCfg
TrigEgammaPseudoJetAlgCfg(flags, name='TrigPhotonEgammaPSeudoJetBuilder')
Definition
TrigEgammaFactoriesCfg.py:131
python.HLT.Egamma.TrigEgammaFactoriesCfg.TrigCaloClustersInConeToolCfg
TrigCaloClustersInConeToolCfg(flags, ion)
Definition
TrigEgammaFactoriesCfg.py:40
python.HLT.Egamma.TrigEgammaFactoriesCfg.TrigConfigEventDensityToolCfg
TrigConfigEventDensityToolCfg(flags, **kwargs)
Definition
TrigEgammaFactoriesCfg.py:143
python.HLT.Egamma.TrigEgammaFactoriesCfg.TrigIsoEventShapeAlgCfg
TrigIsoEventShapeAlgCfg(flags, name='TrigPhotonIsoEventShapeAlg')
Definition
TrigEgammaFactoriesCfg.py:157
python.HLT.Egamma.TrigEgammaFactoriesCfg.TrigEgammaSuperClusterBuilderCfg
TrigEgammaSuperClusterBuilderCfg(flags, name, calibrationType, superClusterCollectionName, superegammaRecCollectionName)
Definition
TrigEgammaFactoriesCfg.py:21
python.HLT.Egamma.TrigEgammaFactoriesCfg.CaloFillRectangularClusterCfg
CaloFillRectangularClusterCfg(flags, **kwargs)
Definition
TrigEgammaFactoriesCfg.py:55
python.HLT.Egamma.TrigEgammaFactoriesCfg.TrigCaloIsolationToolCfg_HI
TrigCaloIsolationToolCfg_HI(flags)
Definition
TrigEgammaFactoriesCfg.py:63
python.HLT.Egamma.TrigEgammaFactoriesCfg.TrigEgammaRecCfg
TrigEgammaRecCfg(flags, name="trigEgammaRec")
Definition
TrigEgammaFactoriesCfg.py:7
python.HLT.Egamma.TrigEgammaFactoriesCfg.TrigCaloIsolationToolCfg
TrigCaloIsolationToolCfg(flags)
Definition
TrigEgammaFactoriesCfg.py:83
python.HLT.Egamma.TrigEgammaFactoriesCfg.TrigEgammaFSEventDensitySequenceCfg
TrigEgammaFSEventDensitySequenceCfg(flags, name='TrigEgammaFSEventDensitySequence')
Definition
TrigEgammaFactoriesCfg.py:165
python.HLT.Egamma.TrigEgammaFactoriesCfg.TrigPhotonIsoBuilderCfg
TrigPhotonIsoBuilderCfg(flags, ion=False)
Definition
TrigEgammaFactoriesCfg.py:106
Generated on
for ATLAS Offline Software by
1.17.0