ATLAS Offline Software
Loading...
Searching...
No Matches
InDetPrepRawDataFormationConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2# Configuration of InDetPrepRawDataFormation package
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5from AthenaConfiguration.Enums import Format
6from AthenaConfiguration.Enums import ProductionStep
7
8
10 """Return clusterization input prefix based on the production step and tracking config"""
11 doTrackOverlay = flags.TrackOverlay.isTrackOverlaySeq
12 if doTrackOverlay:
13 prefix = flags.Overlay.SigPrefix
14 elif flags.Common.ProductionStep in [ProductionStep.PileUpPretracking, ProductionStep.MinbiasPreprocessing]:
15 prefix = flags.Overlay.BkgPrefix
16 else:
17 prefix = ''
18
19 return prefix
20
21
22def HGTDInDetToXAODClusterConversionCfg(flags, name="HGTDInDetToXAODClusterConversion", **kwargs):
23 acc = ComponentAccumulator()
24 kwargs.setdefault('ProcessHgtd', True)
25 acc.addEventAlgo(CompFactory.InDet.InDetToXAODClusterConversion(name, **kwargs))
26 return acc
27
28def HGTDXAODToInDetClusterConversionCfg(flags, name="HGTDXAODToInDetClusterConversion", **kwargs):
29 acc = ComponentAccumulator()
30 kwargs.setdefault('ProcessHgtd', True)
31 acc.addEventAlgo(CompFactory.InDet.XAODToInDetClusterConversion(name, **kwargs))
32 return acc
33
34
35def ITkInDetToXAODClusterConversionCfg(flags, name="ITkInDetToXAODClusterConversion", **kwargs):
36 acc = ComponentAccumulator()
37 kwargs.setdefault('ProcessPixel', flags.Detector.EnableITkPixel)
38 kwargs.setdefault('ProcessStrip', flags.Detector.EnableITkStrip)
39 acc.addEventAlgo(CompFactory.InDet.InDetToXAODClusterConversion(name, **kwargs))
40 return acc
41
42
43def IDInDetToXAODClusterConversionCfg(flags, name="IDInDetToXAODClusterConversion", **kwargs):
44 acc = ComponentAccumulator()
45 kwargs.setdefault('isITk', False)
46 kwargs.setdefault('ProcessPixel', flags.Detector.EnablePixel)
47 kwargs.setdefault('ProcessStrip', flags.Detector.EnableSCT)
48
49 kwargs.setdefault('PixelDetEleCollKey', "PixelDetectorElementCollection")
50 kwargs.setdefault('StripDetEleCollKey', "SCT_DetectorElementCollection")
51
52 kwargs.setdefault('InputPixelClustersName', "PixelClusters")
53 kwargs.setdefault('InputStripClustersName', "SCT_Clusters")
54
55 kwargs.setdefault('OutputPixelClustersName', "PixelClusters")
56 kwargs.setdefault('OutputStripClustersName', "SCT_Clusters")
57
58 acc.addEventAlgo(CompFactory.InDet.InDetToXAODClusterConversion(name, **kwargs))
59 return acc
60
61
62def ITkXAODToInDetClusterConversionCfg(flags, name="ITkXAODToInDetClusterConversion", **kwargs):
63 acc = ComponentAccumulator()
64
65 from SiLorentzAngleTool.ITkStripLorentzAngleConfig import ITkStripLorentzAngleToolCfg
66 kwargs.setdefault("LorentzAngleTool", acc.popToolsAndMerge(ITkStripLorentzAngleToolCfg(flags)) )
67
68 kwargs.setdefault('ProcessPixel', flags.Detector.EnableITkPixel)
69 kwargs.setdefault('ProcessStrip', flags.Detector.EnableITkStrip)
70
71 acc.addEventAlgo(CompFactory.InDet.XAODToInDetClusterConversion(name, **kwargs))
72 return acc
73
74
75def PixelClusterizationCfg(flags, name = "InDetPixelClusterization", **kwargs):
76 acc = ComponentAccumulator()
77
78 prefix = clusterizationInputPrefix(flags)
79
80 if "clusteringTool" not in kwargs:
81 from InDetConfig.SiClusterizationToolConfig import MergedPixelsToolCfg
82 kwargs.setdefault("clusteringTool", acc.popToolsAndMerge(
83 MergedPixelsToolCfg(flags)))
84
85 if "gangedAmbiguitiesFinder" not in kwargs:
86 from InDetConfig.SiClusterizationToolConfig import PixelGangedAmbiguitiesFinderCfg
87 kwargs.setdefault("gangedAmbiguitiesFinder", acc.popToolsAndMerge(
88 PixelGangedAmbiguitiesFinderCfg(flags)))
89
90 kwargs.setdefault("DataObjectName", prefix + "PixelRDOs")
91 kwargs.setdefault("ClustersName", "PixelClusters")
92
93 acc.addEventAlgo(CompFactory.InDet.PixelClusterization(prefix+name, **kwargs))
94 return acc
95
96
97def PixelClusterizationPUCfg(flags, name="InDetPixelClusterizationPU", **kwargs):
98 kwargs.setdefault("DataObjectName", "Pixel_PU_RDOs")
99 kwargs.setdefault("ClustersName", "PixelPUClusters")
100 kwargs.setdefault("AmbiguitiesMap", "PixelClusterAmbiguitiesMapPU")
101 return PixelClusterizationCfg(flags, name, **kwargs)
102
103
104def TrigPixelClusterizationCfg(flags, RoIs, name="InDetPixelClusterization", **kwargs):
105 acc = ComponentAccumulator()
106
107 if "RegSelTool" not in kwargs:
108 from RegionSelector.RegSelToolConfig import regSelTool_Pixel_Cfg
109 kwargs.setdefault("RegSelTool", acc.popToolsAndMerge(
110 regSelTool_Pixel_Cfg(flags)))
111
112 if "clusteringTool" not in kwargs:
113 from InDetConfig.SiClusterizationToolConfig import TrigMergedPixelsToolCfg
114 kwargs.setdefault("clusteringTool", acc.popToolsAndMerge(
115 TrigMergedPixelsToolCfg(flags)))
116
117 if "gangedAmbiguitiesFinder" not in kwargs:
118 from InDetConfig.SiClusterizationToolConfig import PixelGangedAmbiguitiesFinderCfg
119 kwargs.setdefault("gangedAmbiguitiesFinder", acc.popToolsAndMerge(
120 PixelGangedAmbiguitiesFinderCfg(flags)))
121
122 kwargs.setdefault("AmbiguitiesMap", flags.Trigger.InDetTracking.ClusterAmbiguitiesMap)
123 kwargs.setdefault("ClustersName", "PixelTrigClusters")
124 kwargs.setdefault("isRoI_Seeded", True)
125 kwargs.setdefault("RoIs", RoIs)
126 kwargs.setdefault("ClusterContainerCacheKey", flags.Trigger.InDetTracking.PixelClusterCacheKey)
127 kwargs.setdefault("useDataPoolWithCache", True)
128 kwargs.setdefault("name", f"{name}_{RoIs}")
129
130 acc.addEventAlgo(CompFactory.InDet.PixelClusterization(**kwargs))
131 return acc
132
133
134def ITkPixelClusterizationCfg(flags, name = "ITkPixelClusterization", **kwargs):
135 acc = ComponentAccumulator()
136
137 prefix = clusterizationInputPrefix(flags)
138
139 if "clusteringTool" not in kwargs:
140 from InDetConfig.SiClusterizationToolConfig import ITkMergedPixelsToolCfg
141 kwargs.setdefault("clusteringTool", acc.popToolsAndMerge(
142 ITkMergedPixelsToolCfg(flags)))
143
144 if "gangedAmbiguitiesFinder" not in kwargs:
145 from InDetConfig.SiClusterizationToolConfig import ITkPixelGangedAmbiguitiesFinderCfg
146 kwargs.setdefault("gangedAmbiguitiesFinder", acc.popToolsAndMerge(ITkPixelGangedAmbiguitiesFinderCfg(flags)))
147 kwargs.setdefault("DataObjectName", prefix + "ITkPixelRDOs")
148 kwargs.setdefault("ClustersName", "ITkPixelClusters")
149 kwargs.setdefault("AmbiguitiesMap", "ITkPixelClusterAmbiguitiesMap")
150
151 acc.addEventAlgo(CompFactory.InDet.PixelClusterization(prefix+name, **kwargs))
152 return acc
153
154
155def ITkTrigPixelClusterizationCfg(flags, name = "ITkTrigPixelClusterization", roisKey="", signature="", **kwargs):
156 acc = ComponentAccumulator()
157 from RegionSelector.RegSelToolConfig import regSelTool_ITkPixel_Cfg
158 acc.merge(ITkPixelClusterizationCfg(flags,
159 name="ITkPixelClusterization_"+signature,
160 isRoI_Seeded=True,
161 RoIs=roisKey,
162 ClustersName = "ITkTrigPixelClusters",
163 ClusterContainerCacheKey=flags.Trigger.ITkTracking.PixelClusterCacheKey,
164 AmbiguitiesMap = flags.Trigger.ITkTracking.ClusterAmbiguitiesMap,
165 RegSelTool= acc.popToolsAndMerge(regSelTool_ITkPixel_Cfg(flags))))
166 return acc
167
168
169def SCTClusterizationCfg(flags, name="InDetSCT_Clusterization", **kwargs):
170 acc = ComponentAccumulator()
171
172 prefix = clusterizationInputPrefix(flags)
173
174 if "conditionsTool" not in kwargs:
175 from SCT_ConditionsTools.SCT_ConditionsToolsConfig import SCT_ConditionsSummaryToolCfg
176 kwargs.setdefault("conditionsTool", acc.popToolsAndMerge(
177 SCT_ConditionsSummaryToolCfg(flags, withFlaggedCondTool=False)))
178
179 if "SCTDetElStatus" not in kwargs :
180 from SCT_ConditionsAlgorithms.SCT_ConditionsAlgorithmsConfig import SCT_DetectorElementStatusAlgWithoutFlaggedCfg
181 acc.merge( SCT_DetectorElementStatusAlgWithoutFlaggedCfg(flags) )
182 kwargs.setdefault("SCTDetElStatus", "SCTDetectorElementStatusWithoutFlagged" )
183
184 if "clusteringTool" not in kwargs:
185 from InDetConfig.SiClusterizationToolConfig import SCT_ClusteringToolCfg
186 kwargs.setdefault("clusteringTool", acc.popToolsAndMerge(
187 SCT_ClusteringToolCfg(flags)))
188
189 kwargs.setdefault("DataObjectName", prefix + "SCT_RDOs")
190 kwargs.setdefault("ClustersName", 'SCT_Clusters')
191
192 acc.addEventAlgo(CompFactory.InDet.SCT_Clusterization(prefix+name, **kwargs))
193 return acc
194
195
196def SCTClusterizationPUCfg(flags, name="InDetSCT_ClusterizationPU", **kwargs):
197 kwargs.setdefault("DataObjectName", "SCT_PU_RDOs" )
198 kwargs.setdefault("ClustersName", "SCT_PU_Clusters")
199 return SCTClusterizationCfg(flags, name, **kwargs)
200
201
202def TrigSCTClusterizationCfg(flags, RoIs, name="InDetSCT_Clusterization", **kwargs):
203 acc = ComponentAccumulator()
204
205 if "RegSelTool" not in kwargs:
206 from RegionSelector.RegSelToolConfig import regSelTool_SCT_Cfg
207 kwargs.setdefault("RegSelTool", acc.popToolsAndMerge(
208 regSelTool_SCT_Cfg(flags)))
209
210 if "conditionsTool" not in kwargs:
211 from SCT_ConditionsTools.SCT_ConditionsToolsConfig import SCT_ConditionsSummaryToolCfg
212 kwargs.setdefault("conditionsTool", acc.popToolsAndMerge(
213 SCT_ConditionsSummaryToolCfg(flags, withFlaggedCondTool=False, withTdaqTool=False)))
214
215 if "clusteringTool" not in kwargs:
216 from InDetConfig.SiClusterizationToolConfig import Trig_SCT_ClusteringToolCfg
217 kwargs.setdefault("clusteringTool", acc.popToolsAndMerge(
218 Trig_SCT_ClusteringToolCfg(flags)))
219
220 kwargs.setdefault("DataObjectName", 'SCT_RDOs')
221 kwargs.setdefault("ClustersName", 'SCT_TrigClusters')
222 kwargs.setdefault("isRoI_Seeded", True)
223 kwargs.setdefault("RoIs", RoIs)
224 kwargs.setdefault("ClusterContainerCacheKey", flags.Trigger.InDetTracking.SCTClusterCacheKey)
225 kwargs.setdefault("FlaggedCondCacheKey", "")
226 kwargs.setdefault("useDataPoolWithCache", True)
227 kwargs.setdefault("name", f"{name}_{RoIs}")
228
229 acc.addEventAlgo(CompFactory.InDet.SCT_Clusterization(**kwargs))
230 return acc
231
232
233def ITkStripClusterizationCfg(flags, name="ITkStripClusterization", **kwargs):
234 acc = ComponentAccumulator()
235
236 prefix = clusterizationInputPrefix(flags)
237
238 kwargs.setdefault("conditionsTool",None) # SCTDetElStatus is used instead
239 if "SCTDetElStatus" not in kwargs :
240 if not flags.Trigger.doHLT :
241 from SCT_ConditionsAlgorithms.ITkStripConditionsAlgorithmsConfig import (
242 ITkStripDetectorElementStatusAlgCfg)
243 acc.merge(ITkStripDetectorElementStatusAlgCfg(flags))
244 kwargs.setdefault("SCTDetElStatus", "ITkStripDetectorElementStatus")
245
246 if "clusteringTool" not in kwargs:
247 from InDetConfig.SiClusterizationToolConfig import ITKStrip_SCT_ClusteringToolCfg
248 kwargs.setdefault("clusteringTool", acc.popToolsAndMerge(
249 ITKStrip_SCT_ClusteringToolCfg(flags)))
250 kwargs.setdefault("DataObjectName", prefix + 'ITkStripRDOs')
251 kwargs.setdefault("ClustersName", 'ITkStripClusters')
252 kwargs.setdefault("SCT_FlaggedCondData", "ITkStripFlaggedCondData")
253 # Disable noisy modules suppression
254 kwargs.setdefault("maxFiredStrips", 0)
255
256 acc.addEventAlgo( CompFactory.InDet.SCT_Clusterization(prefix+name, **kwargs))
257 return acc
258
259
260def ITkTrigStripClusterizationCfg(flags, name="ITkTrigStripClusterization", roisKey="", signature="", **kwargs):
261 acc = ComponentAccumulator()
262 from RegionSelector.RegSelToolConfig import regSelTool_ITkStrip_Cfg
263 acc.merge(ITkStripClusterizationCfg(flags,
264 name="ITkStripClusterization_"+signature,
265 isRoI_Seeded=True,
266 RoIs=roisKey,
267 ClustersName = "ITkTrigStripClusters",
268 ClusterContainerCacheKey=flags.Trigger.ITkTracking.SCTClusterCacheKey,
269 RegSelTool= acc.popToolsAndMerge(regSelTool_ITkStrip_Cfg(flags))))
270 return acc
271
272
273def InDetTRT_RIO_MakerCfg(flags, name = "InDetTRT_RIO_Maker", **kwargs):
274 acc = ComponentAccumulator()
275
276 # track overlay always uses full input container here
277 if flags.Common.ProductionStep in [ProductionStep.PileUpPretracking, ProductionStep.MinbiasPreprocessing]:
278 prefix = flags.Overlay.BkgPrefix
279 else:
280 prefix = ''
281
282 if "TRT_DriftCircleTool" not in kwargs:
283 from InDetConfig.TRT_DriftCircleToolConfig import TRT_DriftCircleToolCfg
284 kwargs.setdefault("TRT_DriftCircleTool", acc.popToolsAndMerge(
285 TRT_DriftCircleToolCfg(flags)))
286 kwargs.setdefault("TRTRIOLocation", 'TRT_DriftCircles')
287 #Backtracking is disable during the processing of pileup tracks,
288 #the standard TRT_RDOs are used for track overlay when overlaying with HS RDOs.
289 kwargs.setdefault("TRTRDOLocation", prefix + 'TRT_RDOs')
290
291 acc.addEventAlgo(CompFactory.InDet.TRT_RIO_Maker(prefix+name, **kwargs))
292 return acc
293
294
295def InDetTRT_NoTime_RIO_MakerCfg(flags, name = "InDetTRT_NoTime_RIO_Maker", **kwargs):
296 acc = ComponentAccumulator()
297
298 if "TRT_DriftCircleTool" not in kwargs:
299 from InDetConfig.TRT_DriftCircleToolConfig import TRT_NoTime_DriftCircleToolCfg
300 kwargs.setdefault("TRT_DriftCircleTool", acc.popToolsAndMerge(
301 TRT_NoTime_DriftCircleToolCfg(flags)))
302
303 kwargs.setdefault("TRTRIOLocation", 'TRT_DriftCirclesUncalibrated')
304
305 acc.merge(InDetTRT_RIO_MakerCfg(flags, name, **kwargs))
306 return acc
307
308
309def InDetTRT_Phase_RIO_MakerCfg(flags, name = "InDetTRT_Phase_RIO_Maker", **kwargs):
310 acc = ComponentAccumulator()
311
312 if "TRT_DriftCircleTool" not in kwargs:
313 from InDetConfig.TRT_DriftCircleToolConfig import TRT_Phase_DriftCircleToolCfg
314 kwargs.setdefault("TRT_DriftCircleTool", acc.popToolsAndMerge(
315 TRT_Phase_DriftCircleToolCfg(flags)))
316
317 acc.merge(InDetTRT_RIO_MakerCfg(flags, name, **kwargs))
318 return acc
319
320
321def InDetTRT_RIO_MakerPUCfg(flags, name = "InDetTRT_RIO_MakerPU", **kwargs):
322 kwargs.setdefault("TRTRDOLocation", 'TRT_PU_RDOs')
323 kwargs.setdefault("TRTRIOLocation", 'TRT_PU_DriftCircles')
324 return InDetTRT_RIO_MakerCfg(flags, name, **kwargs)
325
326
327def TrigTRTRIOMakerCfg(flags, RoIs, name="InDetTrigMTTRTDriftCircleMaker", **kwargs):
328 acc = ComponentAccumulator()
329
330 if "RegSelTool" not in kwargs:
331 from RegionSelector.RegSelToolConfig import regSelTool_TRT_Cfg
332 kwargs.setdefault("RegSelTool", acc.popToolsAndMerge(
333 regSelTool_TRT_Cfg(flags)))
334
335 if "TRT_DriftCircleTool" not in kwargs:
336 from InDetConfig.TRT_DriftCircleToolConfig import TRT_DriftCircleToolCfg
337 kwargs.setdefault("TRT_DriftCircleTool", acc.popToolsAndMerge(
338 TRT_DriftCircleToolCfg(flags)))
339
340 kwargs.setdefault("TRTRIOLocation", "TRT_TrigDriftCircles")
341 kwargs.setdefault("TRTRDOLocation", "TRT_RDOs_TRIG" if flags.Input.Format is Format.BS else "TRT_RDOs")
342 kwargs.setdefault("isRoI_Seeded", True)
343 kwargs.setdefault("RoIs", RoIs)
344
345 kwargs.setdefault("TRT_DriftCircleCache", flags.Trigger.InDetTracking.TRT_DriftCircleCacheKey)
346 kwargs.setdefault("useDataPoolWithCache", True)
347
348 kwargs.setdefault("name", f"{name}_{RoIs}")
349 acc.addEventAlgo(CompFactory.InDet.TRT_RIO_Maker(**kwargs))
350 return acc
351
352
354 acc = ComponentAccumulator()
355 #
356 # -- Pixel Clusterization
357 #
358 if flags.Detector.EnableITkPixel:
359 acc.merge(ITkPixelClusterizationCfg(flags))
360 #
361 # --- Strip Clusterization
362 #
363 if flags.Detector.EnableITkStrip:
364 acc.merge(ITkStripClusterizationCfg(flags))
365
366 return acc
ITkTrigStripClusterizationCfg(flags, name="ITkTrigStripClusterization", roisKey="", signature="", **kwargs)
SCTClusterizationPUCfg(flags, name="InDetSCT_ClusterizationPU", **kwargs)
InDetTRT_Phase_RIO_MakerCfg(flags, name="InDetTRT_Phase_RIO_Maker", **kwargs)
HGTDInDetToXAODClusterConversionCfg(flags, name="HGTDInDetToXAODClusterConversion", **kwargs)
ITkXAODToInDetClusterConversionCfg(flags, name="ITkXAODToInDetClusterConversion", **kwargs)
IDInDetToXAODClusterConversionCfg(flags, name="IDInDetToXAODClusterConversion", **kwargs)
TrigSCTClusterizationCfg(flags, RoIs, name="InDetSCT_Clusterization", **kwargs)
TrigTRTRIOMakerCfg(flags, RoIs, name="InDetTrigMTTRTDriftCircleMaker", **kwargs)
PixelClusterizationCfg(flags, name="InDetPixelClusterization", **kwargs)
HGTDXAODToInDetClusterConversionCfg(flags, name="HGTDXAODToInDetClusterConversion", **kwargs)
TrigPixelClusterizationCfg(flags, RoIs, name="InDetPixelClusterization", **kwargs)
ITkTrigPixelClusterizationCfg(flags, name="ITkTrigPixelClusterization", roisKey="", signature="", **kwargs)
InDetTRT_RIO_MakerCfg(flags, name="InDetTRT_RIO_Maker", **kwargs)
ITkPixelClusterizationCfg(flags, name="ITkPixelClusterization", **kwargs)
SCTClusterizationCfg(flags, name="InDetSCT_Clusterization", **kwargs)
InDetTRT_NoTime_RIO_MakerCfg(flags, name="InDetTRT_NoTime_RIO_Maker", **kwargs)
ITkStripClusterizationCfg(flags, name="ITkStripClusterization", **kwargs)
ITkInDetToXAODClusterConversionCfg(flags, name="ITkInDetToXAODClusterConversion", **kwargs)
PixelClusterizationPUCfg(flags, name="InDetPixelClusterizationPU", **kwargs)
InDetTRT_RIO_MakerPUCfg(flags, name="InDetTRT_RIO_MakerPU", **kwargs)