3from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory
import CompFactory
5from AthenaConfiguration.Enums
import Format
6from AthenaConfiguration.Enums
import ProductionStep
10 """Return clusterization input prefix based on the production step and tracking config"""
11 doTrackOverlay = flags.TrackOverlay.isTrackOverlaySeq
13 prefix = flags.Overlay.SigPrefix
14 elif flags.Common.ProductionStep
in [ProductionStep.PileUpPretracking, ProductionStep.MinbiasPreprocessing]:
15 prefix = flags.Overlay.BkgPrefix
23 acc = ComponentAccumulator()
24 kwargs.setdefault(
'ProcessHgtd',
True)
25 acc.addEventAlgo(CompFactory.InDet.InDetToXAODClusterConversion(name, **kwargs))
28 from ActsConfig.ActsPersistificationConfig
import PersistifyClusters
29 acc.merge(PersistifyClusters(flags,
30 hgtdClusterCollections=[
'HGTD_Clusters']))
34 acc = ComponentAccumulator()
35 kwargs.setdefault(
'ProcessHgtd',
True)
36 acc.addEventAlgo(CompFactory.InDet.XAODToInDetClusterConversion(name, **kwargs))
41 acc = ComponentAccumulator()
42 kwargs.setdefault(
'ProcessPixel', flags.Detector.EnableITkPixel)
43 kwargs.setdefault(
'ProcessStrip', flags.Detector.EnableITkStrip)
44 acc.addEventAlgo(CompFactory.InDet.InDetToXAODClusterConversion(name, **kwargs))
47 pixelClusterCollections =
None if not kwargs[
'ProcessPixel']
else [
'ITkPixelClusters']
48 stripClusterCollections =
None if not kwargs[
'ProcessStrip']
else [
'ITkStripClusters']
49 from ActsConfig.ActsPersistificationConfig
import PersistifyClusters
50 acc.merge(PersistifyClusters(flags,
51 pixelClusterCollections=pixelClusterCollections,
52 stripClusterCollections=stripClusterCollections))
57 acc = ComponentAccumulator()
58 kwargs.setdefault(
'isITk',
False)
59 kwargs.setdefault(
'ProcessPixel', flags.Detector.EnablePixel)
60 kwargs.setdefault(
'ProcessStrip', flags.Detector.EnableSCT)
62 kwargs.setdefault(
'PixelDetEleCollKey',
"PixelDetectorElementCollection")
63 kwargs.setdefault(
'StripDetEleCollKey',
"SCT_DetectorElementCollection")
65 kwargs.setdefault(
'InputPixelClustersName',
"PixelClusters")
66 kwargs.setdefault(
'InputStripClustersName',
"SCT_Clusters")
68 kwargs.setdefault(
'OutputPixelClustersName',
"PixelClusters")
69 kwargs.setdefault(
'OutputStripClustersName',
"SCT_Clusters")
71 acc.addEventAlgo(CompFactory.InDet.InDetToXAODClusterConversion(name, **kwargs))
74 pixelClusterCollections =
None if not kwargs[
'ProcessPixel']
else [
'PixelClusters']
75 stripClusterCollections =
None if not kwargs[
'ProcessStrip']
else [
'SCT_Clusters']
76 from ActsConfig.ActsPersistificationConfig
import PersistifyClusters
77 acc.merge(PersistifyClusters(flags,
78 pixelClusterCollections=pixelClusterCollections,
79 stripClusterCollections=stripClusterCollections))
84 acc = ComponentAccumulator()
86 from SiLorentzAngleTool.ITkStripLorentzAngleConfig
import ITkStripLorentzAngleToolCfg
87 kwargs.setdefault(
"LorentzAngleTool", acc.popToolsAndMerge(ITkStripLorentzAngleToolCfg(flags)) )
89 kwargs.setdefault(
'ProcessPixel', flags.Detector.EnableITkPixel)
90 kwargs.setdefault(
'ProcessStrip', flags.Detector.EnableITkStrip)
92 acc.addEventAlgo(CompFactory.InDet.XAODToInDetClusterConversion(name, **kwargs))
97 acc = ComponentAccumulator()
101 if "clusteringTool" not in kwargs:
102 from InDetConfig.SiClusterizationToolConfig
import MergedPixelsToolCfg
103 kwargs.setdefault(
"clusteringTool", acc.popToolsAndMerge(
104 MergedPixelsToolCfg(flags)))
106 if "gangedAmbiguitiesFinder" not in kwargs:
107 from InDetConfig.SiClusterizationToolConfig
import PixelGangedAmbiguitiesFinderCfg
108 kwargs.setdefault(
"gangedAmbiguitiesFinder", acc.popToolsAndMerge(
109 PixelGangedAmbiguitiesFinderCfg(flags)))
111 if flags.TrackOverlay.isTrackOverlaySeq
and flags.TrackOverlay.doRoISiOverlay:
113 from TrackOverlayRec.TrackOverlayRoIConfig
import (
114 TrackOverlayRoISiRDOMergerAlgCfg, RoIPixelRDOs)
115 acc.merge(TrackOverlayRoISiRDOMergerAlgCfg(flags))
116 kwargs.setdefault(
"DataObjectName", RoIPixelRDOs)
117 kwargs.setdefault(
"DataObjectName", prefix +
"PixelRDOs")
118 kwargs.setdefault(
"ClustersName",
"PixelClusters")
120 acc.addEventAlgo(CompFactory.InDet.PixelClusterization(prefix+name, **kwargs))
125 kwargs.setdefault(
"DataObjectName",
"Pixel_PU_RDOs")
126 kwargs.setdefault(
"ClustersName",
"PixelPUClusters")
127 kwargs.setdefault(
"AmbiguitiesMap",
"PixelClusterAmbiguitiesMapPU")
132 acc = ComponentAccumulator()
134 if "RegSelTool" not in kwargs:
135 from RegionSelector.RegSelToolConfig
import regSelTool_Pixel_Cfg
136 kwargs.setdefault(
"RegSelTool", acc.popToolsAndMerge(
137 regSelTool_Pixel_Cfg(flags)))
139 if "clusteringTool" not in kwargs:
140 from InDetConfig.SiClusterizationToolConfig
import TrigMergedPixelsToolCfg
141 kwargs.setdefault(
"clusteringTool", acc.popToolsAndMerge(
142 TrigMergedPixelsToolCfg(flags)))
144 if "gangedAmbiguitiesFinder" not in kwargs:
145 from InDetConfig.SiClusterizationToolConfig
import PixelGangedAmbiguitiesFinderCfg
146 kwargs.setdefault(
"gangedAmbiguitiesFinder", acc.popToolsAndMerge(
147 PixelGangedAmbiguitiesFinderCfg(flags)))
149 kwargs.setdefault(
"AmbiguitiesMap", flags.Trigger.InDetTracking.ClusterAmbiguitiesMap)
150 kwargs.setdefault(
"ClustersName",
"PixelTrigClusters")
151 kwargs.setdefault(
"isRoI_Seeded",
True)
152 kwargs.setdefault(
"RoIs", RoIs)
153 kwargs.setdefault(
"ClusterContainerCacheKey", flags.Trigger.InDetTracking.PixelClusterCacheKey)
154 kwargs.setdefault(
"useDataPoolWithCache",
True)
155 kwargs.setdefault(
"name", f
"{name}_{RoIs}")
157 acc.addEventAlgo(CompFactory.InDet.PixelClusterization(**kwargs))
162 acc = ComponentAccumulator()
166 if "clusteringTool" not in kwargs:
167 from InDetConfig.SiClusterizationToolConfig
import ITkMergedPixelsToolCfg
168 kwargs.setdefault(
"clusteringTool", acc.popToolsAndMerge(
169 ITkMergedPixelsToolCfg(flags)))
171 if "gangedAmbiguitiesFinder" not in kwargs:
172 from InDetConfig.SiClusterizationToolConfig
import ITkPixelGangedAmbiguitiesFinderCfg
173 kwargs.setdefault(
"gangedAmbiguitiesFinder", acc.popToolsAndMerge(ITkPixelGangedAmbiguitiesFinderCfg(flags)))
174 kwargs.setdefault(
"DataObjectName", prefix +
"ITkPixelRDOs")
175 kwargs.setdefault(
"ClustersName",
"ITkPixelClusters")
176 kwargs.setdefault(
"AmbiguitiesMap",
"ITkPixelClusterAmbiguitiesMap")
178 acc.addEventAlgo(CompFactory.InDet.PixelClusterization(prefix+name, **kwargs))
183 acc = ComponentAccumulator()
184 from RegionSelector.RegSelToolConfig
import regSelTool_ITkPixel_Cfg
186 name=
"ITkPixelClusterization_"+signature,
189 ClustersName =
"ITkTrigPixelClusters",
190 ClusterContainerCacheKey=flags.Trigger.ITkTracking.PixelClusterCacheKey,
191 AmbiguitiesMap = flags.Trigger.ITkTracking.ClusterAmbiguitiesMap,
192 RegSelTool= acc.popToolsAndMerge(regSelTool_ITkPixel_Cfg(flags))))
197 acc = ComponentAccumulator()
201 if "conditionsTool" not in kwargs:
202 from SCT_ConditionsTools.SCT_ConditionsToolsConfig
import SCT_ConditionsSummaryToolCfg
203 kwargs.setdefault(
"conditionsTool", acc.popToolsAndMerge(
204 SCT_ConditionsSummaryToolCfg(flags, withFlaggedCondTool=
False)))
206 if "SCTDetElStatus" not in kwargs :
207 from SCT_ConditionsAlgorithms.SCT_ConditionsAlgorithmsConfig
import SCT_DetectorElementStatusAlgWithoutFlaggedCfg
208 acc.merge( SCT_DetectorElementStatusAlgWithoutFlaggedCfg(flags) )
209 kwargs.setdefault(
"SCTDetElStatus",
"SCTDetectorElementStatusWithoutFlagged" )
211 if "clusteringTool" not in kwargs:
212 from InDetConfig.SiClusterizationToolConfig
import SCT_ClusteringToolCfg
213 kwargs.setdefault(
"clusteringTool", acc.popToolsAndMerge(
214 SCT_ClusteringToolCfg(flags)))
216 if flags.TrackOverlay.isTrackOverlaySeq
and flags.TrackOverlay.doRoISiOverlay:
218 from TrackOverlayRec.TrackOverlayRoIConfig
import (
219 TrackOverlayRoISiRDOMergerAlgCfg, RoISCT_RDOs)
220 acc.merge(TrackOverlayRoISiRDOMergerAlgCfg(flags))
221 kwargs.setdefault(
"DataObjectName", RoISCT_RDOs)
222 kwargs.setdefault(
"DataObjectName", prefix +
"SCT_RDOs")
223 kwargs.setdefault(
"ClustersName",
'SCT_Clusters')
225 acc.addEventAlgo(CompFactory.InDet.SCT_Clusterization(prefix+name, **kwargs))
230 kwargs.setdefault(
"DataObjectName",
"SCT_PU_RDOs" )
231 kwargs.setdefault(
"ClustersName",
"SCT_PU_Clusters")
236 acc = ComponentAccumulator()
238 if "RegSelTool" not in kwargs:
239 from RegionSelector.RegSelToolConfig
import regSelTool_SCT_Cfg
240 kwargs.setdefault(
"RegSelTool", acc.popToolsAndMerge(
241 regSelTool_SCT_Cfg(flags)))
243 if "conditionsTool" not in kwargs:
244 from SCT_ConditionsTools.SCT_ConditionsToolsConfig
import SCT_ConditionsSummaryToolCfg
245 kwargs.setdefault(
"conditionsTool", acc.popToolsAndMerge(
246 SCT_ConditionsSummaryToolCfg(flags, withFlaggedCondTool=
False, withTdaqTool=
False)))
248 if "clusteringTool" not in kwargs:
249 from InDetConfig.SiClusterizationToolConfig
import Trig_SCT_ClusteringToolCfg
250 kwargs.setdefault(
"clusteringTool", acc.popToolsAndMerge(
251 Trig_SCT_ClusteringToolCfg(flags)))
253 kwargs.setdefault(
"DataObjectName",
'SCT_RDOs')
254 kwargs.setdefault(
"ClustersName",
'SCT_TrigClusters')
255 kwargs.setdefault(
"isRoI_Seeded",
True)
256 kwargs.setdefault(
"RoIs", RoIs)
257 kwargs.setdefault(
"ClusterContainerCacheKey", flags.Trigger.InDetTracking.SCTClusterCacheKey)
258 kwargs.setdefault(
"FlaggedCondCacheKey",
"")
259 kwargs.setdefault(
"useDataPoolWithCache",
True)
260 kwargs.setdefault(
"name", f
"{name}_{RoIs}")
262 acc.addEventAlgo(CompFactory.InDet.SCT_Clusterization(**kwargs))
267 acc = ComponentAccumulator()
271 kwargs.setdefault(
"conditionsTool",
None)
272 if "SCTDetElStatus" not in kwargs :
273 if not flags.Trigger.doHLT :
274 from SCT_ConditionsAlgorithms.ITkStripConditionsAlgorithmsConfig
import (
275 ITkStripDetectorElementStatusAlgCfg)
276 acc.merge(ITkStripDetectorElementStatusAlgCfg(flags))
277 kwargs.setdefault(
"SCTDetElStatus",
"ITkStripDetectorElementStatus")
279 if "clusteringTool" not in kwargs:
280 from InDetConfig.SiClusterizationToolConfig
import ITKStrip_SCT_ClusteringToolCfg
281 kwargs.setdefault(
"clusteringTool", acc.popToolsAndMerge(
282 ITKStrip_SCT_ClusteringToolCfg(flags)))
283 kwargs.setdefault(
"DataObjectName", prefix +
'ITkStripRDOs')
284 kwargs.setdefault(
"ClustersName",
'ITkStripClusters')
285 kwargs.setdefault(
"SCT_FlaggedCondData",
"ITkStripFlaggedCondData")
287 kwargs.setdefault(
"maxFiredStrips", 0)
289 acc.addEventAlgo( CompFactory.InDet.SCT_Clusterization(prefix+name, **kwargs))
294 acc = ComponentAccumulator()
295 from RegionSelector.RegSelToolConfig
import regSelTool_ITkStrip_Cfg
297 name=
"ITkStripClusterization_"+signature,
300 ClustersName =
"ITkTrigStripClusters",
301 ClusterContainerCacheKey=flags.Trigger.ITkTracking.SCTClusterCacheKey,
302 RegSelTool= acc.popToolsAndMerge(regSelTool_ITkStrip_Cfg(flags))))
307 acc = ComponentAccumulator()
310 if flags.Common.ProductionStep
in [ProductionStep.PileUpPretracking, ProductionStep.MinbiasPreprocessing]:
311 prefix = flags.Overlay.BkgPrefix
315 if "TRT_DriftCircleTool" not in kwargs:
316 from InDetConfig.TRT_DriftCircleToolConfig
import TRT_DriftCircleToolCfg
317 kwargs.setdefault(
"TRT_DriftCircleTool", acc.popToolsAndMerge(
318 TRT_DriftCircleToolCfg(flags)))
319 kwargs.setdefault(
"TRTRIOLocation",
'TRT_DriftCircles')
322 kwargs.setdefault(
"TRTRDOLocation", prefix +
'TRT_RDOs')
324 acc.addEventAlgo(CompFactory.InDet.TRT_RIO_Maker(prefix+name, **kwargs))
329 acc = ComponentAccumulator()
331 if "TRT_DriftCircleTool" not in kwargs:
332 from InDetConfig.TRT_DriftCircleToolConfig
import TRT_NoTime_DriftCircleToolCfg
333 kwargs.setdefault(
"TRT_DriftCircleTool", acc.popToolsAndMerge(
334 TRT_NoTime_DriftCircleToolCfg(flags)))
336 kwargs.setdefault(
"TRTRIOLocation",
'TRT_DriftCirclesUncalibrated')
343 acc = ComponentAccumulator()
345 if "TRT_DriftCircleTool" not in kwargs:
346 from InDetConfig.TRT_DriftCircleToolConfig
import TRT_Phase_DriftCircleToolCfg
347 kwargs.setdefault(
"TRT_DriftCircleTool", acc.popToolsAndMerge(
348 TRT_Phase_DriftCircleToolCfg(flags)))
355 kwargs.setdefault(
"TRTRDOLocation",
'TRT_PU_RDOs')
356 kwargs.setdefault(
"TRTRIOLocation",
'TRT_PU_DriftCircles')
361 acc = ComponentAccumulator()
363 if "RegSelTool" not in kwargs:
364 from RegionSelector.RegSelToolConfig
import regSelTool_TRT_Cfg
365 kwargs.setdefault(
"RegSelTool", acc.popToolsAndMerge(
366 regSelTool_TRT_Cfg(flags)))
368 if "TRT_DriftCircleTool" not in kwargs:
369 from InDetConfig.TRT_DriftCircleToolConfig
import TRT_DriftCircleToolCfg
370 kwargs.setdefault(
"TRT_DriftCircleTool", acc.popToolsAndMerge(
371 TRT_DriftCircleToolCfg(flags)))
373 kwargs.setdefault(
"TRTRIOLocation",
"TRT_TrigDriftCircles")
374 kwargs.setdefault(
"TRTRDOLocation",
"TRT_RDOs_TRIG" if flags.Input.Format
is Format.BS
else "TRT_RDOs")
375 kwargs.setdefault(
"isRoI_Seeded",
True)
376 kwargs.setdefault(
"RoIs", RoIs)
378 kwargs.setdefault(
"TRT_DriftCircleCache", flags.Trigger.InDetTracking.TRT_DriftCircleCacheKey)
379 kwargs.setdefault(
"useDataPoolWithCache",
True)
381 kwargs.setdefault(
"name", f
"{name}_{RoIs}")
382 acc.addEventAlgo(CompFactory.InDet.TRT_RIO_Maker(**kwargs))
387 acc = ComponentAccumulator()
391 if flags.Detector.EnableITkPixel:
396 if flags.Detector.EnableITkStrip: