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.Tracking.ActiveConfig.extension
in [
"ActsConversion",
"ActsLargeRadius",
"ActsValidateLargeRadiusStandalone"]:
277 processPixels =
False
278 elif isPrimaryPass(flags)
and flags.Tracking.doITkFastTracking:
280 elif flags.Tracking.ActiveConfig.extension ==
"ActsValidateF100" and flags.Tracking.doITkFastTracking:
281 processStrips =
False
283 kwargs.setdefault(
'processPixels', processPixels)
284 kwargs.setdefault(
'processStrips', processStrips)
302 from InDetConfig.ITkActsHelpers
import isValidationPass
303 if isPrimaryPass(flags)
or isValidationPass(flags):
306 kwargs.setdefault(
'runCacheCreation', flags.Acts.useCache)
307 kwargs.setdefault(
'runReconstruction',
True)
308 kwargs.setdefault(
'runPreparation', flags.Acts.useCache)
311 kwargs.setdefault(
'runCacheCreation',
False)
312 kwargs.setdefault(
'runReconstruction', flags.Acts.useCache)
313 kwargs.setdefault(
'runPreparation',
True)
316 processOverlapSpacePoints = processStrips
317 if flags.Tracking.ActiveConfig.extension
in [
'ActsConversion']:
318 processOverlapSpacePoints =
False
319 kwargs.setdefault(
'processOverlapSpacePoints', processOverlapSpacePoints)
322 roisName = f
'{flags.Tracking.ActiveConfig.extension}RegionOfInterest'
324 if flags.Tracking.ActiveConfig.extension ==
'ActsLargeRadius':
325 from InDetConfig.ITkActsHelpers
import primaryPassExtension
326 roisName = f
'{primaryPassExtension(flags)}RegionOfInterest'
330 pixelClustersName =
'ITkPixelClusters'
331 stripClustersName =
'ITkStripClusters'
332 pixelSpacePointsName =
'ITkPixelSpacePoints'
333 stripSpacePointsName =
'ITkStripSpacePoints'
334 stripOverlapSpacePointsName =
'ITkStripOverlapSpacePoints'
336 if flags.Tracking.ActiveConfig.isSecondaryPass:
337 pixelClustersName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}PixelClusters'
338 stripClustersName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}StripClusters'
339 pixelSpacePointsName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}PixelSpacePoints'
340 stripSpacePointsName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}StripSpacePoints'
341 stripOverlapSpacePointsName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}StripOverlapSpacePoints'
343 if flags.Acts.useCache:
344 pixelClustersName +=
"_Cached"
345 stripClustersName +=
"_Cached"
348 primaryPixelSpacePointsName =
'ITkPixelSpacePoints'
349 primaryStripSpacePointsName =
'ITkStripSpacePoints'
350 primaryStripOverlapSpacePointsName =
'ITkStripOverlapSpacePoints'
353 if kwargs[
'runCacheCreation']:
354 kwargs.setdefault(
'SpacePointCacheCreatorAlg.name', f
'{flags.Tracking.ActiveConfig.extension}SpacePointCacheCreatorAlg')
357 if kwargs[
'runReconstruction']:
358 if kwargs[
'processPixels']:
359 kwargs.setdefault(
'PixelSpacePointFormationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointFormationAlg')
360 kwargs.setdefault(
'PixelSpacePointFormationAlg.useCache', flags.Acts.useCache)
361 kwargs.setdefault(
'PixelSpacePointFormationAlg.SPCache', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointCache')
362 kwargs.setdefault(
'PixelSpacePointFormationAlg.PixelClusters', pixelClustersName)
363 kwargs.setdefault(
'PixelSpacePointFormationAlg.PixelSpacePoints', pixelSpacePointsName)
365 if kwargs[
'processStrips']:
366 kwargs.setdefault(
'StripSpacePointFormationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointFormationAlg')
367 kwargs.setdefault(
'StripSpacePointFormationAlg.useCache', flags.Acts.useCache)
368 kwargs.setdefault(
'StripSpacePointFormationAlg.SPCache', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointCache')
369 kwargs.setdefault(
'StripSpacePointFormationAlg.StripClusters', stripClustersName)
370 kwargs.setdefault(
'StripSpacePointFormationAlg.StripSpacePoints', stripSpacePointsName)
373 kwargs.setdefault(
'StripSpacePointFormationAlg.ProcessOverlapForStrip', kwargs[
'processOverlapSpacePoints'])
374 kwargs.setdefault(
'StripSpacePointFormationAlg.OSPCache', f
'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointCache')
375 if kwargs[
'processOverlapSpacePoints']:
376 kwargs.setdefault(
'StripSpacePointFormationAlg.StripOverlapSpacePoints', stripOverlapSpacePointsName)
379 kwargs.setdefault(
'StripSpacePointFormationAlg.StripOverlapSpacePoints',
'')
382 if kwargs[
'runPreparation']:
383 if kwargs[
'processPixels']:
384 kwargs.setdefault(
'PixelSpacePointPreparationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointPreparationAlg')
385 kwargs.setdefault(
'PixelSpacePointPreparationAlg.useCache', flags.Acts.useCache)
386 kwargs.setdefault(
'PixelSpacePointPreparationAlg.OutputCollection', f
'{pixelSpacePointsName}_Cached' if kwargs[
'runReconstruction']
else pixelSpacePointsName)
388 if not flags.Acts.useCache:
390 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputCollection', pixelSpacePointsName
if kwargs[
'runReconstruction']
else primaryPixelSpacePointsName)
391 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputIDC',
'')
393 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputCollection',
'')
394 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputIDC', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointCache')
396 if flags.Tracking.ActiveConfig.isSecondaryPass
and previousActsExtension
is not None:
397 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputPrdMap', f
'{previousActsExtension}PrdMap')
400 if kwargs[
'processStrips']:
401 kwargs.setdefault(
'StripSpacePointPreparationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointPreparationAlg')
402 kwargs.setdefault(
'StripSpacePointPreparationAlg.useCache', flags.Acts.useCache)
403 kwargs.setdefault(
'StripSpacePointPreparationAlg.OutputCollection', f
'{stripSpacePointsName}_Cached' if kwargs[
'runReconstruction']
else stripSpacePointsName)
405 if not flags.Acts.useCache:
407 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputCollection', stripSpacePointsName
if kwargs[
'runReconstruction']
else primaryStripSpacePointsName)
408 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputIDC',
'')
410 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputCollection',
'')
411 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputIDC', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointCache')
413 if flags.Tracking.ActiveConfig.isSecondaryPass
and previousActsExtension
is not None:
414 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputPrdMap', f
'{previousActsExtension}PrdMap')
416 if kwargs[
'processOverlapSpacePoints']:
417 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointPreparationAlg')
418 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.useCache', flags.Acts.useCache)
419 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.OutputCollection', f
'{stripOverlapSpacePointsName}_Cached' if kwargs[
'runReconstruction']
else stripOverlapSpacePointsName)
421 if not flags.Acts.useCache:
423 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputCollection', stripOverlapSpacePointsName
if kwargs[
'runReconstruction']
else primaryStripOverlapSpacePointsName)
424 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputIDC',
'')
426 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputCollection',
'')
427 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputIDC', f
'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointCache')
429 if flags.Tracking.ActiveConfig.isSecondaryPass
and previousActsExtension
is not None:
430 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputPrdMap', f
'{previousActsExtension}PrdMap')
433 if flags.Acts.SpacePoints.doAnalysis:
436 if kwargs[
'processPixels']:
437 kwargs.setdefault(
'PixelSpacePointAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointAnalysisAlg')
438 kwargs.setdefault(
'PixelSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
439 kwargs.setdefault(
'PixelSpacePointAnalysisAlg.SpacePointContainerKey', kwargs[
'PixelSpacePointPreparationAlg.OutputCollection']
if kwargs[
'runPreparation']
else kwargs[
'PixelSpacePointFormationAlg.PixelSpacePoints'])
441 if kwargs[
'processStrips']:
442 kwargs.setdefault(
'StripSpacePointAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointAnalysisAlg')
443 kwargs.setdefault(
'StripSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
444 kwargs.setdefault(
'StripSpacePointAnalysisAlg.SpacePointContainerKey', kwargs[
'StripSpacePointPreparationAlg.OutputCollection']
if kwargs[
'runPreparation']
else kwargs[
'StripSpacePointFormationAlg.StripSpacePoints'])
446 if kwargs[
'processOverlapSpacePoints']:
447 kwargs.setdefault(
'StripOverlapSpacePointAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointAnalysisAlg')
448 kwargs.setdefault(
'StripOverlapSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
449 kwargs.setdefault(
'StripOverlapSpacePointAnalysisAlg.SpacePointContainerKey', kwargs[
'StripOverlapSpacePointPreparationAlg.OutputCollection']
if kwargs[
'runPreparation']
else kwargs[
'StripSpacePointFormationAlg.StripOverlapSpacePoints'])
455 if flags.Acts.EDM.PersistifySpacePoints
and kwargs[
'runReconstruction']:
457 pixel_spacepoint_shortlist = [
'-measurements']
458 strip_spacepoint_shortlist = [
'topHalfStripLength',
459 'bottomHalfStripLength',
461 'bottomStripDirection',
462 'stripCenterDistance',
466 pixel_spacepoint_variables =
'.'.join(pixel_spacepoint_shortlist)
467 strip_spacepoint_variables =
'.'.join(strip_spacepoint_shortlist)
469 if kwargs[
'processPixels']:
470 pixelSpacePointCollection = kwargs[
'PixelSpacePointFormationAlg.PixelSpacePoints']
471 toAOD += [f
'xAOD::SpacePointContainer#{pixelSpacePointCollection}',
472 f
"xAOD::SpacePointAuxContainer#{pixelSpacePointCollection}Aux.{pixel_spacepoint_variables}"]
474 if kwargs[
'processStrips']:
475 stripSpacePointCollection = kwargs[
'StripSpacePointFormationAlg.StripSpacePoints']
476 toAOD += [f
'xAOD::SpacePointContainer#{stripSpacePointCollection}',
477 f
"xAOD::SpacePointAuxContainer#{stripSpacePointCollection}Aux.{strip_spacepoint_variables}"]
479 if kwargs[
'processOverlapSpacePoints']:
480 stripSpacePointCollection = kwargs[
'StripSpacePointFormationAlg.StripOverlapSpacePoints']
481 toAOD += [f
'xAOD::SpacePointContainer#{stripSpacePointCollection}',
482 f
"xAOD::SpacePointAuxContainer#{stripSpacePointCollection}Aux.{strip_spacepoint_variables}"]
484 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD
485 acc.merge(addToAOD(flags, toAOD))