ATLAS Offline Software
Loading...
Searching...
No Matches
ActsSpacePointFormationConfig Namespace Reference

Functions

ComponentAccumulator ActsSpacePointCacheCreatorAlgCfg (flags, str name="ActsSpacePointCacheCreatorAlg", **dict kwargs)
ComponentAccumulator ActsPixelSpacePointToolCfg (flags, str name="ActsPixelSpacePointTool", **dict kwargs)
ComponentAccumulator ActsCorePixelSpacePointToolCfg (flags, str name="ActsCorePixelSpacePointTool", **dict kwargs)
ComponentAccumulator ActsStripSpacePointToolCfg (flags, str name="ActsStripSpacePointTool", **dict kwargs)
ComponentAccumulator ActsCoreStripSpacePointToolCfg (flags, str name="ActsCoreStripSpacePointTool", **dict kwargs)
ComponentAccumulator ActsPixelSpacePointPreparationAlgCfg (flags, str name="ActsPixelSpacePointPreparationAlg", *, bool useCache=False, **dict kwargs)
ComponentAccumulator ActsStripSpacePointPreparationAlgCfg (flags, str name="ActsStripSpacePointPreparationAlg", *, bool useCache=False, **dict kwargs)
ComponentAccumulator ActsStripOverlapSpacePointPreparationAlgCfg (flags, str name='ActsStripOverlapSpacePointPreparationAlg', *, bool useCache=False, **dict kwargs)
ComponentAccumulator ActsPixelSpacePointFormationAlgCfg (flags, str name="ActsPixelSpacePointFormationAlg", *, bool useCache=False, **dict kwargs)
ComponentAccumulator ActsStripSpacePointFormationAlgCfg (flags, str name="ActsStripSpacePointFormationAlg", *, bool useCache=False, **dict kwargs)
ComponentAccumulator ActsMainSpacePointFormationCfg (flags, *, str RoIs="ActsRegionOfInterest", **dict kwargs)
ComponentAccumulator ActsMainSpacePointFormationStandaloneCfg (flags)
ComponentAccumulator ActsSpacePointFormationCfg (flags, *, previousActsExtension=None)

Function Documentation

◆ ActsCorePixelSpacePointToolCfg()

ComponentAccumulator ActsCorePixelSpacePointToolCfg ( flags,
str name = "ActsCorePixelSpacePointTool",
**dict kwargs )

Definition at line 29 of file ActsSpacePointFormationConfig.py.

31 **kwargs: dict) -> ComponentAccumulator:
32 from InDetConfig.ITkActsHelpers import isFastPrimaryPass
33
34 acc = ComponentAccumulator()
35 if isFastPrimaryPass(flags):
36 kwargs.setdefault('UseMaxVariance', True)
37
38 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometrySvcCfg
39 acc.merge(ActsTrackingGeometrySvcCfg(flags))
40
41 acc.setPrivateTools(CompFactory.ActsTrk.CorePixelSpacePointFormationTool(name, **kwargs))
42 return acc
43

◆ ActsCoreStripSpacePointToolCfg()

ComponentAccumulator ActsCoreStripSpacePointToolCfg ( flags,
str name = "ActsCoreStripSpacePointTool",
**dict kwargs )

Definition at line 66 of file ActsSpacePointFormationConfig.py.

68 **kwargs: dict) -> ComponentAccumulator:
69 acc = ComponentAccumulator()
70
71 kwargs.setdefault("useSCTLayerDep_OverlapCuts", False)
72
73 # This tool has no equivalent of the Athena tool's useBeamSpotConstraint=False
74 if not flags.Acts.SpacePoints.useBeamSpotConstraintStrips:
75 raise RuntimeError("Acts.SpacePoints.useBeamSpotConstraintStrips=False is not supported "
76 "by CoreStripSpacePointFormationTool, use Acts.SpacePointStrategy.ActsTrk")
77
78 # Cosmic cut values are taken from InDetConfig.SiSpacePointFormationConfig
79 from AthenaConfiguration.Enums import BeamType
80 if flags.Beam.Type is BeamType.Cosmics:
81 kwargs.setdefault("Mode", "Cosmic")
82 kwargs.setdefault("StripLengthTolerance", 0.05)
83 kwargs.setdefault("OverlapLimitOpposite", 5)
84
85 if 'LorentzAngleTool' not in kwargs:
86 from SiLorentzAngleTool.ITkStripLorentzAngleConfig import ITkStripLorentzAngleToolCfg
87 kwargs.setdefault("LorentzAngleTool", acc.popToolsAndMerge(ITkStripLorentzAngleToolCfg(flags)) )
88
89 acc.setPrivateTools(CompFactory.ActsTrk.CoreStripSpacePointFormationTool(name, **kwargs))
90 return acc
91

◆ ActsMainSpacePointFormationCfg()

ComponentAccumulator ActsMainSpacePointFormationCfg ( flags,
* ,
str RoIs = "ActsRegionOfInterest",
**dict kwargs )

Definition at line 253 of file ActsSpacePointFormationConfig.py.

256 **kwargs: dict) -> ComponentAccumulator:
257 acc = ComponentAccumulator()
258
259 kwargs.setdefault('processPixels', flags.Acts.SpacePoints.doPixel)
260 kwargs.setdefault('processStrips', flags.Acts.SpacePoints.doStrip)
261 kwargs.setdefault('runCacheCreation', flags.Acts.useCache)
262 kwargs.setdefault('runReconstruction', True)
263 kwargs.setdefault('runPreparation', flags.Acts.useCache)
264 kwargs.setdefault('processOverlapSpacePoints', True)
265
266 if kwargs['runCacheCreation']:
267 acc.merge(ActsSpacePointCacheCreatorAlgCfg(flags, **extractChildKwargs(prefix='SpacePointCacheCreatorAlg.', **kwargs)))
268
269 if kwargs['runReconstruction']:
270 if kwargs['processPixels']:
271 acc.merge(ActsPixelSpacePointFormationAlgCfg(flags,**extractChildKwargs(prefix='PixelSpacePointFormationAlg.', **kwargs)))
272
273 if kwargs['processStrips']:
274 acc.merge(ActsStripSpacePointFormationAlgCfg(flags, **extractChildKwargs(prefix='StripSpacePointFormationAlg.', **kwargs)))
275
276 if kwargs['runPreparation']:
277 if kwargs['processPixels']:
278 acc.merge(ActsPixelSpacePointPreparationAlgCfg(flags,
279 RoIs=RoIs,
280 **extractChildKwargs(prefix='PixelSpacePointPreparationAlg.', **kwargs)))
281 if kwargs['processStrips']:
282 acc.merge(ActsStripSpacePointPreparationAlgCfg(flags,
283 RoIs=RoIs,
284 **extractChildKwargs(prefix='StripSpacePointPreparationAlg.', **kwargs)))
285 if kwargs['processOverlapSpacePoints']:
286 acc.merge(ActsStripOverlapSpacePointPreparationAlgCfg(flags,
287 RoIs=RoIs,
288 **extractChildKwargs(prefix='StripOverlapSpacePointPreparationAlg.', **kwargs)))
289
290 # Analysis extensions
291 if flags.Acts.SpacePoints.doAnalysis:
292 if kwargs['processPixels']:
293 from ActsConfig.ActsAnalysisConfig import ActsPixelSpacePointAnalysisAlgCfg
294 acc.merge(ActsPixelSpacePointAnalysisAlgCfg(flags, **extractChildKwargs(prefix='PixelSpacePointAnalysisAlg.', **kwargs)))
295 if kwargs['processStrips']:
296 from ActsConfig.ActsAnalysisConfig import ActsStripSpacePointAnalysisAlgCfg
297 acc.merge(ActsStripSpacePointAnalysisAlgCfg(flags, **extractChildKwargs(prefix='StripSpacePointAnalysisAlg.', **kwargs)))
298 if kwargs['processOverlapSpacePoints']:
299 from ActsConfig.ActsAnalysisConfig import ActsStripOverlapSpacePointAnalysisAlgCfg
300 acc.merge(ActsStripOverlapSpacePointAnalysisAlgCfg(flags, **extractChildKwargs(prefix='StripOverlapSpacePointAnalysisAlg.', **kwargs)))
301
302 return acc
303
304# Config to be called outside of loops over tracking passes in main reco
305# Will configure subtools based on MainPass

◆ ActsMainSpacePointFormationStandaloneCfg()

ComponentAccumulator ActsMainSpacePointFormationStandaloneCfg ( flags)

Definition at line 306 of file ActsSpacePointFormationConfig.py.

306def ActsMainSpacePointFormationStandaloneCfg(flags) -> ComponentAccumulator:
307 primaryFlags = flags.cloneAndReplace(
308 "Tracking.ActiveConfig",
309 f"Tracking.{flags.Tracking.PrimaryPassConfig.value}Pass")
310 return ActsMainSpacePointFormationCfg(primaryFlags)
311

◆ ActsPixelSpacePointFormationAlgCfg()

ComponentAccumulator ActsPixelSpacePointFormationAlgCfg ( flags,
str name = "ActsPixelSpacePointFormationAlg",
* ,
bool useCache = False,
**dict kwargs )

Definition at line 150 of file ActsSpacePointFormationConfig.py.

154 **kwargs: dict) -> ComponentAccumulator:
155 acc = ComponentAccumulator()
156
157 from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
158 acc.merge(ITkPixelReadoutGeometryCfg(flags))
159
160 kwargs.setdefault('PixelClusters', 'ITkPixelClusters')
161 kwargs.setdefault('PixelSpacePoints', 'ITkPixelSpacePoints')
162 kwargs.setdefault('ExtraOutputs',
163 [('xAOD::SpacePointContainer' , f'StoreGateSvc+{kwargs["PixelSpacePoints"]}.measurements')])
164
165 if useCache:
166 kwargs.setdefault('SPCacheBackend', 'ActsPixelSpacePointCache_Back')
167 kwargs.setdefault('SPCache', 'ActsPixelSpacePointCache')
168
169 if 'SpacePointFormationTool' not in kwargs:
170 from ActsConfig.ActsConfigFlags import SpacePointStrategy
171 if flags.Acts.PixelSpacePointStrategy is SpacePointStrategy.ActsCore:
172 # The algorithm holds the geometry context this tool needs
173 from ActsAlignmentAlgs.AlignmentAlgsConfig import ActsGeometryContextAlgCfg
174 acc.merge(ActsGeometryContextAlgCfg(flags))
175 # ContextUtility also carries a magnetic field key, which is unused here
176 kwargs.setdefault('MagneticContextKey', '')
177 kwargs.setdefault("SpacePointFormationTool", acc.popToolsAndMerge(ActsCorePixelSpacePointToolCfg(flags)))
178 else:
179 kwargs.setdefault("SpacePointFormationTool", acc.popToolsAndMerge(ActsPixelSpacePointToolCfg(flags)))
180
181 if flags.Acts.doMonitoring and 'MonTool' not in kwargs:
182 from ActsConfig.ActsMonitoringConfig import ActsPixelSpacePointFormationMonitoringToolCfg
183 kwargs.setdefault("MonTool", acc.popToolsAndMerge(ActsPixelSpacePointFormationMonitoringToolCfg(flags)))
184
185
186 if useCache:
187 acc.addEventAlgo(CompFactory.ActsTrk.PixelCacheSpacePointFormationAlg(name, **kwargs))
188 else:
189 acc.addEventAlgo(CompFactory.ActsTrk.PixelSpacePointFormationAlg(name, **kwargs))
190
191 return acc
192

◆ ActsPixelSpacePointPreparationAlgCfg()

ComponentAccumulator ActsPixelSpacePointPreparationAlgCfg ( flags,
str name = "ActsPixelSpacePointPreparationAlg",
* ,
bool useCache = False,
**dict kwargs )

Definition at line 92 of file ActsSpacePointFormationConfig.py.

96 **kwargs: dict) -> ComponentAccumulator:
97 acc = ComponentAccumulator()
98
99 kwargs.setdefault('InputCollection', 'ITkPixelSpacePoints')
100 kwargs.setdefault('DetectorElements', 'ITkPixelDetectorElementCollection')
101
102 if 'RegSelTool' not in kwargs:
103 from RegionSelector.RegSelToolConfig import regSelTool_ITkPixel_Cfg
104 kwargs.setdefault('RegSelTool', acc.popToolsAndMerge(regSelTool_ITkPixel_Cfg(flags)))
105
106 if flags.Acts.doMonitoring and 'MonTool' not in kwargs:
107 from ActsConfig.ActsMonitoringConfig import ActsDataPreparationMonitoringToolCfg
108 kwargs.setdefault('MonTool', acc.popToolsAndMerge(ActsDataPreparationMonitoringToolCfg(flags,
109 name = "ActsPixelSpacePointPreparationMonitoringTool")))
110
111 if not useCache:
112 acc.addEventAlgo(CompFactory.ActsTrk.SpacePointDataPreparationAlg(name, **kwargs))
113 else:
114 acc.addEventAlgo(CompFactory.ActsTrk.SpacePointCacheDataPreparationAlg(name, **kwargs))
115 return acc
116

◆ ActsPixelSpacePointToolCfg()

ComponentAccumulator ActsPixelSpacePointToolCfg ( flags,
str name = "ActsPixelSpacePointTool",
**dict kwargs )

Definition at line 18 of file ActsSpacePointFormationConfig.py.

20 **kwargs: dict) -> ComponentAccumulator:
21 from InDetConfig.ITkActsHelpers import isFastPrimaryPass
22
23 acc = ComponentAccumulator()
24 if isFastPrimaryPass(flags):
25 kwargs.setdefault('UseMaxVariance', True)
26 acc.setPrivateTools(CompFactory.ActsTrk.PixelSpacePointFormationTool(name, **kwargs))
27 return acc
28

◆ ActsSpacePointCacheCreatorAlgCfg()

ComponentAccumulator ActsSpacePointCacheCreatorAlgCfg ( flags,
str name = "ActsSpacePointCacheCreatorAlg",
**dict kwargs )

Definition at line 8 of file ActsSpacePointFormationConfig.py.

10 **kwargs: dict) -> ComponentAccumulator:
11 acc = ComponentAccumulator()
12 kwargs.setdefault("PixelSpacePointCacheKey", "ActsPixelSpacePointCache_Back")
13 kwargs.setdefault("StripSpacePointCacheKey", "ActsStripSpacePointCache_Back")
14 kwargs.setdefault("StripOverlapSpacePointCacheKey", "ActsStripOverlapSpacePointCache_Back")
15 acc.addEventAlgo(CompFactory.ActsTrk.Cache.CreatorAlg(name, **kwargs))
16 return acc
17

◆ ActsSpacePointFormationCfg()

ComponentAccumulator ActsSpacePointFormationCfg ( flags,
* ,
previousActsExtension = None )

Definition at line 312 of file ActsSpacePointFormationConfig.py.

314 previousActsExtension = None) -> ComponentAccumulator:
315 acc = ComponentAccumulator()
316
317 kwargs = dict()
318
319 processPixels = flags.Tracking.ActiveConfig.useITkPixelSeeding or (
320 flags.Acts.SpacePoints.doPixel and not flags.Tracking.ActiveConfig.isSecondaryPass)
321 processStrips = flags.Tracking.ActiveConfig.useITkStripSeeding or (
322 flags.Acts.SpacePoints.doStrip and not flags.Tracking.ActiveConfig.isSecondaryPass)
323
324 kwargs.setdefault('processPixels', processPixels)
325 kwargs.setdefault('processStrips', processStrips)
326
327 # Similarly to Clusterization, space point formation is a three step process at maximum:
328 # (1) Cache Creation
329 # (2) Space Point formation algorithm (reconstruction of space points)
330 # (3) Preparation of collection for downstream algorithms
331 # What step is scheduled depends on the tracking pass and the activation
332 # or de-activation of caching mechanism.
333
334 # Secondary passes do not need cache creation, that has to be performed
335 # on the primary pass, and only if the caching is enabled.
336 # Reconstruction can run on secondary passes only if the caching is enabled,
337 # this is because we may need to process detector elements not processed
338 # on the primary pass.
339 # Preparation has to be performed on secondary passes always, and on primary
340 # pass only if cache is enabled. In the latter case it is used to collect all
341 # the clusters from all views before passing them to the downstream algorithms
342
343 from InDetConfig.ITkActsHelpers import isValidationPass
344 if not flags.Tracking.ActiveConfig.isSecondaryPass or isValidationPass(flags):
345 # Primary pass
346 # Validation passes count as primary passes
347 kwargs.setdefault('runCacheCreation', flags.Acts.useCache)
348 kwargs.setdefault('runReconstruction', True)
349 kwargs.setdefault('runPreparation', flags.Acts.useCache)
350 else:
351 # Secondary passes
352 kwargs.setdefault('runCacheCreation', False)
353 kwargs.setdefault('runReconstruction', flags.Acts.useCache)
354 kwargs.setdefault('runPreparation', True)
355
356 # Overlap Space Points may not be required
357 processOverlapSpacePoints = kwargs['processStrips']
358 from AthenaConfiguration.Enums import BeamType
359 if flags.Tracking.ActiveConfig.extension in ['ActsConversion'] or flags.Beam.Type is BeamType.Cosmics:
360 processOverlapSpacePoints = False
361 kwargs.setdefault('processOverlapSpacePoints', processOverlapSpacePoints)
362
363 # Name of the RoI to be used
364 roisName = f'{flags.Tracking.ActiveConfig.extension}RegionOfInterest'
365 # Large Radius pass uses the same roi as the primary pass (FS roi)
366 if flags.Tracking.ActiveConfig.isLargeD0 and flags.Tracking.ActiveConfig.isSecondaryPass:
367 from InDetConfig.ITkActsHelpers import primaryPassExtension
368 roisName = f'{primaryPassExtension(flags)}RegionOfInterest'
369
370 # Cluster Collection name(s) and Space Point Collection name(s)
371 # The name depends on the tracking pass as well as the cache mechanism
372 pixelClustersName = 'ITkPixelClusters'
373 stripClustersName = 'ITkStripClusters'
374 pixelSpacePointsName = 'ITkPixelSpacePoints'
375 stripSpacePointsName = 'ITkStripSpacePoints'
376 stripOverlapSpacePointsName = 'ITkStripOverlapSpacePoints'
377 # Secondary passes modify the collection name
378 if flags.Tracking.ActiveConfig.isSecondaryPass:
379 pixelClustersName = f'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}PixelClusters'
380 stripClustersName = f'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}StripClusters'
381 pixelSpacePointsName = f'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}PixelSpacePoints'
382 stripSpacePointsName = f'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}StripSpacePoints'
383 stripOverlapSpacePointsName = f'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}StripOverlapSpacePoints'
384 # if cache is enabled, add "_Cached" at the end
385 if flags.Acts.useCache:
386 pixelClustersName += "_Cached"
387 stripClustersName += "_Cached"
388
389 # Primary collections for space points (i.e. produced by primary pass)
390 primaryPixelSpacePointsName = 'ITkPixelSpacePoints'
391 primaryStripSpacePointsName = 'ITkStripSpacePoints'
392 primaryStripOverlapSpacePointsName = 'ITkStripOverlapSpacePoints'
393
394 # Configuration for (1)
395 if kwargs['runCacheCreation']:
396 kwargs.setdefault('SpacePointCacheCreatorAlg.name', f'{flags.Tracking.ActiveConfig.extension}SpacePointCacheCreatorAlg')
397
398 # Configuration for (2)
399 if kwargs['runReconstruction']:
400 if kwargs['processPixels']:
401 kwargs.setdefault('PixelSpacePointFormationAlg.name', f'{flags.Tracking.ActiveConfig.extension}PixelSpacePointFormationAlg')
402 kwargs.setdefault('PixelSpacePointFormationAlg.useCache', flags.Acts.useCache)
403 kwargs.setdefault('PixelSpacePointFormationAlg.SPCache', f'{flags.Tracking.ActiveConfig.extension}PixelSpacePointCache')
404 kwargs.setdefault('PixelSpacePointFormationAlg.PixelClusters', pixelClustersName)
405 kwargs.setdefault('PixelSpacePointFormationAlg.PixelSpacePoints', pixelSpacePointsName)
406
407 if kwargs['processStrips']:
408 kwargs.setdefault('StripSpacePointFormationAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripSpacePointFormationAlg')
409 kwargs.setdefault('StripSpacePointFormationAlg.useCache', flags.Acts.useCache)
410 kwargs.setdefault('StripSpacePointFormationAlg.SPCache', f'{flags.Tracking.ActiveConfig.extension}StripSpacePointCache')
411 kwargs.setdefault('StripSpacePointFormationAlg.StripClusters', stripClustersName)
412 kwargs.setdefault('StripSpacePointFormationAlg.StripSpacePoints', stripSpacePointsName)
413
414 # Handling of Overlap Space Points
415 kwargs.setdefault('StripSpacePointFormationAlg.ProcessOverlapForStrip', kwargs['processOverlapSpacePoints'])
416 kwargs.setdefault('StripSpacePointFormationAlg.OSPCache', f'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointCache')
417 if kwargs['processOverlapSpacePoints']:
418 kwargs.setdefault('StripSpacePointFormationAlg.StripOverlapSpacePoints', stripOverlapSpacePointsName)
419 else:
420 # Disable keys
421 kwargs.setdefault('StripSpacePointFormationAlg.StripOverlapSpacePoints', '')
422
423 # Configuration for (3)
424 if kwargs['runPreparation']:
425 if kwargs['processPixels']:
426 kwargs.setdefault('PixelSpacePointPreparationAlg.name', f'{flags.Tracking.ActiveConfig.extension}PixelSpacePointPreparationAlg')
427 kwargs.setdefault('PixelSpacePointPreparationAlg.useCache', flags.Acts.useCache)
428 kwargs.setdefault('PixelSpacePointPreparationAlg.OutputCollection', f'{pixelSpacePointsName}_Cached' if kwargs['runReconstruction'] else pixelSpacePointsName)
429 # The input is one between the collection (w/o cache) and the IDC (w/ cache)
430 if not flags.Acts.useCache:
431 # Take the collection from the reconstruction step. If not available take the collection from the primary pass
432 kwargs.setdefault('PixelSpacePointPreparationAlg.InputCollection', pixelSpacePointsName if kwargs['runReconstruction'] else primaryPixelSpacePointsName)
433 kwargs.setdefault('PixelSpacePointPreparationAlg.InputIDC', '')
434 else:
435 kwargs.setdefault('PixelSpacePointPreparationAlg.InputCollection', '')
436 kwargs.setdefault('PixelSpacePointPreparationAlg.InputIDC', f'{flags.Tracking.ActiveConfig.extension}PixelSpacePointCache')
437 # Prd Map
438 if flags.Tracking.ActiveConfig.isSecondaryPass and previousActsExtension is not None:
439 kwargs.setdefault('PixelSpacePointPreparationAlg.InputPrdMap', f'{previousActsExtension}PrdMap')
440
441
442 if kwargs['processStrips']:
443 kwargs.setdefault('StripSpacePointPreparationAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripSpacePointPreparationAlg')
444 kwargs.setdefault('StripSpacePointPreparationAlg.useCache', flags.Acts.useCache)
445 kwargs.setdefault('StripSpacePointPreparationAlg.OutputCollection', f'{stripSpacePointsName}_Cached' if kwargs['runReconstruction'] else stripSpacePointsName)
446 # The input is one between the collection (w/o cache) and the IDC (w/ cache)
447 if not flags.Acts.useCache:
448 # Take the collection from the reconstruction step. If not available take the collection from the primary pass
449 kwargs.setdefault('StripSpacePointPreparationAlg.InputCollection', stripSpacePointsName if kwargs['runReconstruction'] else primaryStripSpacePointsName)
450 kwargs.setdefault('StripSpacePointPreparationAlg.InputIDC', '')
451 else:
452 kwargs.setdefault('StripSpacePointPreparationAlg.InputCollection', '')
453 kwargs.setdefault('StripSpacePointPreparationAlg.InputIDC', f'{flags.Tracking.ActiveConfig.extension}StripSpacePointCache')
454 # Prd Map
455 if flags.Tracking.ActiveConfig.isSecondaryPass and previousActsExtension is not None:
456 kwargs.setdefault('StripSpacePointPreparationAlg.InputPrdMap', f'{previousActsExtension}PrdMap')
457
458 if kwargs['processOverlapSpacePoints']:
459 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointPreparationAlg')
460 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.useCache', flags.Acts.useCache)
461 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.OutputCollection', f'{stripOverlapSpacePointsName}_Cached' if kwargs['runReconstruction'] else stripOverlapSpacePointsName)
462 # The input is one between the collection (w/o cache) and the IDC (w/ cache)
463 if not flags.Acts.useCache:
464 # Take the collection from the reconstruction step. If not available take the collection from the primary pass
465 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.InputCollection', stripOverlapSpacePointsName if kwargs['runReconstruction'] else primaryStripOverlapSpacePointsName)
466 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.InputIDC', '')
467 else:
468 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.InputCollection', '')
469 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.InputIDC', f'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointCache')
470 # Prd Map
471 if flags.Tracking.ActiveConfig.isSecondaryPass and previousActsExtension is not None:
472 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.InputPrdMap', f'{previousActsExtension}PrdMap')
473
474 # Analysis algo(s)
475 if flags.Acts.SpacePoints.doAnalysis:
476 # Run analysis code on the resulting space point collection produced by this tracking pass
477 # This collection is the result of (3) if it ran, else the result of (2). We are sure at least one of them run
478 if kwargs['processPixels']:
479 kwargs.setdefault('PixelSpacePointAnalysisAlg.name', f'{flags.Tracking.ActiveConfig.extension}PixelSpacePointAnalysisAlg')
480 kwargs.setdefault('PixelSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
481 kwargs.setdefault('PixelSpacePointAnalysisAlg.SpacePointContainerKey', kwargs['PixelSpacePointPreparationAlg.OutputCollection'] if kwargs['runPreparation'] else kwargs['PixelSpacePointFormationAlg.PixelSpacePoints'])
482
483 if kwargs['processStrips']:
484 kwargs.setdefault('StripSpacePointAnalysisAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripSpacePointAnalysisAlg')
485 kwargs.setdefault('StripSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
486 kwargs.setdefault('StripSpacePointAnalysisAlg.SpacePointContainerKey', kwargs['StripSpacePointPreparationAlg.OutputCollection'] if kwargs['runPreparation'] else kwargs['StripSpacePointFormationAlg.StripSpacePoints'])
487
488 if kwargs['processOverlapSpacePoints']:
489 kwargs.setdefault('StripOverlapSpacePointAnalysisAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointAnalysisAlg')
490 kwargs.setdefault('StripOverlapSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
491 kwargs.setdefault('StripOverlapSpacePointAnalysisAlg.SpacePointContainerKey', kwargs['StripOverlapSpacePointPreparationAlg.OutputCollection'] if kwargs['runPreparation'] else kwargs['StripSpacePointFormationAlg.StripOverlapSpacePoints'])
492
493 acc.merge(ActsMainSpacePointFormationCfg(flags, RoIs=roisName, **kwargs))
494
495
496 # Persistification
497 if kwargs['runReconstruction']:
498 from ActsConfig.ActsPersistificationConfig import PersistifySpacePoints
499 pixelSpacePointCollections = None if not kwargs['processPixels'] else [kwargs['PixelSpacePointFormationAlg.PixelSpacePoints']]
500 stripSpacePointCollections = []
501 if kwargs['processStrips']:
502 stripSpacePointCollections.append(kwargs['StripSpacePointFormationAlg.StripSpacePoints'])
503 if kwargs['processOverlapSpacePoints']:
504 stripSpacePointCollections.append(kwargs['StripSpacePointFormationAlg.StripOverlapSpacePoints'])
505 if len(stripSpacePointCollections) == 0:
506 stripSpacePointCollections = None
507
508 acc.merge(PersistifySpacePoints(flags,
509 pixelSpacePointCollections=pixelSpacePointCollections,
510 stripSpacePointCollections=stripSpacePointCollections))
511 return acc
512

◆ ActsStripOverlapSpacePointPreparationAlgCfg()

ComponentAccumulator ActsStripOverlapSpacePointPreparationAlgCfg ( flags,
str name = 'ActsStripOverlapSpacePointPreparationAlg',
* ,
bool useCache = False,
**dict kwargs )

Definition at line 142 of file ActsSpacePointFormationConfig.py.

146 **kwargs: dict) -> ComponentAccumulator:
147 kwargs.setdefault('InputCollection', 'ITkStripOverlapSpacePoints')
148 return ActsStripSpacePointPreparationAlgCfg(flags, name=name, useCache=useCache, **kwargs)
149

◆ ActsStripSpacePointFormationAlgCfg()

ComponentAccumulator ActsStripSpacePointFormationAlgCfg ( flags,
str name = "ActsStripSpacePointFormationAlg",
* ,
bool useCache = False,
**dict kwargs )

Definition at line 193 of file ActsSpacePointFormationConfig.py.

197 **kwargs: dict) -> ComponentAccumulator:
198 acc = ComponentAccumulator()
199
200 from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripReadoutGeometryCfg
201 acc.merge(ITkStripReadoutGeometryCfg(flags))
202
203 from BeamSpotConditions.BeamSpotConditionsConfig import BeamSpotCondAlgCfg
204 acc.merge(BeamSpotCondAlgCfg(flags))
205
206 from InDetConfig.SiSpacePointFormationConfig import ITkSiElementPropertiesTableCondAlgCfg
207 acc.merge(ITkSiElementPropertiesTableCondAlgCfg(flags))
208
209
210 kwargs.setdefault('StripClusters', 'ITkStripClusters')
211 kwargs.setdefault('StripSpacePoints', 'ITkStripSpacePoints')
212 kwargs.setdefault('StripOverlapSpacePoints', 'ITkStripOverlapSpacePoints')
213 kwargs.setdefault('ExtraOutputs',
214 [('xAOD::SpacePointContainer' , f'StoreGateSvc+{kwargs["StripSpacePoints"]}.measurements'),
215 ('xAOD::SpacePointContainer' , f'StoreGateSvc+{kwargs["StripOverlapSpacePoints"]}.measurements')])
216
217
218 if useCache:
219 kwargs.setdefault('SPCacheBackend', 'ActsStripSpacePointCache_Back')
220 kwargs.setdefault('SPCache', 'ActsStripSpacePointCache')
221 kwargs.setdefault('OSPCacheBackend', 'ActsStripOverlapSpacePointCache_Back')
222 kwargs.setdefault('OSPCache', 'ActsStripOverlapSpacePointCache')
223
224 from ActsConfig.ActsConfigFlags import SpacePointStrategy
225 useActsCore = flags.Acts.SpacePointStrategy is SpacePointStrategy.ActsCore
226
227 if 'SpacePointFormationTool' not in kwargs:
228 if useActsCore:
229 kwargs.setdefault('SpacePointFormationTool', acc.popToolsAndMerge(ActsCoreStripSpacePointToolCfg(flags)))
230 else:
231 kwargs.setdefault('SpacePointFormationTool', acc.popToolsAndMerge(ActsStripSpacePointToolCfg(flags)))
232
233 from AthenaConfiguration.Enums import BeamType
234 if flags.Beam.Type is BeamType.Cosmics:
235 kwargs.setdefault('OverrideBeamSpot', True)
236 kwargs.setdefault('VertexX', 0)
237 kwargs.setdefault('VertexZ', 0)
238 # The Athena implementation needs the far-away point for the vertical track
239 # hypothesis; ActsCore in cosmic mode ignores the vertex and must stay at the origin
240 kwargs.setdefault('VertexY', 0 if useActsCore else 99999999)
241 kwargs.setdefault('ProcessOverlapForStrip', False)
242
243 if flags.Acts.doMonitoring and 'MonTool' not in kwargs:
244 from ActsConfig.ActsMonitoringConfig import ActsStripSpacePointFormationMonitoringToolCfg
245 kwargs.setdefault("MonTool", acc.popToolsAndMerge(ActsStripSpacePointFormationMonitoringToolCfg(flags)))
246
247 if useCache:
248 acc.addEventAlgo(CompFactory.ActsTrk.StripCacheSpacePointFormationAlg(name, **kwargs))
249 else:
250 acc.addEventAlgo(CompFactory.ActsTrk.StripSpacePointFormationAlg(name, **kwargs))
251 return acc
252

◆ ActsStripSpacePointPreparationAlgCfg()

ComponentAccumulator ActsStripSpacePointPreparationAlgCfg ( flags,
str name = "ActsStripSpacePointPreparationAlg",
* ,
bool useCache = False,
**dict kwargs )

Definition at line 117 of file ActsSpacePointFormationConfig.py.

121 **kwargs: dict) -> ComponentAccumulator:
122 acc = ComponentAccumulator()
123
124 kwargs.setdefault('InputCollection', 'ITkStripSpacePoints')
125 kwargs.setdefault('DetectorElements', 'ITkStripDetectorElementCollection')
126
127 if 'RegSelTool' not in kwargs:
128 from RegionSelector.RegSelToolConfig import regSelTool_ITkStrip_Cfg
129 kwargs.setdefault('RegSelTool', acc.popToolsAndMerge(regSelTool_ITkStrip_Cfg(flags)))
130
131 if flags.Acts.doMonitoring and 'MonTool' not in kwargs:
132 from ActsConfig.ActsMonitoringConfig import ActsDataPreparationMonitoringToolCfg
133 kwargs.setdefault('MonTool', acc.popToolsAndMerge(ActsDataPreparationMonitoringToolCfg(flags,
134 name = "ActsStripSpacePointPreparationMonitoringTool")))
135
136 if not useCache:
137 acc.addEventAlgo(CompFactory.ActsTrk.SpacePointDataPreparationAlg(name, **kwargs))
138 else:
139 acc.addEventAlgo(CompFactory.ActsTrk.SpacePointCacheDataPreparationAlg(name, **kwargs))
140 return acc
141

◆ ActsStripSpacePointToolCfg()

ComponentAccumulator ActsStripSpacePointToolCfg ( flags,
str name = "ActsStripSpacePointTool",
**dict kwargs )

Definition at line 44 of file ActsSpacePointFormationConfig.py.

46 **kwargs: dict) -> ComponentAccumulator:
47 acc = ComponentAccumulator()
48
49 kwargs.setdefault("useSCTLayerDep_OverlapCuts", False)
50
51 kwargs.setdefault("useBeamSpotConstraint", flags.Acts.SpacePoints.useBeamSpotConstraintStrips)
52
53 # Cosmic cut values are taken from InDetConfig.SiSpacePointFormationConfig
54 from AthenaConfiguration.Enums import BeamType
55 if flags.Beam.Type is BeamType.Cosmics:
56 kwargs.setdefault("StripLengthTolerance", 0.05)
57 kwargs.setdefault("OverlapLimitOpposite", 5)
58
59 if 'LorentzAngleTool' not in kwargs:
60 from SiLorentzAngleTool.ITkStripLorentzAngleConfig import ITkStripLorentzAngleToolCfg
61 kwargs.setdefault("LorentzAngleTool", acc.popToolsAndMerge(ITkStripLorentzAngleToolCfg(flags)) )
62
63 acc.setPrivateTools(CompFactory.ActsTrk.StripSpacePointFormationTool(name, **kwargs))
64 return acc
65