ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigTools
TrigInDetConfig
python
InDetTrigSequence.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3
from
TrigInDetConfig.InnerTrackerTrigSequence
import
InnerTrackerTrigSequence
4
from
AthenaConfiguration.Enums
import
Format
5
from
AthenaConfiguration.ComponentAccumulator
import
ComponentAccumulator
6
from
AthenaConfiguration.ComponentFactory
import
CompFactory
7
from
AthenaConfiguration.AthConfigFlags
import
AthConfigFlags
8
from
AthenaCommon.Logging
import
logging
9
10
11
class
InDetTrigSequence
(InnerTrackerTrigSequence):
12
13
def
__init__
(self,flags : AthConfigFlags, signature : str, rois : str, inView : str):
14
super().
__init__
(flags, signature,rois,inView)
15
self.
log
= logging.getLogger(
"InDetTrigSequence"
)
16
self.
log
.info(f
"signature: {self.signature} rois: {self.rois} inview: {self.inView}"
)
17
18
19
20
def
offlinePattern
(self) -> ComponentAccumulator:
21
22
ca = ComponentAccumulator()
23
24
from
InDetConfig.SiSPSeededTrackFinderConfig
import
TrigSiSPSeededTrackFinderCfg
25
ca.merge(TrigSiSPSeededTrackFinderCfg(self.
flags
,
26
name =
'EFsiSPSeededTrackFinder'
+self.
flags
.Tracking.ActiveConfig.input_name ))
27
28
self.
lastTrkCollection
= self.
flags
.Tracking.ActiveConfig.trkTracks_IDTrig
29
self.
ambiPrefix
=
"EFAmbi"
30
31
return
ca
32
33
34
35
def
viewDataVerifier
(self, viewVerifier='IDViewDataVerifier') -> ComponentAccumulator:
36
37
acc = ComponentAccumulator()
38
39
dataObjs = {(
'InDet::PixelClusterContainerCache'
, self.
flags
.Trigger.InDetTracking.PixelClusterCacheKey ),
40
(
'PixelRDO_Cache'
, self.
flags
.Trigger.InDetTracking.PixRDOCacheKey ),
41
(
'InDet::SCT_ClusterContainerCache'
, self.
flags
.Trigger.InDetTracking.SCTClusterCacheKey ),
42
(
'SCT_RDO_Cache'
, self.
flags
.Trigger.InDetTracking.SCTRDOCacheKey ),
43
(
'SpacePointCache'
, self.
flags
.Trigger.InDetTracking.SpacePointCachePix ),
44
(
'SpacePointCache'
, self.
flags
.Trigger.InDetTracking.SpacePointCacheSCT ),
45
(
'IDCInDetBSErrContainer_Cache'
, self.
flags
.Trigger.InDetTracking.PixBSErrCacheKey ),
46
(
'IDCInDetBSErrContainer_Cache'
, self.
flags
.Trigger.InDetTracking.SCTBSErrCacheKey ),
47
(
'xAOD::EventInfo'
,
'StoreGateSvc+EventInfo'
),
48
(
'TagInfo'
,
'DetectorStore+ProcessingTags'
)}
49
50
ViewDataVerifier = CompFactory.AthViews.ViewDataVerifier( name = viewVerifier +
"_"
+ self.signature,
51
DataObjects = dataObjs)
52
53
isByteStream = self.
flags
.Input.Format == Format.BS
54
if
not
isByteStream:
55
ViewDataVerifier.DataObjects |= {(
'PixelRDO_Container'
,
'PixelRDOs'
),
56
(
'SCT_RDO_Container'
,
'SCT_RDOs'
)}
57
58
ViewDataVerifier.DataObjects.add((
'TrigRoiDescriptorCollection'
,
'StoreGateSvc+%s'
% self.
rois
))
59
60
acc.addEventAlgo(ViewDataVerifier)
61
return
acc
62
63
64
65
66
def
viewDataVerifierTRT
(self, viewVerifier='IDViewDataVerifierTRT') -> ComponentAccumulator:
67
68
acc = ComponentAccumulator()
69
70
ViewDataVerifier = \
71
CompFactory.AthViews.ViewDataVerifier( name = viewVerifier +
"_"
+ self.signature,
72
DataObjects = {
73
(
'InDet::TRT_DriftCircleContainerCache'
,
74
f
'StoreGateSvc+{self.flags.Trigger.InDetTracking.TRT_DriftCircleCacheKey}'
),
75
76
}
77
)
78
79
if
self.
flags
.Input.Format == Format.BS:
80
ViewDataVerifier.DataObjects.add((
'TRT_RDO_Cache'
, f
'StoreGateSvc+{self.flags.Trigger.InDetTracking.TRTRDOCacheKey}'
))
81
else
:
82
ViewDataVerifier.DataObjects.add((
'TRT_RDO_Container'
,
'StoreGateSvc+TRT_RDOs'
))
83
84
acc.addEventAlgo(ViewDataVerifier)
85
return
acc
86
87
88
89
def
viewDataVerifierAfterDataPrep
(self, viewVerifier='IDViewDataVerifierAfterDataPrep') -> ComponentAccumulator:
90
91
acc = ComponentAccumulator()
92
93
ViewDataVerifier = \
94
CompFactory.AthViews.ViewDataVerifier( name = viewVerifier +
"_"
+ self.signature,
95
DataObjects = {
96
(
'SpacePointContainer'
,
'StoreGateSvc+SCT_TrigSpacePoints'
),
97
(
'SpacePointContainer'
,
'StoreGateSvc+PixelTrigSpacePoints'
),
98
(
'SpacePointOverlapCollection'
,
'StoreGateSvc+OverlapSpacePoints'
),
99
#( 'InDet::PixelGangedClusterAmbiguities' , 'StoreGateSvc+TrigPixelClusterAmbiguitiesMap' ),
100
(
'InDet::SCT_ClusterContainer'
,
'StoreGateSvc+SCT_TrigClusters'
),
101
(
'InDet::PixelClusterContainer'
,
'StoreGateSvc+PixelTrigClusters'
),
102
}
103
)
104
105
if
self.
flags
.Input.Format == Format.BS:
106
ViewDataVerifier.DataObjects |= {
107
(
'IDCInDetBSErrContainer'
,
'StoreGateSvc+SCT_ByteStreamErrs'
),
108
(
'IDCInDetBSErrContainer'
,
'StoreGateSvc+PixelByteStreamErrs'
),
109
}
110
111
acc.addEventAlgo(ViewDataVerifier)
112
return
acc
113
114
115
116
117
def
viewDataVerifierAfterPattern
(self, viewVerifier='IDViewDataVerifierForAmbi') -> ComponentAccumulator:
118
119
acc = ComponentAccumulator()
120
121
ViewDataVerifier = \
122
CompFactory.AthViews.ViewDataVerifier( name = viewVerifier +
"_"
+ self.signature,
123
DataObjects = {
124
(
'InDet::PixelGangedClusterAmbiguities'
,
'TrigPixelClusterAmbiguitiesMap'
),
125
}
126
)
127
if
self.
flags
.Input.Format == Format.BS:
128
ViewDataVerifier.DataObjects |= {
129
(
'IDCInDetBSErrContainer'
,
'StoreGateSvc+PixelByteStreamErrs'
),
130
(
'IDCInDetBSErrContainer'
,
'StoreGateSvc+SCT_ByteStreamErrs'
),
131
}
132
133
acc.addEventAlgo(ViewDataVerifier)
134
return
acc
135
136
137
138
139
def
dataPreparation
(self) -> ComponentAccumulator:
140
141
signature = self.
flags
.Tracking.ActiveConfig.input_name
142
143
acc = ComponentAccumulator()
144
145
self.
log
.info(f
"DataPrep signature: {self.signature} rois: {self.rois} inview: {self.inView}"
)
146
147
if
self.
flags
.Input.Format == Format.BS:
148
from
PixelRawDataByteStreamCnv.PixelRawDataByteStreamCnvConfig
import
TrigPixelRawDataProviderAlgCfg
149
acc.merge(TrigPixelRawDataProviderAlgCfg(self.
flags
,suffix=signature,RoIs=self.
rois
))
150
151
from
SCT_RawDataByteStreamCnv.SCT_RawDataByteStreamCnvConfig
import
TrigSCTRawDataProviderCfg
152
acc.merge(TrigSCTRawDataProviderCfg(self.
flags
,suffix=signature,RoIs=self.
rois
))
153
elif
not
self.
inView
:
154
from
SGComps.SGInputLoaderConfig
import
SGInputLoaderCfg
155
loadRDOs = [(
'PixelRDO_Container'
,
'StoreGateSvc+PixelRDOs'
),
156
(
'SCT_RDO_Container'
,
'StoreGateSvc+SCT_RDOs'
) ]
157
acc.merge(SGInputLoaderCfg(self.
flags
, Load=loadRDOs))
158
159
#Clusterisation
160
from
InDetConfig.InDetPrepRawDataFormationConfig
import
TrigPixelClusterizationCfg
161
acc.merge(TrigPixelClusterizationCfg(self.
flags
,
162
self.
rois
,
163
name=f
"InDetPixelClusterization_{signature}"
))
164
165
166
from
InDetConfig.InDetPrepRawDataFormationConfig
import
TrigSCTClusterizationCfg
167
acc.merge(TrigSCTClusterizationCfg(self.
flags
,
168
self.
rois
,
169
name=f
"InDetSCTClusterization_{signature}"
))
170
171
return
acc
172
173
174
175
176
def
dataPreparationTRT
(self) ->ComponentAccumulator:
177
178
acc = ComponentAccumulator()
179
180
acc.merge(self.
viewDataVerifierTRT
())
181
182
if
self.
flags
.Input.Format == Format.BS:
183
from
TRT_RawDataByteStreamCnv.TRT_RawDataByteStreamCnvConfig
import
TrigTRTRawDataProviderCfg
184
acc.merge(TrigTRTRawDataProviderCfg(self.
flags
, RoIs=self.
lastRois
))
185
186
elif
not
self.
inView
:
187
from
SGComps.SGInputLoaderConfig
import
SGInputLoaderCfg
188
loadRDOs = [(
'TRT_RDO_Container'
,
'StoreGateSvc+TRT_RDOs'
)]
189
acc.merge(SGInputLoaderCfg(self.
flags
, Load=loadRDOs))
190
191
from
InDetConfig.InDetPrepRawDataFormationConfig
import
TrigTRTRIOMakerCfg
192
signature = self.
flags
.Tracking.ActiveConfig.input_name
193
acc.merge(TrigTRTRIOMakerCfg(self.
flags
,
194
self.
lastRois
,
195
name=f
"TrigTRTDriftCircleMaker_{signature}"
))
196
197
198
return
acc
199
200
201
202
203
204
def
spacePointFormation
(self) -> ComponentAccumulator:
205
206
signature = self.
flags
.Tracking.ActiveConfig.input_name
207
acc = ComponentAccumulator()
208
209
from
InDetConfig.SiSpacePointFormationConfig
import
TrigSiTrackerSpacePointFinderCfg
210
acc.merge(TrigSiTrackerSpacePointFinderCfg(self.
flags
, name=
"TrigSpacePointFinder"
+signature))
211
return
acc
212
213
def
fastTrackFinder
(self,
214
extraFlags : AthConfigFlags =
None
,
215
inputTracksName : str =
None
) -> ComponentAccumulator:
216
acc = self.fastTrackFinderBase(extraFlags, inputTracksName)
217
if
not
self.
flags
.Tracking.ActiveConfig.doZFinderOnly:
218
from
TrkConfig.TrkParticleCreatorConfig
import
InDetTrigParticleCreatorToolFTFCfg
219
creatorTool = acc.popToolsAndMerge(InDetTrigParticleCreatorToolFTFCfg(self.
flags
))
220
acc.addPublicTool(creatorTool)
221
222
from
xAODTrackingCnv.xAODTrackingCnvConfig
import
TrigTrackParticleCnvAlgCfg
223
prefix =
"InDet"
224
acc.merge(
225
TrigTrackParticleCnvAlgCfg(
226
self.
flags
,
227
name = prefix+
'xAODParticleCreatorAlg'
+self.
flags
.Tracking.ActiveConfig.input_name+
'_FTF'
,
228
TrackParticleCreator = creatorTool,
229
TrackContainerName = self.
lastTrkCollection
,
230
xAODTrackParticlesFromTracksContainerName = self.
flags
.Tracking.ActiveConfig.tracks_FTF,
231
)
232
)
233
return
acc
234
235
236
237
238
239
def
ambiguitySolver
(self) -> ComponentAccumulator:
240
241
acc = ComponentAccumulator()
242
243
if
self.
inView
:
244
acc.merge(self.
viewDataVerifierAfterPattern
())
245
246
from
TrkConfig.TrkAmbiguitySolverConfig
import
TrkAmbiguityScore_Trig_Cfg
247
acc.merge(
248
TrkAmbiguityScore_Trig_Cfg(
249
self.
flags
,
250
name = f
"{self.ambiPrefix}Score_{self.flags.Tracking.ActiveConfig.input_name}"
,
251
TrackInput = [self.
lastTrkCollection
],
252
AmbiguityScoreProcessor =
None
253
)
254
)
255
256
from
TrkConfig.TrkAmbiguitySolverConfig
import
TrkAmbiguitySolver_Trig_Cfg
257
acc.merge(
258
TrkAmbiguitySolver_Trig_Cfg(
259
self.
flags
,
260
name = f
"{self.ambiPrefix}guitySolver_{self.flags.Tracking.ActiveConfig.input_name}"
,
261
)
262
)
263
264
self.
lastTrkCollection
= self.
flags
.Tracking.ActiveConfig.trkTracks_IDTrig+
"_Amb"
265
return
acc
266
267
268
269
270
271
def
trtExtensions
(self) -> ComponentAccumulator:
272
273
acc = self.
dataPreparationTRT
()
274
275
from
InDetConfig.TRT_TrackExtensionAlgConfig
import
Trig_TRT_TrackExtensionAlgCfg
276
acc.merge(Trig_TRT_TrackExtensionAlgCfg(self.
flags
, self.
lastTrkCollection
, name=
"TrigTrackExtensionAlg%s"
% self.signature))
277
278
from
InDetConfig.InDetExtensionProcessorConfig
import
TrigInDetExtensionProcessorCfg
279
acc.merge(TrigInDetExtensionProcessorCfg(self.
flags
, name=
"TrigExtensionProcessor%s"
% self.signature))
280
281
self.
lastTrkCollection
= self.
flags
.Tracking.ActiveConfig.trkTracks_IDTrig
282
283
return
acc
284
285
286
287
288
289
def
xAODParticleCreation
(self) -> ComponentAccumulator:
290
291
if
self.
flags
.Tracking.ActiveConfig.doTRT:
292
acc = self.
dataPreparationTRT
()
293
else
:
294
acc = ComponentAccumulator()
295
296
from
xAODTrackingCnv.xAODTrackingCnvConfig
import
TrigTrackParticleCnvAlgCfg
297
prefix =
"InDet"
298
acc.merge(
299
TrigTrackParticleCnvAlgCfg(
300
self.
flags
,
301
name = prefix+
'xAODParticleCreatorAlg'
+self.
flags
.Tracking.ActiveConfig.input_name+
'_IDTrig'
,
302
TrackContainerName = self.
lastTrkCollection
,
303
xAODTrackParticlesFromTracksContainerName = self.
flags
.Tracking.ActiveConfig.tracks_IDTrig,
304
))
305
return
acc
306
python.InDetTrigSequence.InDetTrigSequence
Definition
InDetTrigSequence.py:11
python.InDetTrigSequence.InDetTrigSequence.viewDataVerifier
ComponentAccumulator viewDataVerifier(self, viewVerifier='IDViewDataVerifier')
Definition
InDetTrigSequence.py:35
python.InDetTrigSequence.InDetTrigSequence.__init__
__init__(self, AthConfigFlags flags, str signature, str rois, str inView)
Definition
InDetTrigSequence.py:13
python.InDetTrigSequence.InDetTrigSequence.viewDataVerifierTRT
ComponentAccumulator viewDataVerifierTRT(self, viewVerifier='IDViewDataVerifierTRT')
Definition
InDetTrigSequence.py:66
python.InDetTrigSequence.InDetTrigSequence.rois
rois
Definition
InDetTrigSequence.py:58
python.InDetTrigSequence.InDetTrigSequence.viewDataVerifierAfterDataPrep
ComponentAccumulator viewDataVerifierAfterDataPrep(self, viewVerifier='IDViewDataVerifierAfterDataPrep')
Definition
InDetTrigSequence.py:89
python.InDetTrigSequence.InDetTrigSequence.ambiguitySolver
ComponentAccumulator ambiguitySolver(self)
Definition
InDetTrigSequence.py:239
python.InDetTrigSequence.InDetTrigSequence.ambiPrefix
str ambiPrefix
Definition
InDetTrigSequence.py:29
python.InDetTrigSequence.InDetTrigSequence.lastRois
lastRois
Definition
InDetTrigSequence.py:194
python.InDetTrigSequence.InDetTrigSequence.lastTrkCollection
str lastTrkCollection
Definition
InDetTrigSequence.py:28
python.InDetTrigSequence.InDetTrigSequence.viewDataVerifierAfterPattern
ComponentAccumulator viewDataVerifierAfterPattern(self, viewVerifier='IDViewDataVerifierForAmbi')
Definition
InDetTrigSequence.py:117
python.InDetTrigSequence.InDetTrigSequence.log
log
Definition
InDetTrigSequence.py:15
python.InDetTrigSequence.InDetTrigSequence.trtExtensions
ComponentAccumulator trtExtensions(self)
Definition
InDetTrigSequence.py:271
python.InDetTrigSequence.InDetTrigSequence.fastTrackFinder
ComponentAccumulator fastTrackFinder(self, AthConfigFlags extraFlags=None, str inputTracksName=None)
Definition
InDetTrigSequence.py:215
python.InDetTrigSequence.InDetTrigSequence.offlinePattern
ComponentAccumulator offlinePattern(self)
Definition
InDetTrigSequence.py:20
python.InDetTrigSequence.InDetTrigSequence.spacePointFormation
ComponentAccumulator spacePointFormation(self)
Definition
InDetTrigSequence.py:204
python.InDetTrigSequence.InDetTrigSequence.inView
inView
Definition
InDetTrigSequence.py:153
python.InDetTrigSequence.InDetTrigSequence.xAODParticleCreation
ComponentAccumulator xAODParticleCreation(self)
Definition
InDetTrigSequence.py:289
python.InDetTrigSequence.InDetTrigSequence.flags
flags
Definition
InDetTrigSequence.py:25
python.InDetTrigSequence.InDetTrigSequence.dataPreparation
ComponentAccumulator dataPreparation(self)
Definition
InDetTrigSequence.py:139
python.InDetTrigSequence.InDetTrigSequence.dataPreparationTRT
ComponentAccumulator dataPreparationTRT(self)
Definition
InDetTrigSequence.py:176
Generated on
for ATLAS Offline Software by
1.17.0