3 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory
import CompFactory
5 from AthenaConfiguration.Enums
import BeamType
6 from ActsConfig.ActsUtilities
import extractChildKwargs
9 name: str =
"ActsHgtdClusteringTool",
10 **kwargs) -> ComponentAccumulator:
12 acc.setPrivateTools(CompFactory.ActsTrk.HgtdClusteringTool(name,**kwargs))
16 name: str =
"ActsHgtdClusterizationAlg",
17 **kwargs) -> ComponentAccumulator:
20 if flags.HGTD.Geometry.useGeoModelXml:
21 from HGTD_GeoModelXml.HGTD_GeoModelConfig
import HGTD_ReadoutGeometryCfg
23 from HGTD_GeoModel.HGTD_GeoModelConfig
import HGTD_ReadoutGeometryCfg
26 kwargs.setdefault(
'RDOContainerName',
'HGTD_RDOs')
27 kwargs.setdefault(
'ClusterContainerName',
'HGTD_Clusters')
29 if 'ClusteringTool' not in kwargs:
32 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
33 from ActsConfig.ActsMonitoringConfig
import ActsHgtdClusterizationMonitoringToolCfg
36 acc.addEventAlgo(CompFactory.ActsTrk.HgtdClusterizationAlg(name, **kwargs))
42 name: str =
"ActsPixelClusteringTool",
43 **kwargs) -> ComponentAccumulator:
46 from PixelConditionsAlgorithms.ITkPixelConditionsConfig
import ITkPixelChargeCalibCondAlgCfg, ITkPixelOfflineCalibCondAlgCfg
50 from PixelReadoutGeometry.PixelReadoutGeometryConfig
import ITkPixelReadoutManagerCfg
53 if 'PixelRDOTool' not in kwargs:
54 from InDetConfig.SiClusterizationToolConfig
import ITkPixelRDOToolCfg
57 if "PixelLorentzAngleTool" not in kwargs:
58 from SiLorentzAngleTool.ITkPixelLorentzAngleConfig
import ITkPixelLorentzAngleToolCfg
62 'UseWeightedPosition',
63 not (flags.Tracking.doPixelDigitalClustering
or flags.Beam.Type
is BeamType.Cosmics)
66 kwargs.setdefault(
'UseBroadErrors', flags.Beam.Type
is BeamType.Cosmics)
68 acc.setPrivateTools(CompFactory.ActsTrk.PixelClusteringTool(name, **kwargs))
73 name: str =
"ActsStripClusteringTool",
74 **kwargs) -> ComponentAccumulator:
77 if 'LorentzAngleTool' not in kwargs:
78 from SiLorentzAngleTool.ITkStripLorentzAngleConfig
import ITkStripLorentzAngleToolCfg
81 if 'conditionsTool' not in kwargs:
82 from SCT_ConditionsTools.ITkStripConditionsToolsConfig
import ITkStripConditionsSummaryToolCfg
86 kwargs.setdefault(
"maxFiredStrips", 0)
88 if flags.ITk.selectStripIntimeHits
and 'timeBins' not in kwargs:
89 coll_25ns = flags.Beam.BunchSpacing<=25
and flags.Beam.Type
is BeamType.Collisions
90 kwargs.setdefault(
"timeBins",
"01X" if coll_25ns
else "X1X")
92 acc.setPrivateTools(CompFactory.ActsTrk.StripClusteringTool(name, **kwargs))
96 name: str =
'ActsPixelClusterizationAlg',
98 useCache: bool =
False,
99 **kwargs) -> ComponentAccumulator:
102 kwargs.setdefault(
"expectedClustersPerRDO", 32)
103 kwargs.setdefault(
"IDHelper",
"PixelID")
104 kwargs.setdefault(
"RDOContainerKey",
"ITkPixelRDOs")
105 kwargs.setdefault(
"ClustersKey",
"ITkPixelClusters")
107 kwargs.setdefault(
'RoIs',
'ActsRegionOfInterest')
109 kwargs.setdefault(
'ClusterCacheBackend',
'ActsPixelClusterCache_Back')
110 kwargs.setdefault(
'ClusterCache',
'ActsPixelClustersCache')
112 if 'RegSelTool' not in kwargs:
113 from RegionSelector.RegSelToolConfig
import regSelTool_ITkPixel_Cfg
116 if 'ClusteringTool' not in kwargs:
119 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
120 from ActsConfig.ActsMonitoringConfig
import ActsITkPixelClusterizationMonitoringToolCfg
124 acc.addEventAlgo(CompFactory.ActsTrk.PixelClusterizationAlg(name, **kwargs))
126 acc.addEventAlgo(CompFactory.ActsTrk.PixelCacheClusterizationAlg(name, **kwargs))
130 name: str =
'ActsStripClusterizationAlg',
131 useCache: bool =
False,
132 **kwargs) -> ComponentAccumulator:
135 kwargs.setdefault(
"RDOContainerKey",
"ITkStripRDOs")
136 kwargs.setdefault(
"ClustersKey",
"ITkStripClusters")
137 kwargs.setdefault(
"expectedClustersPerRDO", 6)
138 kwargs.setdefault(
"IDHelper",
"SCT_ID")
140 kwargs.setdefault(
'RoIs',
'ActsRegionOfInterest')
142 kwargs.setdefault(
'ClusterCacheBackend',
'ActsStripClusterCache_Back')
143 kwargs.setdefault(
'ClusterCache',
'ActsStripClustersCache')
145 if 'RegSelTool' not in kwargs:
146 from RegionSelector.RegSelToolConfig
import regSelTool_ITkStrip_Cfg
149 if 'ClusteringTool' not in kwargs:
152 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
153 from ActsConfig.ActsMonitoringConfig
import ActsITkStripClusterizationMonitoringToolCfg
157 acc.addEventAlgo(CompFactory.ActsTrk.StripClusterizationAlg(name, **kwargs))
159 acc.addEventAlgo(CompFactory.ActsTrk.StripCacheClusterizationAlg(name, **kwargs))
163 name: str =
"ActsClusterCacheCreatorAlg",
164 **kwargs) -> ComponentAccumulator:
166 kwargs.setdefault(
"PixelClustersCacheKey",
"ActsPixelClusterCache_Back")
167 kwargs.setdefault(
"StripClustersCacheKey",
"ActsStripClusterCache_Back")
168 acc.addEventAlgo(CompFactory.ActsTrk.Cache.CreatorAlg(name, **kwargs))
172 name: str =
"ActsPixelClusterPreparationAlg",
173 useCache: bool =
False,
174 **kwargs) -> ComponentAccumulator:
177 kwargs.setdefault(
'InputCollection',
'ITkPixelClusters')
178 kwargs.setdefault(
'DetectorElements',
'ITkPixelDetectorElementCollection')
180 if 'RegSelTool' not in kwargs:
181 from RegionSelector.RegSelToolConfig
import regSelTool_ITkPixel_Cfg
184 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
185 from ActsConfig.ActsMonitoringConfig
import ActsDataPreparationMonitoringToolCfg
187 name =
"ActsPixelClusterPreparationMonitoringTool")))
190 acc.addEventAlgo(CompFactory.ActsTrk.PixelClusterDataPreparationAlg(name, **kwargs))
192 acc.addEventAlgo(CompFactory.ActsTrk.PixelClusterCacheDataPreparationAlg(name, **kwargs))
196 name: str =
"ActsStripClusterPreparationAlg",
197 useCache: bool =
False,
198 **kwargs) -> ComponentAccumulator:
201 kwargs.setdefault(
'InputCollection',
'ITkStripClusters')
202 kwargs.setdefault(
'DetectorElements',
'ITkStripDetectorElementCollection')
204 if 'RegSelTool' not in kwargs:
205 from RegionSelector.RegSelToolConfig
import regSelTool_ITkStrip_Cfg
208 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
209 from ActsConfig.ActsMonitoringConfig
import ActsDataPreparationMonitoringToolCfg
211 name =
"ActsStripClusterPreparationMonitoringTool")))
214 acc.addEventAlgo(CompFactory.ActsTrk.StripClusterDataPreparationAlg(name, **kwargs))
216 acc.addEventAlgo(CompFactory.ActsTrk.StripClusterCacheDataPreparationAlg(name, **kwargs))
221 RoIs: str =
"ActsRegionOfInterest",
222 **kwargs: dict) -> ComponentAccumulator:
223 assert isinstance(RoIs, str)
224 assert isinstance(kwargs, dict)
235 kwargs.setdefault(
'processPixels', flags.Detector.EnableITkPixel)
236 kwargs.setdefault(
'processStrips', flags.Detector.EnableITkStrip)
237 kwargs.setdefault(
'runCacheCreation', flags.Acts.useCache)
238 kwargs.setdefault(
'runReconstruction',
True)
239 kwargs.setdefault(
'runPreparation', flags.Acts.useCache)
242 if kwargs[
'runCacheCreation']:
247 if kwargs[
'runReconstruction']:
248 if kwargs[
'processPixels']:
252 if kwargs[
'processStrips']:
257 if kwargs[
'runPreparation']:
258 if kwargs[
'processPixels']:
263 if kwargs[
'processStrips']:
269 if flags.Acts.doAnalysis:
270 if kwargs[
'processPixels']:
271 from ActsConfig.ActsAnalysisConfig
import ActsPixelClusterAnalysisAlgCfg
274 if kwargs[
'processStrips']:
275 from ActsConfig.ActsAnalysisConfig
import ActsStripClusterAnalysisAlgCfg
282 previousActsExtension: str =
None) -> ComponentAccumulator:
283 assert previousActsExtension
is None or isinstance(previousActsExtension, str)
287 processPixels = flags.Detector.EnableITkPixel
288 processStrips = flags.Detector.EnableITkStrip
291 kwargs.setdefault(
'processPixels', processPixels)
292 kwargs.setdefault(
'processStrips', processStrips)
310 if flags.Tracking.ActiveConfig.isSecondaryPass:
312 kwargs.setdefault(
'runCacheCreation',
False)
313 kwargs.setdefault(
'runReconstruction', flags.Acts.useCache)
314 kwargs.setdefault(
'runPreparation',
True)
317 kwargs.setdefault(
'runCacheCreation', flags.Acts.useCache)
318 kwargs.setdefault(
'runReconstruction',
True)
319 kwargs.setdefault(
'runPreparation', flags.Acts.useCache)
322 roisName = f
'{flags.Tracking.ActiveConfig.extension}RegionOfInterest'
324 if flags.Tracking.ActiveConfig.extension ==
'ActsLargeRadius':
325 roisName =
'ActsRegionOfInterest'
329 primaryPixelClustersName =
'ITkPixelClusters'
330 primaryStripClustersName =
'ITkStripClusters'
331 pixelClustersName = primaryPixelClustersName
332 stripClustersName = primaryStripClustersName
335 if flags.Tracking.ActiveConfig.isSecondaryPass:
336 pixelClustersName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}PixelClusters'
337 stripClustersName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}StripClusters'
340 if kwargs[
'runCacheCreation']:
341 kwargs.setdefault(
'ClusterCacheCreatorAlg.name', f
'{flags.Tracking.ActiveConfig.extension}ClusterCacheCreatorAlg')
344 if kwargs[
'runReconstruction']:
345 if kwargs[
'processPixels']:
346 kwargs.setdefault(
'PixelClusterizationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelClusterizationAlg')
347 kwargs.setdefault(
'PixelClusterizationAlg.useCache', flags.Acts.useCache)
348 kwargs.setdefault(
'PixelClusterizationAlg.ClustersKey', pixelClustersName)
349 kwargs.setdefault(
'PixelClusterizationAlg.ClusterCache', f
'{flags.Tracking.ActiveConfig.extension}PixelClustersCache')
350 if flags.Tracking.ActiveConfig.isSecondaryPass
and previousActsExtension
is not None:
351 kwargs.setdefault(
'PixelClusterizationAlg.ExtraInputs', {(
'ActsTrk::PrepRawDataAssociation', f
'StoreGateSvc+{previousActsExtension}PrdMap')})
353 if kwargs[
'processStrips']:
354 kwargs.setdefault(
'StripClusterizationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripClusterizationAlg')
355 kwargs.setdefault(
'StripClusterizationAlg.useCache', flags.Acts.useCache)
356 kwargs.setdefault(
'StripClusterizationAlg.ClustersKey', stripClustersName)
357 kwargs.setdefault(
'StripClusterizationAlg.ClusterCache', f
'{flags.Tracking.ActiveConfig.extension}StripClustersCache')
358 if flags.Tracking.ActiveConfig.isSecondaryPass
and previousActsExtension
is not None:
359 kwargs.setdefault(
'StripClusterizationAlg.ExtraInputs', {(
'ActsTrk::PrepRawDataAssociation', f
'StoreGateSvc+{previousActsExtension}PrdMap')})
362 if kwargs[
'runPreparation']:
363 if kwargs[
'processPixels']:
364 kwargs.setdefault(
'PixelClusterPreparationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelClusterPreparationAlg')
365 kwargs.setdefault(
'PixelClusterPreparationAlg.useCache', flags.Acts.useCache)
366 kwargs.setdefault(
'PixelClusterPreparationAlg.OutputCollection', f
'{pixelClustersName}_Cached' if kwargs[
'runReconstruction']
else pixelClustersName)
368 if not flags.Acts.useCache:
370 kwargs.setdefault(
'PixelClusterPreparationAlg.InputCollection', pixelClustersName
if kwargs[
'runReconstruction']
else primaryPixelClustersName)
371 kwargs.setdefault(
'PixelClusterPreparationAlg.InputIDC',
'')
373 kwargs.setdefault(
'PixelClusterPreparationAlg.InputCollection',
'')
374 kwargs.setdefault(
'PixelClusterPreparationAlg.InputIDC', f
'{flags.Tracking.ActiveConfig.extension}PixelClustersCache')
376 if flags.Tracking.ActiveConfig.isSecondaryPass
and previousActsExtension
is not None:
377 kwargs.setdefault(
'PixelClusterPreparationAlg.InputPrdMap', f
'{previousActsExtension}PrdMap')
379 if kwargs[
'processStrips']:
380 kwargs.setdefault(
'StripClusterPreparationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripClusterPreparationAlg')
381 kwargs.setdefault(
'StripClusterPreparationAlg.useCache', flags.Acts.useCache)
382 kwargs.setdefault(
'StripClusterPreparationAlg.OutputCollection', f
'{stripClustersName}_Cached' if kwargs[
'runReconstruction']
else stripClustersName)
383 if not flags.Acts.useCache:
384 kwargs.setdefault(
'StripClusterPreparationAlg.InputCollection', stripClustersName
if kwargs[
'runReconstruction']
else primaryStripClustersName)
385 kwargs.setdefault(
'StripClusterPreparationAlg.InputIDC',
'')
387 kwargs.setdefault(
'StripClusterPreparationAlg.InputCollection',
'')
388 kwargs.setdefault(
'StripClusterPreparationAlg.InputIDC', f
'{flags.Tracking.ActiveConfig.extension}StripClustersCache')
390 if flags.Tracking.ActiveConfig.isSecondaryPass
and previousActsExtension
is not None:
391 kwargs.setdefault(
'StripClusterPreparationAlg.InputPrdMap', f
'{previousActsExtension}PrdMap')
394 if flags.Acts.doAnalysis:
397 if kwargs[
'processPixels']:
398 kwargs.setdefault(
'PixelClusterAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelClusterAnalysisAlg')
399 kwargs.setdefault(
'PixelClusterAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
400 kwargs.setdefault(
'PixelClusterAnalysisAlg.MonGroupName', f
'{flags.Tracking.ActiveConfig.extension}ClusterAnalysisAlg')
401 kwargs.setdefault(
'PixelClusterAnalysisAlg.ClusterContainerKey', kwargs[
'PixelClusterPreparationAlg.OutputCollection']
if kwargs[
'runPreparation']
else kwargs[
'PixelClusterizationAlg.ClustersKey'])
403 if kwargs[
'processStrips']:
404 kwargs.setdefault(
'StripClusterAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripClusterAnalysisAlg')
405 kwargs.setdefault(
'StripClusterAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
406 kwargs.setdefault(
'StripClusterAnalysisAlg.MonGroupName', f
'{flags.Tracking.ActiveConfig.extension}ClusterAnalysisAlg')
407 kwargs.setdefault(
'StripClusterAnalysisAlg.ClusterContainerKey', kwargs[
'StripClusterPreparationAlg.OutputCollection']
if kwargs[
'runPreparation']
else kwargs[
'StripClusterizationAlg.ClustersKey'])