16 name: str =
"ActsIDStripSpacePointTool",
17 **kwargs: dict) -> ComponentAccumulator:
18 acc = ComponentAccumulator()
20 kwargs.setdefault(
"isITk",
False)
21 kwargs.setdefault(
"useSCTLayerDep_OverlapCuts",
True)
23 kwargs.setdefault(
"StripGapParameter", 0.0)
25 if 'LorentzAngleTool' not in kwargs:
26 from SiLorentzAngleTool.SCT_LorentzAngleConfig
import SCT_LorentzAngleToolCfg
27 kwargs.setdefault(
"LorentzAngleTool", acc.popToolsAndMerge(SCT_LorentzAngleToolCfg(flags)))
29 acc.setPrivateTools(CompFactory.ActsTrk.StripSpacePointFormationTool(name, **kwargs))
33 name: str =
"ActsIDPixelSpacePointPreparationAlg",
35 useCache: bool =
False,
36 **kwargs: dict) -> ComponentAccumulator:
37 acc = ComponentAccumulator()
39 kwargs.setdefault(
'InputCollection',
'PixelSpacePoints')
40 kwargs.setdefault(
'DetectorElements',
'PixelDetectorElementCollection')
42 if 'RegSelTool' not in kwargs:
43 from RegionSelector.RegSelToolConfig
import regSelTool_Pixel_Cfg
44 kwargs.setdefault(
'RegSelTool', acc.popToolsAndMerge(regSelTool_Pixel_Cfg(flags)))
47 acc.addEventAlgo(CompFactory.ActsTrk.SpacePointDataPreparationAlg(name, **kwargs))
49 acc.addEventAlgo(CompFactory.ActsTrk.SpacePointCacheDataPreparationAlg(name, **kwargs))
53 name: str =
"ActsIDStripSpacePointPreparationAlg",
55 useCache: bool =
False,
56 **kwargs: dict) -> ComponentAccumulator:
57 acc = ComponentAccumulator()
59 kwargs.setdefault(
'InputCollection',
'SCT_SpacePoints')
60 kwargs.setdefault(
'DetectorElements',
'SCT_DetectorElementCollection')
62 if 'RegSelTool' not in kwargs:
63 from RegionSelector.RegSelToolConfig
import regSelTool_SCT_Cfg
64 kwargs.setdefault(
'RegSelTool', acc.popToolsAndMerge(regSelTool_SCT_Cfg(flags)))
67 acc.addEventAlgo(CompFactory.ActsTrk.SpacePointDataPreparationAlg(name, **kwargs))
69 acc.addEventAlgo(CompFactory.ActsTrk.SpacePointCacheDataPreparationAlg(name, **kwargs))
81 name: str =
"ActsIDPixelSpacePointFormationAlg",
83 useCache: bool =
False,
84 **kwargs: dict) -> ComponentAccumulator:
85 acc = ComponentAccumulator()
87 from PixelGeoModel.PixelGeoModelConfig
import PixelReadoutGeometryCfg
88 acc.merge(PixelReadoutGeometryCfg(flags))
90 kwargs.setdefault(
'PixelClusters',
'PixelClusters')
91 kwargs.setdefault(
'PixelSpacePoints',
'PixelSpacePoints')
92 kwargs.setdefault(
'ExtraOutputs',
93 [(
'xAOD::SpacePointContainer' , f
'StoreGateSvc+{kwargs["PixelSpacePoints"]}.measurements')])
95 kwargs.setdefault(
'PixelDetectorElements',
'PixelDetectorElementCollection')
98 kwargs.setdefault(
'SPCacheBackend',
'ActsPixelSpacePointCache_Back')
99 kwargs.setdefault(
'SPCache',
'ActsPixelSpacePointCache')
101 if 'SpacePointFormationTool' not in kwargs:
105 acc.addEventAlgo(CompFactory.ActsTrk.PixelCacheSpacePointFormationAlg(name, **kwargs))
107 acc.addEventAlgo(CompFactory.ActsTrk.PixelSpacePointFormationAlg(name, **kwargs))
112 name: str =
"ActsIDStripSpacePointFormationAlg",
114 useCache: bool =
False,
115 **kwargs: dict) -> ComponentAccumulator:
116 acc = ComponentAccumulator()
118 from SCT_GeoModel.SCT_GeoModelConfig
import SCT_ReadoutGeometryCfg
119 acc.merge(SCT_ReadoutGeometryCfg(flags))
121 from BeamSpotConditions.BeamSpotConditionsConfig
import BeamSpotCondAlgCfg
122 acc.merge(BeamSpotCondAlgCfg(flags))
124 from InDetConfig.SiSpacePointFormationConfig
import InDetSiElementPropertiesTableCondAlgCfg
125 acc.merge(InDetSiElementPropertiesTableCondAlgCfg(flags))
127 kwargs.setdefault(
'StripClusters',
'SCT_Clusters')
128 kwargs.setdefault(
'StripSpacePoints',
'SCT_SpacePoints')
129 kwargs.setdefault(
'StripOverlapSpacePoints',
'OverlapSpacePoints')
131 kwargs.setdefault(
'StripDetectorElements',
'SCT_DetectorElementCollection')
132 kwargs.setdefault(
'StripElementPropertiesTable',
'SCT_ElementPropertiesTable')
133 kwargs.setdefault(
'ExtraOutputs',
134 [(
'xAOD::SpacePointContainer' , f
'StoreGateSvc+{kwargs["StripSpacePoints"]}.measurements'),
135 (
'xAOD::SpacePointContainer' , f
'StoreGateSvc+{kwargs["StripOverlapSpacePoints"]}.measurements')])
138 kwargs.setdefault(
'SPCacheBackend',
'ActsStripSpacePointCache_Back')
139 kwargs.setdefault(
'SPCache',
'ActsStripSpacePointCache')
140 kwargs.setdefault(
'OSPCacheBackend',
'ActsStripOverlapSpacePointCache_Back')
141 kwargs.setdefault(
'OSPCache',
'ActsStripOverlapSpacePointCache')
143 if 'SpacePointFormationTool' not in kwargs:
147 acc.addEventAlgo(CompFactory.ActsTrk.StripCacheSpacePointFormationAlg(name, **kwargs))
149 acc.addEventAlgo(CompFactory.ActsTrk.StripSpacePointFormationAlg(name, **kwargs))
154 RoIs: str =
"ActsRegionOfInterest",
155 **kwargs: dict) -> ComponentAccumulator:
156 acc = ComponentAccumulator()
158 kwargs.setdefault(
'processPixels', flags.Detector.EnablePixel)
159 kwargs.setdefault(
'processStrips', flags.Detector.EnableSCT)
160 kwargs.setdefault(
'runCacheCreation', flags.Acts.useCache)
161 kwargs.setdefault(
'runReconstruction',
True)
162 kwargs.setdefault(
'runPreparation', flags.Acts.useCache)
163 kwargs.setdefault(
'processOverlapSpacePoints',
True)
169 if kwargs[
'runReconstruction']:
170 if kwargs[
'processPixels']:
172 if kwargs[
'processStrips']:
175 if kwargs[
'runPreparation']:
176 if kwargs[
'processPixels']:
179 **extractChildKwargs(prefix=
'PixelSpacePointPreparationAlg.', **kwargs)))
181 if kwargs[
'processStrips']:
184 **extractChildKwargs(prefix=
'StripSpacePointPreparationAlg.', **kwargs)))
186 if kwargs[
'processOverlapSpacePoints']:
189 **extractChildKwargs(prefix=
'StripOverlapSpacePointPreparationAlg.', **kwargs)))
195 previousActsExtension = None) -> ComponentAccumulator:
196 acc = ComponentAccumulator()
198 processPixels = flags.Detector.EnablePixel
199 processStrips = flags.Detector.EnableSCT
202 kwargs.setdefault(
'processPixels', processPixels)
203 kwargs.setdefault(
'processStrips', processStrips)
222 kwargs.setdefault(
'runCacheCreation', flags.Acts.useCache)
223 kwargs.setdefault(
'runReconstruction',
True)
224 kwargs.setdefault(
'runPreparation', flags.Acts.useCache)
227 processOverlapSpacePoints = processStrips
228 if flags.Tracking.ActiveConfig.extension
in [
'ActsConversion']:
229 processOverlapSpacePoints =
False
230 kwargs.setdefault(
'processOverlapSpacePoints', processOverlapSpacePoints)
233 roisName = f
'{flags.Tracking.ActiveConfig.extension}RegionOfInterest'
235 if flags.Tracking.ActiveConfig.extension ==
'ActsLargeRadius':
236 roisName =
'ActsRegionOfInterest'
240 pixelClustersName =
'PixelClusters'
241 stripClustersName =
'SCT_Clusters'
242 pixelSpacePointsName =
'PixelSpacePoints'
243 stripSpacePointsName =
'SCT_SpacePoints'
244 stripOverlapSpacePointsName =
'OverlapSpacePoints'
252 primaryPixelSpacePointsName =
'PixelSpacePoints'
253 primaryStripSpacePointsName =
'SCT_SpacePoints'
254 primaryStripOverlapSpacePointsName =
'OverlapSpacePoints'
257 if kwargs[
'runCacheCreation']:
258 kwargs.setdefault(
'SpacePointCacheCreatorAlg.name', f
'{flags.Tracking.ActiveConfig.extension}SpacePointCacheCreatorAlg')
261 if kwargs[
'runReconstruction']:
262 if kwargs[
'processPixels']:
263 kwargs.setdefault(
'PixelSpacePointFormationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointFormationAlg')
264 kwargs.setdefault(
'PixelSpacePointFormationAlg.useCache', flags.Acts.useCache)
265 kwargs.setdefault(
'PixelSpacePointFormationAlg.SPCache', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointCache')
266 kwargs.setdefault(
'PixelSpacePointFormationAlg.PixelClusters', pixelClustersName)
267 kwargs.setdefault(
'PixelSpacePointFormationAlg.PixelSpacePoints', pixelSpacePointsName)
269 if kwargs[
'processStrips']:
270 kwargs.setdefault(
'StripSpacePointFormationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointFormationAlg')
271 kwargs.setdefault(
'StripSpacePointFormationAlg.useCache', flags.Acts.useCache)
272 kwargs.setdefault(
'StripSpacePointFormationAlg.SPCache', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointCache')
273 kwargs.setdefault(
'StripSpacePointFormationAlg.StripClusters', stripClustersName)
274 kwargs.setdefault(
'StripSpacePointFormationAlg.StripSpacePoints', stripSpacePointsName)
277 kwargs.setdefault(
'StripSpacePointFormationAlg.ProcessOverlapForStrip', kwargs[
'processOverlapSpacePoints'])
278 kwargs.setdefault(
'StripSpacePointFormationAlg.OSPCache', f
'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointCache')
279 if kwargs[
'processOverlapSpacePoints']:
280 kwargs.setdefault(
'StripSpacePointFormationAlg.StripOverlapSpacePoints', stripOverlapSpacePointsName)
283 kwargs.setdefault(
'StripSpacePointFormationAlg.StripOverlapSpacePoints',
'')
286 if kwargs[
'runPreparation']:
287 if kwargs[
'processPixels']:
288 kwargs.setdefault(
'PixelSpacePointPreparationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointPreparationAlg')
289 kwargs.setdefault(
'PixelSpacePointPreparationAlg.useCache', flags.Acts.useCache)
290 kwargs.setdefault(
'PixelSpacePointPreparationAlg.OutputCollection', f
'{pixelSpacePointsName}_Cached' if kwargs[
'runReconstruction']
else pixelSpacePointsName)
292 if not flags.Acts.useCache:
294 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputCollection', pixelSpacePointsName
if kwargs[
'runReconstruction']
else primaryPixelSpacePointsName)
295 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputIDC',
'')
297 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputCollection',
'')
298 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputIDC', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointCache')
300 if flags.Tracking.ActiveConfig.isSecondaryPass
and previousActsExtension
is not None:
301 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputPrdMap', f
'{previousActsExtension}PrdMap')
303 if kwargs[
'processStrips']:
304 kwargs.setdefault(
'StripSpacePointPreparationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointPreparationAlg')
305 kwargs.setdefault(
'StripSpacePointPreparationAlg.useCache', flags.Acts.useCache)
306 kwargs.setdefault(
'StripSpacePointPreparationAlg.OutputCollection', f
'{stripSpacePointsName}_Cached' if kwargs[
'runReconstruction']
else stripSpacePointsName)
308 if not flags.Acts.useCache:
310 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputCollection', stripSpacePointsName
if kwargs[
'runReconstruction']
else primaryStripSpacePointsName)
311 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputIDC',
'')
313 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputCollection',
'')
314 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputIDC', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointCache')
316 if flags.Tracking.ActiveConfig.isSecondaryPass
and previousActsExtension
is not None:
317 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputPrdMap', f
'{previousActsExtension}PrdMap')
319 if kwargs[
'processOverlapSpacePoints']:
320 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointPreparationAlg')
321 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.useCache', flags.Acts.useCache)
322 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.OutputCollection', f
'{stripOverlapSpacePointsName}_Cached' if kwargs[
'runReconstruction']
else stripOverlapSpacePointsName)
324 if not flags.Acts.useCache:
326 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputCollection', stripOverlapSpacePointsName
if kwargs[
'runReconstruction']
else primaryStripOverlapSpacePointsName)
327 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputIDC',
'')
329 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputCollection',
'')
330 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputIDC', f
'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointCache')
332 if flags.Tracking.ActiveConfig.isSecondaryPass
and previousActsExtension
is not None:
333 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputPrdMap', f
'{previousActsExtension}PrdMap')
336 if flags.Acts.doAnalysis:
339 if kwargs[
'processPixels']:
340 kwargs.setdefault(
'PixelSpacePointAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointAnalysisAlg')
341 kwargs.setdefault(
'PixelSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
342 kwargs.setdefault(
'PixelSpacePointAnalysisAlg.SpacePointContainerKey', kwargs[
'PixelSpacePointPreparationAlg.OutputCollection']
if kwargs[
'runPreparation']
else kwargs[
'PixelSpacePointFormationAlg.PixelSpacePoints'])
344 if kwargs[
'processStrips']:
345 kwargs.setdefault(
'StripSpacePointAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointAnalysisAlg')
346 kwargs.setdefault(
'StripSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
347 kwargs.setdefault(
'StripSpacePointAnalysisAlg.SpacePointContainerKey', kwargs[
'StripSpacePointPreparationAlg.OutputCollection']
if kwargs[
'runPreparation']
else kwargs[
'StripSpacePointFormationAlg.StripSpacePoints'])
349 if kwargs[
'processOverlapSpacePoints']:
350 kwargs.setdefault(
'StripOverlapSpacePointAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointAnalysisAlg')
351 kwargs.setdefault(
'StripOverlapSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
352 kwargs.setdefault(
'StripOverlapSpacePointAnalysisAlg.SpacePointContainerKey', kwargs[
'StripOverlapSpacePointPreparationAlg.OutputCollection']
if kwargs[
'runPreparation']
else kwargs[
'StripSpacePointFormationAlg.StripOverlapSpacePoints'])
357 if flags.Acts.EDM.PersistifySpacePoints
and kwargs[
'runReconstruction']:
359 pixel_spacepoint_shortlist = [
'-measurements']
360 strip_spacepoint_shortlist = [
'topHalfStripLength',
361 'bottomHalfStripLength',
363 'bottomStripDirection',
364 'stripCenterDistance',
368 pixel_spacepoint_variables =
'.'.join(pixel_spacepoint_shortlist)
369 strip_spacepoint_variables =
'.'.join(strip_spacepoint_shortlist)
371 if kwargs[
'processPixels']:
372 pixelSpacePointCollection = kwargs[
'PixelSpacePointFormationAlg.PixelSpacePoints']
373 toAOD += [f
'xAOD::SpacePointContainer#{pixelSpacePointCollection}',
374 f
"xAOD::SpacePointAuxContainer#{pixelSpacePointCollection}Aux.{pixel_spacepoint_variables}"]
376 if kwargs[
'processStrips']:
377 stripSpacePointCollection = kwargs[
'StripSpacePointFormationAlg.StripSpacePoints']
378 toAOD += [f
'xAOD::SpacePointContainer#{stripSpacePointCollection}',
379 f
"xAOD::SpacePointAuxContainer#{stripSpacePointCollection}Aux.{strip_spacepoint_variables}"]
381 if kwargs[
'processOverlapSpacePoints']:
382 stripSpacePointCollection = kwargs[
'StripSpacePointFormationAlg.StripOverlapSpacePoints']
383 toAOD += [f
'xAOD::SpacePointContainer#{stripSpacePointCollection}',
384 f
"xAOD::SpacePointAuxContainer#{stripSpacePointCollection}Aux.{strip_spacepoint_variables}"]
386 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD
387 acc.merge(addToAOD(flags, toAOD))