55 name: str =
"ActsStripSpacePointTool",
56 **kwargs: dict) -> ComponentAccumulator:
57 acc = ComponentAccumulator()
59 kwargs.setdefault(
"useSCTLayerDep_OverlapCuts",
False)
61 kwargs.setdefault(
"useBeamSpotConstraint", flags.Acts.SpacePoints.useBeamSpotConstraintStrips)
63 if 'LorentzAngleTool' not in kwargs:
64 from SiLorentzAngleTool.ITkStripLorentzAngleConfig
import ITkStripLorentzAngleToolCfg
65 kwargs.setdefault(
"LorentzAngleTool", acc.popToolsAndMerge(ITkStripLorentzAngleToolCfg(flags)) )
67 acc.setPrivateTools(CompFactory.ActsTrk.StripSpacePointFormationTool(name, **kwargs))
71 name: str =
"ActsPixelSpacePointPreparationAlg",
73 useCache: bool =
False,
74 **kwargs: dict) -> ComponentAccumulator:
75 acc = ComponentAccumulator()
77 kwargs.setdefault(
'InputCollection',
'ITkPixelSpacePoints')
78 kwargs.setdefault(
'DetectorElements',
'ITkPixelDetectorElementCollection')
80 if 'RegSelTool' not in kwargs:
81 from RegionSelector.RegSelToolConfig
import regSelTool_ITkPixel_Cfg
82 kwargs.setdefault(
'RegSelTool', acc.popToolsAndMerge(regSelTool_ITkPixel_Cfg(flags)))
84 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
85 from ActsConfig.ActsMonitoringConfig
import ActsDataPreparationMonitoringToolCfg
86 kwargs.setdefault(
'MonTool', acc.popToolsAndMerge(ActsDataPreparationMonitoringToolCfg(flags,
87 name =
"ActsPixelSpacePointPreparationMonitoringTool")))
90 acc.addEventAlgo(CompFactory.ActsTrk.SpacePointDataPreparationAlg(name, **kwargs))
92 acc.addEventAlgo(CompFactory.ActsTrk.SpacePointCacheDataPreparationAlg(name, **kwargs))
96 name: str =
"ActsStripSpacePointPreparationAlg",
98 useCache: bool =
False,
99 **kwargs: dict) -> ComponentAccumulator:
100 acc = ComponentAccumulator()
102 kwargs.setdefault(
'InputCollection',
'ITkStripSpacePoints')
103 kwargs.setdefault(
'DetectorElements',
'ITkStripDetectorElementCollection')
105 if 'RegSelTool' not in kwargs:
106 from RegionSelector.RegSelToolConfig
import regSelTool_ITkStrip_Cfg
107 kwargs.setdefault(
'RegSelTool', acc.popToolsAndMerge(regSelTool_ITkStrip_Cfg(flags)))
109 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
110 from ActsConfig.ActsMonitoringConfig
import ActsDataPreparationMonitoringToolCfg
111 kwargs.setdefault(
'MonTool', acc.popToolsAndMerge(ActsDataPreparationMonitoringToolCfg(flags,
112 name =
"ActsStripSpacePointPreparationMonitoringTool")))
115 acc.addEventAlgo(CompFactory.ActsTrk.SpacePointDataPreparationAlg(name, **kwargs))
117 acc.addEventAlgo(CompFactory.ActsTrk.SpacePointCacheDataPreparationAlg(name, **kwargs))
129 name: str =
"ActsPixelSpacePointFormationAlg",
131 useCache: bool =
False,
132 **kwargs: dict) -> ComponentAccumulator:
133 acc = ComponentAccumulator()
135 from PixelGeoModelXml.ITkPixelGeoModelConfig
import ITkPixelReadoutGeometryCfg
136 acc.merge(ITkPixelReadoutGeometryCfg(flags))
138 kwargs.setdefault(
'PixelClusters',
'ITkPixelClusters')
139 kwargs.setdefault(
'PixelSpacePoints',
'ITkPixelSpacePoints')
140 kwargs.setdefault(
'ExtraOutputs',
141 [(
'xAOD::SpacePointContainer' , f
'StoreGateSvc+{kwargs["PixelSpacePoints"]}.measurements')])
144 kwargs.setdefault(
'SPCacheBackend',
'ActsPixelSpacePointCache_Back')
145 kwargs.setdefault(
'SPCache',
'ActsPixelSpacePointCache')
147 if 'SpacePointFormationTool' not in kwargs:
150 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
151 from ActsConfig.ActsMonitoringConfig
import ActsPixelSpacePointFormationMonitoringToolCfg
152 kwargs.setdefault(
"MonTool", acc.popToolsAndMerge(ActsPixelSpacePointFormationMonitoringToolCfg(flags)))
156 acc.addEventAlgo(CompFactory.ActsTrk.PixelCacheSpacePointFormationAlg(name, **kwargs))
158 acc.addEventAlgo(CompFactory.ActsTrk.PixelSpacePointFormationAlg(name, **kwargs))
163 name: str =
"ActsStripSpacePointFormationAlg",
165 useCache: bool =
False,
166 **kwargs: dict) -> ComponentAccumulator:
167 acc = ComponentAccumulator()
169 from StripGeoModelXml.ITkStripGeoModelConfig
import ITkStripReadoutGeometryCfg
170 acc.merge(ITkStripReadoutGeometryCfg(flags))
172 from BeamSpotConditions.BeamSpotConditionsConfig
import BeamSpotCondAlgCfg
173 acc.merge(BeamSpotCondAlgCfg(flags))
175 from InDetConfig.SiSpacePointFormationConfig
import ITkSiElementPropertiesTableCondAlgCfg
176 acc.merge(ITkSiElementPropertiesTableCondAlgCfg(flags))
179 kwargs.setdefault(
'StripClusters',
'ITkStripClusters')
180 kwargs.setdefault(
'StripSpacePoints',
'ITkStripSpacePoints')
181 kwargs.setdefault(
'StripOverlapSpacePoints',
'ITkStripOverlapSpacePoints')
182 kwargs.setdefault(
'ExtraOutputs',
183 [(
'xAOD::SpacePointContainer' , f
'StoreGateSvc+{kwargs["StripSpacePoints"]}.measurements'),
184 (
'xAOD::SpacePointContainer' , f
'StoreGateSvc+{kwargs["StripOverlapSpacePoints"]}.measurements')])
188 kwargs.setdefault(
'SPCacheBackend',
'ActsStripSpacePointCache_Back')
189 kwargs.setdefault(
'SPCache',
'ActsStripSpacePointCache')
190 kwargs.setdefault(
'OSPCacheBackend',
'ActsStripOverlapSpacePointCache_Back')
191 kwargs.setdefault(
'OSPCache',
'ActsStripOverlapSpacePointCache')
193 if 'SpacePointFormationTool' not in kwargs:
196 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
197 from ActsConfig.ActsMonitoringConfig
import ActsStripSpacePointFormationMonitoringToolCfg
198 kwargs.setdefault(
"MonTool", acc.popToolsAndMerge(ActsStripSpacePointFormationMonitoringToolCfg(flags)))
201 acc.addEventAlgo(CompFactory.ActsTrk.StripCacheSpacePointFormationAlg(name, **kwargs))
203 acc.addEventAlgo(CompFactory.ActsTrk.StripSpacePointFormationAlg(name, **kwargs))
208 RoIs: str =
"ActsRegionOfInterest",
209 **kwargs: dict) -> ComponentAccumulator:
210 acc = ComponentAccumulator()
212 kwargs.setdefault(
'processPixels', flags.Detector.EnableITkPixel)
213 kwargs.setdefault(
'processStrips', flags.Detector.EnableITkStrip)
214 kwargs.setdefault(
'runCacheCreation', flags.Acts.useCache)
215 kwargs.setdefault(
'runReconstruction',
True)
216 kwargs.setdefault(
'runPreparation', flags.Acts.useCache)
217 kwargs.setdefault(
'processOverlapSpacePoints',
True)
219 if kwargs[
'runCacheCreation']:
222 if kwargs[
'runReconstruction']:
223 if kwargs[
'processPixels']:
226 if kwargs[
'processStrips']:
229 if kwargs[
'runPreparation']:
230 if kwargs[
'processPixels']:
233 **extractChildKwargs(prefix=
'PixelSpacePointPreparationAlg.', **kwargs)))
234 if kwargs[
'processStrips']:
237 **extractChildKwargs(prefix=
'StripSpacePointPreparationAlg.', **kwargs)))
238 if kwargs[
'processOverlapSpacePoints']:
241 **extractChildKwargs(prefix=
'StripOverlapSpacePointPreparationAlg.', **kwargs)))
244 if flags.Acts.SpacePoints.doAnalysis:
245 if kwargs[
'processPixels']:
246 from ActsConfig.ActsAnalysisConfig
import ActsPixelSpacePointAnalysisAlgCfg
247 acc.merge(ActsPixelSpacePointAnalysisAlgCfg(flags, **extractChildKwargs(prefix=
'PixelSpacePointAnalysisAlg.', **kwargs)))
248 if kwargs[
'processStrips']:
249 from ActsConfig.ActsAnalysisConfig
import ActsStripSpacePointAnalysisAlgCfg
250 acc.merge(ActsStripSpacePointAnalysisAlgCfg(flags, **extractChildKwargs(prefix=
'StripSpacePointAnalysisAlg.', **kwargs)))
251 if kwargs[
'processOverlapSpacePoints']:
252 from ActsConfig.ActsAnalysisConfig
import ActsStripOverlapSpacePointAnalysisAlgCfg
253 acc.merge(ActsStripOverlapSpacePointAnalysisAlgCfg(flags, **extractChildKwargs(prefix=
'StripOverlapSpacePointAnalysisAlg.', **kwargs)))
267 previousActsExtension = None) -> ComponentAccumulator:
268 acc = ComponentAccumulator()
270 processPixels = flags.Detector.EnableITkPixel
271 processStrips = flags.Detector.EnableITkStrip
275 from InDetConfig.ITkActsHelpers
import isPrimaryPass
276 if flags.Acts.GNN.Enable
and isPrimaryPass(flags):
278 elif flags.Tracking.ActiveConfig.extension ==
"ActsConversion" or flags.Tracking.ActiveConfig.isLargeD0:
279 processPixels =
False
280 elif isPrimaryPass(flags)
and flags.Tracking.doITkFastTracking:
282 elif flags.Tracking.ActiveConfig.extension ==
"ActsValidateF100" and flags.Tracking.doITkFastTracking:
283 processStrips =
False
285 kwargs.setdefault(
'processPixels', processPixels)
286 kwargs.setdefault(
'processStrips', processStrips)
304 from InDetConfig.ITkActsHelpers
import isValidationPass
305 if isPrimaryPass(flags)
or isValidationPass(flags):
308 kwargs.setdefault(
'runCacheCreation', flags.Acts.useCache)
309 kwargs.setdefault(
'runReconstruction',
True)
310 kwargs.setdefault(
'runPreparation', flags.Acts.useCache)
313 kwargs.setdefault(
'runCacheCreation',
False)
314 kwargs.setdefault(
'runReconstruction', flags.Acts.useCache)
315 kwargs.setdefault(
'runPreparation',
True)
318 processOverlapSpacePoints = processStrips
319 if flags.Tracking.ActiveConfig.extension
in [
'ActsConversion']:
320 processOverlapSpacePoints =
False
321 kwargs.setdefault(
'processOverlapSpacePoints', processOverlapSpacePoints)
324 roisName = f
'{flags.Tracking.ActiveConfig.extension}RegionOfInterest'
326 if flags.Tracking.ActiveConfig.isLargeD0
and flags.Tracking.ActiveConfig.isSecondaryPass:
327 from InDetConfig.ITkActsHelpers
import primaryPassExtension
328 roisName = f
'{primaryPassExtension(flags)}RegionOfInterest'
332 pixelClustersName =
'ITkPixelClusters'
333 stripClustersName =
'ITkStripClusters'
334 pixelSpacePointsName =
'ITkPixelSpacePoints'
335 stripSpacePointsName =
'ITkStripSpacePoints'
336 stripOverlapSpacePointsName =
'ITkStripOverlapSpacePoints'
338 if flags.Tracking.ActiveConfig.isSecondaryPass:
339 pixelClustersName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}PixelClusters'
340 stripClustersName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}StripClusters'
341 pixelSpacePointsName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}PixelSpacePoints'
342 stripSpacePointsName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}StripSpacePoints'
343 stripOverlapSpacePointsName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}StripOverlapSpacePoints'
345 if flags.Acts.useCache:
346 pixelClustersName +=
"_Cached"
347 stripClustersName +=
"_Cached"
350 primaryPixelSpacePointsName =
'ITkPixelSpacePoints'
351 primaryStripSpacePointsName =
'ITkStripSpacePoints'
352 primaryStripOverlapSpacePointsName =
'ITkStripOverlapSpacePoints'
355 if kwargs[
'runCacheCreation']:
356 kwargs.setdefault(
'SpacePointCacheCreatorAlg.name', f
'{flags.Tracking.ActiveConfig.extension}SpacePointCacheCreatorAlg')
359 if kwargs[
'runReconstruction']:
360 if kwargs[
'processPixels']:
361 kwargs.setdefault(
'PixelSpacePointFormationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointFormationAlg')
362 kwargs.setdefault(
'PixelSpacePointFormationAlg.useCache', flags.Acts.useCache)
363 kwargs.setdefault(
'PixelSpacePointFormationAlg.SPCache', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointCache')
364 kwargs.setdefault(
'PixelSpacePointFormationAlg.PixelClusters', pixelClustersName)
365 kwargs.setdefault(
'PixelSpacePointFormationAlg.PixelSpacePoints', pixelSpacePointsName)
367 if kwargs[
'processStrips']:
368 kwargs.setdefault(
'StripSpacePointFormationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointFormationAlg')
369 kwargs.setdefault(
'StripSpacePointFormationAlg.useCache', flags.Acts.useCache)
370 kwargs.setdefault(
'StripSpacePointFormationAlg.SPCache', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointCache')
371 kwargs.setdefault(
'StripSpacePointFormationAlg.StripClusters', stripClustersName)
372 kwargs.setdefault(
'StripSpacePointFormationAlg.StripSpacePoints', stripSpacePointsName)
375 kwargs.setdefault(
'StripSpacePointFormationAlg.ProcessOverlapForStrip', kwargs[
'processOverlapSpacePoints'])
376 kwargs.setdefault(
'StripSpacePointFormationAlg.OSPCache', f
'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointCache')
377 if kwargs[
'processOverlapSpacePoints']:
378 kwargs.setdefault(
'StripSpacePointFormationAlg.StripOverlapSpacePoints', stripOverlapSpacePointsName)
381 kwargs.setdefault(
'StripSpacePointFormationAlg.StripOverlapSpacePoints',
'')
384 if kwargs[
'runPreparation']:
385 if kwargs[
'processPixels']:
386 kwargs.setdefault(
'PixelSpacePointPreparationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointPreparationAlg')
387 kwargs.setdefault(
'PixelSpacePointPreparationAlg.useCache', flags.Acts.useCache)
388 kwargs.setdefault(
'PixelSpacePointPreparationAlg.OutputCollection', f
'{pixelSpacePointsName}_Cached' if kwargs[
'runReconstruction']
else pixelSpacePointsName)
390 if not flags.Acts.useCache:
392 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputCollection', pixelSpacePointsName
if kwargs[
'runReconstruction']
else primaryPixelSpacePointsName)
393 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputIDC',
'')
395 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputCollection',
'')
396 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputIDC', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointCache')
398 if flags.Tracking.ActiveConfig.isSecondaryPass
and previousActsExtension
is not None:
399 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputPrdMap', f
'{previousActsExtension}PrdMap')
402 if kwargs[
'processStrips']:
403 kwargs.setdefault(
'StripSpacePointPreparationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointPreparationAlg')
404 kwargs.setdefault(
'StripSpacePointPreparationAlg.useCache', flags.Acts.useCache)
405 kwargs.setdefault(
'StripSpacePointPreparationAlg.OutputCollection', f
'{stripSpacePointsName}_Cached' if kwargs[
'runReconstruction']
else stripSpacePointsName)
407 if not flags.Acts.useCache:
409 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputCollection', stripSpacePointsName
if kwargs[
'runReconstruction']
else primaryStripSpacePointsName)
410 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputIDC',
'')
412 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputCollection',
'')
413 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputIDC', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointCache')
415 if flags.Tracking.ActiveConfig.isSecondaryPass
and previousActsExtension
is not None:
416 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputPrdMap', f
'{previousActsExtension}PrdMap')
418 if kwargs[
'processOverlapSpacePoints']:
419 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointPreparationAlg')
420 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.useCache', flags.Acts.useCache)
421 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.OutputCollection', f
'{stripOverlapSpacePointsName}_Cached' if kwargs[
'runReconstruction']
else stripOverlapSpacePointsName)
423 if not flags.Acts.useCache:
425 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputCollection', stripOverlapSpacePointsName
if kwargs[
'runReconstruction']
else primaryStripOverlapSpacePointsName)
426 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputIDC',
'')
428 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputCollection',
'')
429 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputIDC', f
'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointCache')
431 if flags.Tracking.ActiveConfig.isSecondaryPass
and previousActsExtension
is not None:
432 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputPrdMap', f
'{previousActsExtension}PrdMap')
435 if flags.Acts.SpacePoints.doAnalysis:
438 if kwargs[
'processPixels']:
439 kwargs.setdefault(
'PixelSpacePointAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointAnalysisAlg')
440 kwargs.setdefault(
'PixelSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
441 kwargs.setdefault(
'PixelSpacePointAnalysisAlg.SpacePointContainerKey', kwargs[
'PixelSpacePointPreparationAlg.OutputCollection']
if kwargs[
'runPreparation']
else kwargs[
'PixelSpacePointFormationAlg.PixelSpacePoints'])
443 if kwargs[
'processStrips']:
444 kwargs.setdefault(
'StripSpacePointAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointAnalysisAlg')
445 kwargs.setdefault(
'StripSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
446 kwargs.setdefault(
'StripSpacePointAnalysisAlg.SpacePointContainerKey', kwargs[
'StripSpacePointPreparationAlg.OutputCollection']
if kwargs[
'runPreparation']
else kwargs[
'StripSpacePointFormationAlg.StripSpacePoints'])
448 if kwargs[
'processOverlapSpacePoints']:
449 kwargs.setdefault(
'StripOverlapSpacePointAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointAnalysisAlg')
450 kwargs.setdefault(
'StripOverlapSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
451 kwargs.setdefault(
'StripOverlapSpacePointAnalysisAlg.SpacePointContainerKey', kwargs[
'StripOverlapSpacePointPreparationAlg.OutputCollection']
if kwargs[
'runPreparation']
else kwargs[
'StripSpacePointFormationAlg.StripOverlapSpacePoints'])
457 if flags.Acts.EDM.PersistifySpacePoints
and kwargs[
'runReconstruction']:
458 from ActsConfig.ActsPersistificationConfig
import PersistifySpacePoints
459 pixelSpacePointCollections =
None if not kwargs[
'processPixels']
else [kwargs[
'PixelSpacePointFormationAlg.PixelSpacePoints']]
460 stripSpacePointCollections = []
461 if kwargs[
'processStrips']:
462 stripSpacePointCollections.append(kwargs[
'StripSpacePointFormationAlg.StripSpacePoints'])
463 if kwargs[
'processOverlapSpacePoints']:
464 stripSpacePointCollections.append(kwargs[
'StripSpacePointFormationAlg.StripOverlapSpacePoints'])
465 if len(stripSpacePointCollections) == 0:
466 stripSpacePointCollections =
None
468 acc.merge(PersistifySpacePoints(flags,
469 pixelSpacePointCollections=pixelSpacePointCollections,
470 stripSpacePointCollections=stripSpacePointCollections))