3 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory
import CompFactory
5 from ActsConfig.ActsUtilities
import extractChildKwargs
8 name: str =
"ActsSpacePointCacheCreatorAlg",
9 **kwargs: dict) -> ComponentAccumulator:
11 kwargs.setdefault(
"PixelSpacePointCacheKey",
"ActsPixelSpacePointCache_Back")
12 kwargs.setdefault(
"StripSpacePointCacheKey",
"ActsStripSpacePointCache_Back")
13 kwargs.setdefault(
"StripOverlapSpacePointCacheKey",
"ActsStripOverlapSpacePointCache_Back")
14 acc.addEventAlgo(CompFactory.ActsTrk.Cache.CreatorAlg(name, **kwargs))
18 name: str =
"ActsPixelSpacePointTool",
19 **kwargs: dict) -> ComponentAccumulator:
21 acc.setPrivateTools(CompFactory.ActsTrk.PixelSpacePointFormationTool(name, **kwargs))
25 name: str =
"ActsStripSpacePointTool",
26 **kwargs: dict) -> ComponentAccumulator:
29 kwargs.setdefault(
"useSCTLayerDep_OverlapCuts",
False)
31 if 'LorentzAngleTool' not in kwargs:
32 from SiLorentzAngleTool.ITkStripLorentzAngleConfig
import ITkStripLorentzAngleToolCfg
35 acc.setPrivateTools(CompFactory.ActsTrk.StripSpacePointFormationTool(name, **kwargs))
39 name: str =
"ActsCoreStripSpacePointTool",
40 **kwargs: dict) -> ComponentAccumulator:
43 from ActsConfig.ActsGeometryConfig
import ActsDetectorElementToActsGeometryIdMappingAlgCfg
45 kwargs.setdefault(
'DetectorElementToActsGeometryIdMapKey',
'DetectorElementToActsGeometryIdMap')
46 kwargs.setdefault(
"useSCTLayerDep_OverlapCuts",
False)
48 if 'LorentzAngleTool' not in kwargs:
49 from SiLorentzAngleTool.ITkStripLorentzAngleConfig
import ITkStripLorentzAngleToolCfg
52 if 'TrackingGeometryTool' not in kwargs:
53 from ActsConfig.ActsGeometryConfig
import ActsTrackingGeometryToolCfg
56 acc.setPrivateTools(CompFactory.ActsTrk.CoreStripSpacePointFormationTool(name, **kwargs))
60 name: str =
"ActsPixelSpacePointPreparationAlg",
62 useCache: bool =
False,
63 **kwargs: dict) -> ComponentAccumulator:
66 kwargs.setdefault(
'InputCollection',
'ITkPixelSpacePoints')
67 kwargs.setdefault(
'DetectorElements',
'ITkPixelDetectorElementCollection')
69 if 'RegSelTool' not in kwargs:
70 from RegionSelector.RegSelToolConfig
import regSelTool_ITkPixel_Cfg
73 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
74 from ActsConfig.ActsMonitoringConfig
import ActsDataPreparationMonitoringToolCfg
76 name =
"ActsPixelSpacePointPreparationMonitoringTool")))
79 acc.addEventAlgo(CompFactory.ActsTrk.SpacePointDataPreparationAlg(name, **kwargs))
81 acc.addEventAlgo(CompFactory.ActsTrk.SpacePointCacheDataPreparationAlg(name, **kwargs))
85 name: str =
"ActsStripSpacePointPreparationAlg",
87 useCache: bool =
False,
88 **kwargs: dict) -> ComponentAccumulator:
91 kwargs.setdefault(
'InputCollection',
'ITkStripSpacePoints')
92 kwargs.setdefault(
'DetectorElements',
'ITkStripDetectorElementCollection')
94 if 'RegSelTool' not in kwargs:
95 from RegionSelector.RegSelToolConfig
import regSelTool_ITkStrip_Cfg
98 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
99 from ActsConfig.ActsMonitoringConfig
import ActsDataPreparationMonitoringToolCfg
101 name =
"ActsStripSpacePointPreparationMonitoringTool")))
104 acc.addEventAlgo(CompFactory.ActsTrk.SpacePointDataPreparationAlg(name, **kwargs))
106 acc.addEventAlgo(CompFactory.ActsTrk.SpacePointCacheDataPreparationAlg(name, **kwargs))
110 name: str =
'ActsStripOverlapSpacePointPreparationAlg',
112 useCache: bool =
False,
113 **kwargs: dict) -> ComponentAccumulator:
114 kwargs.setdefault(
'InputCollection',
'ITkStripOverlapSpacePoints')
118 name: str =
"ActsPixelSpacePointFormationAlg",
120 useCache: bool =
False,
121 **kwargs: dict) -> ComponentAccumulator:
124 from PixelGeoModelXml.ITkPixelGeoModelConfig
import ITkPixelReadoutGeometryCfg
127 kwargs.setdefault(
'PixelClusters',
'ITkPixelClusters')
128 kwargs.setdefault(
'PixelSpacePoints',
'ITkPixelSpacePoints')
131 kwargs.setdefault(
'SPCacheBackend',
'ActsPixelSpacePointCache_Back')
132 kwargs.setdefault(
'SPCache',
'ActsPixelSpacePointCache')
134 if 'SpacePointFormationTool' not in kwargs:
137 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
138 from ActsConfig.ActsMonitoringConfig
import ActsPixelSpacePointFormationMonitoringToolCfg
143 acc.addEventAlgo(CompFactory.ActsTrk.PixelCacheSpacePointFormationAlg(name, **kwargs))
145 acc.addEventAlgo(CompFactory.ActsTrk.PixelSpacePointFormationAlg(name, **kwargs))
150 name: str =
"ActsStripSpacePointFormationAlg",
152 useCache: bool =
False,
153 **kwargs: dict) -> ComponentAccumulator:
156 from StripGeoModelXml.ITkStripGeoModelConfig
import ITkStripReadoutGeometryCfg
159 from BeamSpotConditions.BeamSpotConditionsConfig
import BeamSpotCondAlgCfg
162 from InDetConfig.SiSpacePointFormationConfig
import ITkSiElementPropertiesTableCondAlgCfg
166 kwargs.setdefault(
'StripClusters',
'ITkStripClusters')
167 kwargs.setdefault(
'StripSpacePoints',
'ITkStripSpacePoints')
168 kwargs.setdefault(
'StripOverlapSpacePoints',
'ITkStripOverlapSpacePoints')
171 kwargs.setdefault(
'SPCacheBackend',
'ActsStripSpacePointCache_Back')
172 kwargs.setdefault(
'SPCache',
'ActsStripSpacePointCache')
173 kwargs.setdefault(
'OSPCacheBackend',
'ActsStripOverlapSpacePointCache_Back')
174 kwargs.setdefault(
'OSPCache',
'ActsStripOverlapSpacePointCache')
176 if 'SpacePointFormationTool' not in kwargs:
177 from ActsConfig.ActsConfigFlags
import SpacePointStrategy
178 if flags.Acts.SpacePointStrategy
is SpacePointStrategy.ActsCore:
183 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
184 from ActsConfig.ActsMonitoringConfig
import ActsStripSpacePointFormationMonitoringToolCfg
188 acc.addEventAlgo(CompFactory.ActsTrk.StripCacheSpacePointFormationAlg(name, **kwargs))
190 acc.addEventAlgo(CompFactory.ActsTrk.StripSpacePointFormationAlg(name, **kwargs))
195 RoIs: str =
"ActsRegionOfInterest",
196 **kwargs: dict) -> ComponentAccumulator:
199 kwargs.setdefault(
'processPixels', flags.Detector.EnableITkPixel)
200 kwargs.setdefault(
'processStrips', flags.Detector.EnableITkStrip)
201 kwargs.setdefault(
'runCacheCreation', flags.Acts.useCache)
202 kwargs.setdefault(
'runReconstruction',
True)
203 kwargs.setdefault(
'runPreparation', flags.Acts.useCache)
204 kwargs.setdefault(
'processOverlapSpacePoints',
True)
206 if kwargs[
'runCacheCreation']:
209 if kwargs[
'runReconstruction']:
210 if kwargs[
'processPixels']:
213 if kwargs[
'processStrips']:
216 if kwargs[
'runPreparation']:
217 if kwargs[
'processPixels']:
221 if kwargs[
'processStrips']:
225 if kwargs[
'processOverlapSpacePoints']:
231 if flags.Acts.SpacePoints.doAnalysis:
232 if kwargs[
'processPixels']:
233 from ActsConfig.ActsAnalysisConfig
import ActsPixelSpacePointAnalysisAlgCfg
235 if kwargs[
'processStrips']:
236 from ActsConfig.ActsAnalysisConfig
import ActsStripSpacePointAnalysisAlgCfg
238 if kwargs[
'processOverlapSpacePoints']:
239 from ActsConfig.ActsAnalysisConfig
import ActsStripOverlapSpacePointAnalysisAlgCfg
246 previousActsExtension = None) -> ComponentAccumulator:
249 processPixels = flags.Detector.EnableITkPixel
250 processStrips = flags.Detector.EnableITkStrip
254 if flags.Tracking.ActiveConfig.extension
in [
"ActsConversion",
"ActsLargeRadius"]:
255 processPixels =
False
256 elif flags.Tracking.doITkFastTracking:
258 processStrips =
False
261 kwargs.setdefault(
'processPixels', processPixels)
262 kwargs.setdefault(
'processStrips', processStrips)
280 if flags.Tracking.ActiveConfig.isSecondaryPass:
282 kwargs.setdefault(
'runCacheCreation',
False)
283 kwargs.setdefault(
'runReconstruction', flags.Acts.useCache)
284 kwargs.setdefault(
'runPreparation',
True)
287 kwargs.setdefault(
'runCacheCreation', flags.Acts.useCache)
288 kwargs.setdefault(
'runReconstruction',
True)
289 kwargs.setdefault(
'runPreparation', flags.Acts.useCache)
292 processOverlapSpacePoints = processStrips
293 if flags.Tracking.ActiveConfig.extension
in [
'ActsConversion']:
294 processOverlapSpacePoints =
False
295 kwargs.setdefault(
'processOverlapSpacePoints', processOverlapSpacePoints)
298 roisName = f
'{flags.Tracking.ActiveConfig.extension}RegionOfInterest'
300 if flags.Tracking.ActiveConfig.extension ==
'ActsLargeRadius':
301 roisName =
'ActsRegionOfInterest'
305 pixelClustersName =
'ITkPixelClusters'
306 stripClustersName =
'ITkStripClusters'
307 pixelSpacePointsName =
'ITkPixelSpacePoints'
308 stripSpacePointsName =
'ITkStripSpacePoints'
309 stripOverlapSpacePointsName =
'ITkStripOverlapSpacePoints'
311 if flags.Tracking.ActiveConfig.isSecondaryPass:
312 pixelClustersName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}PixelClusters'
313 stripClustersName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}StripClusters'
314 pixelSpacePointsName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}PixelSpacePoints'
315 stripSpacePointsName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}StripSpacePoints'
316 stripOverlapSpacePointsName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}StripOverlapSpacePoints'
318 if flags.Acts.useCache:
319 pixelClustersName +=
"_Cached"
320 stripClustersName +=
"_Cached"
323 primaryPixelSpacePointsName =
'ITkPixelSpacePoints'
324 primaryStripSpacePointsName =
'ITkStripSpacePoints'
325 primaryStripOverlapSpacePointsName =
'ITkStripOverlapSpacePoints'
328 if kwargs[
'runCacheCreation']:
329 kwargs.setdefault(
'SpacePointCacheCreatorAlg.name', f
'{flags.Tracking.ActiveConfig.extension}SpacePointCacheCreatorAlg')
332 if kwargs[
'runReconstruction']:
333 if kwargs[
'processPixels']:
334 kwargs.setdefault(
'PixelSpacePointFormationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointFormationAlg')
335 kwargs.setdefault(
'PixelSpacePointFormationAlg.useCache', flags.Acts.useCache)
336 kwargs.setdefault(
'PixelSpacePointFormationAlg.SPCache', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointCache')
337 kwargs.setdefault(
'PixelSpacePointFormationAlg.PixelClusters', pixelClustersName)
338 kwargs.setdefault(
'PixelSpacePointFormationAlg.PixelSpacePoints', pixelSpacePointsName)
340 if kwargs[
'processStrips']:
341 kwargs.setdefault(
'StripSpacePointFormationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointFormationAlg')
342 kwargs.setdefault(
'StripSpacePointFormationAlg.useCache', flags.Acts.useCache)
343 kwargs.setdefault(
'StripSpacePointFormationAlg.SPCache', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointCache')
344 kwargs.setdefault(
'StripSpacePointFormationAlg.StripClusters', stripClustersName)
345 kwargs.setdefault(
'StripSpacePointFormationAlg.StripSpacePoints', stripSpacePointsName)
348 kwargs.setdefault(
'StripSpacePointFormationAlg.ProcessOverlapForStrip', kwargs[
'processOverlapSpacePoints'])
349 kwargs.setdefault(
'StripSpacePointFormationAlg.OSPCache', f
'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointCache')
350 if kwargs[
'processOverlapSpacePoints']:
351 kwargs.setdefault(
'StripSpacePointFormationAlg.StripOverlapSpacePoints', stripOverlapSpacePointsName)
354 kwargs.setdefault(
'StripSpacePointFormationAlg.StripOverlapSpacePoints',
'')
357 if kwargs[
'runPreparation']:
358 if kwargs[
'processPixels']:
359 kwargs.setdefault(
'PixelSpacePointPreparationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointPreparationAlg')
360 kwargs.setdefault(
'PixelSpacePointPreparationAlg.useCache', flags.Acts.useCache)
361 kwargs.setdefault(
'PixelSpacePointPreparationAlg.OutputCollection', f
'{pixelSpacePointsName}_Cached' if kwargs[
'runReconstruction']
else pixelSpacePointsName)
363 if not flags.Acts.useCache:
365 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputCollection', pixelSpacePointsName
if kwargs[
'runReconstruction']
else primaryPixelSpacePointsName)
366 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputIDC',
'')
368 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputCollection',
'')
369 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputIDC', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointCache')
371 if flags.Tracking.ActiveConfig.isSecondaryPass
and previousActsExtension
is not None:
372 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputPrdMap', f
'{previousActsExtension}PrdMap')
375 if kwargs[
'processStrips']:
376 kwargs.setdefault(
'StripSpacePointPreparationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointPreparationAlg')
377 kwargs.setdefault(
'StripSpacePointPreparationAlg.useCache', flags.Acts.useCache)
378 kwargs.setdefault(
'StripSpacePointPreparationAlg.OutputCollection', f
'{stripSpacePointsName}_Cached' if kwargs[
'runReconstruction']
else stripSpacePointsName)
380 if not flags.Acts.useCache:
382 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputCollection', stripSpacePointsName
if kwargs[
'runReconstruction']
else primaryStripSpacePointsName)
383 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputIDC',
'')
385 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputCollection',
'')
386 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputIDC', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointCache')
388 if flags.Tracking.ActiveConfig.isSecondaryPass
and previousActsExtension
is not None:
389 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputPrdMap', f
'{previousActsExtension}PrdMap')
391 if kwargs[
'processOverlapSpacePoints']:
392 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointPreparationAlg')
393 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.useCache', flags.Acts.useCache)
394 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.OutputCollection', f
'{stripOverlapSpacePointsName}_Cached' if kwargs[
'runReconstruction']
else stripOverlapSpacePointsName)
396 if not flags.Acts.useCache:
398 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputCollection', stripOverlapSpacePointsName
if kwargs[
'runReconstruction']
else primaryStripOverlapSpacePointsName)
399 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputIDC',
'')
401 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputCollection',
'')
402 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputIDC', f
'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointCache')
404 if flags.Tracking.ActiveConfig.isSecondaryPass
and previousActsExtension
is not None:
405 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputPrdMap', f
'{previousActsExtension}PrdMap')
408 if flags.Acts.SpacePoints.doAnalysis:
411 if kwargs[
'processPixels']:
412 kwargs.setdefault(
'PixelSpacePointAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointAnalysisAlg')
413 kwargs.setdefault(
'PixelSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
414 kwargs.setdefault(
'PixelSpacePointAnalysisAlg.SpacePointContainerKey', kwargs[
'PixelSpacePointPreparationAlg.OutputCollection']
if kwargs[
'runPreparation']
else kwargs[
'PixelSpacePointFormationAlg.PixelSpacePoints'])
416 if kwargs[
'processStrips']:
417 kwargs.setdefault(
'StripSpacePointAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointAnalysisAlg')
418 kwargs.setdefault(
'StripSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
419 kwargs.setdefault(
'StripSpacePointAnalysisAlg.SpacePointContainerKey', kwargs[
'StripSpacePointPreparationAlg.OutputCollection']
if kwargs[
'runPreparation']
else kwargs[
'StripSpacePointFormationAlg.StripSpacePoints'])
421 if kwargs[
'processOverlapSpacePoints']:
422 kwargs.setdefault(
'StripOverlapSpacePointAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointAnalysisAlg')
423 kwargs.setdefault(
'StripOverlapSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
424 kwargs.setdefault(
'StripOverlapSpacePointAnalysisAlg.SpacePointContainerKey', kwargs[
'StripOverlapSpacePointPreparationAlg.OutputCollection']
if kwargs[
'runPreparation']
else kwargs[
'StripSpacePointFormationAlg.StripOverlapSpacePoints'])
430 if flags.Acts.EDM.PersistifySpacePoints
and kwargs[
'runReconstruction']:
432 pixel_spacepoint_shortlist = [
'-measurements']
433 strip_spacepoint_shortlist = [
'topHalfStripLength',
434 'bottomHalfStripLength',
436 'bottomStripDirection',
437 'stripCenterDistance',
441 pixel_spacepoint_variables =
'.'.
join(pixel_spacepoint_shortlist)
442 strip_spacepoint_variables =
'.'.
join(strip_spacepoint_shortlist)
444 if kwargs[
'processPixels']:
445 pixelSpacePointCollection = kwargs[
'PixelSpacePointFormationAlg.PixelSpacePoints']
446 toAOD += [f
'xAOD::SpacePointContainer#{pixelSpacePointCollection}',
447 f
"xAOD::SpacePointAuxContainer#{pixelSpacePointCollection}Aux.{pixel_spacepoint_variables}"]
449 if kwargs[
'processStrips']:
450 stripSpacePointCollection = kwargs[
'StripSpacePointFormationAlg.StripSpacePoints']
451 toAOD += [f
'xAOD::SpacePointContainer#{stripSpacePointCollection}',
452 f
"xAOD::SpacePointAuxContainer#{stripSpacePointCollection}Aux.{strip_spacepoint_variables}"]
454 if kwargs[
'processOverlapSpacePoints']:
455 stripSpacePointCollection = kwargs[
'StripSpacePointFormationAlg.StripOverlapSpacePoints']
456 toAOD += [f
'xAOD::SpacePointContainer#{stripSpacePointCollection}',
457 f
"xAOD::SpacePointAuxContainer#{stripSpacePointCollection}Aux.{strip_spacepoint_variables}"]
459 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD