10 name: str =
"ActsIDPixelClusteringTool",
11 **kwargs) -> ComponentAccumulator:
12 acc = ComponentAccumulator()
14 kwargs.setdefault(
"isITk",
False)
16 from PixelConditionsAlgorithms.PixelConditionsConfig
import PixelChargeCalibCondCfg, PixelOfflineCalibCondAlgCfg
17 acc.merge(PixelChargeCalibCondCfg(flags))
18 acc.merge(PixelOfflineCalibCondAlgCfg(flags))
19 kwargs.setdefault(
"PixelChargeCalibCondData",
"PixelChargeCalibCondData")
21 if "PixelLorentzAngleTool" not in kwargs:
22 from SiLorentzAngleTool.PixelLorentzAngleConfig
import PixelLorentzAngleToolCfg
23 kwargs.setdefault(
"PixelLorentzAngleTool", acc.popToolsAndMerge( PixelLorentzAngleToolCfg(flags) ))
25 kwargs.setdefault(
"CheckGanged",
True)
26 kwargs.setdefault(
'UseWeightedPosition',
False)
27 kwargs.setdefault(
'UseBroadErrors',
True)
29 acc.setPrivateTools(CompFactory.ActsTrk.PixelClusteringTool(name, **kwargs))
33 name: str =
"ActsIDStripClusteringTool",
34 **kwargs) -> ComponentAccumulator:
35 acc = ComponentAccumulator()
37 kwargs.setdefault(
"isITk",
False)
39 if 'LorentzAngleTool' not in kwargs:
40 from SiLorentzAngleTool.SCT_LorentzAngleConfig
import SCT_LorentzAngleToolCfg
41 kwargs.setdefault(
"LorentzAngleTool", acc.popToolsAndMerge(SCT_LorentzAngleToolCfg(flags)))
43 if "conditionsTool" not in kwargs:
44 from SCT_ConditionsTools.SCT_ConditionsToolsConfig
import SCT_ConditionsSummaryToolCfg
45 kwargs.setdefault(
"conditionsTool", acc.popToolsAndMerge(
46 SCT_ConditionsSummaryToolCfg(flags, withFlaggedCondTool=
False)))
48 if "StripDetElStatus" not in kwargs :
49 from SCT_ConditionsAlgorithms.SCT_ConditionsAlgorithmsConfig
import (
50 SCT_DetectorElementStatusAlgWithoutFlaggedCfg)
51 acc.merge(SCT_DetectorElementStatusAlgWithoutFlaggedCfg(flags))
52 kwargs.setdefault(
"StripDetElStatus",
"SCTDetectorElementStatusWithoutFlagged")
55 kwargs.setdefault(
"maxFiredStrips", 384)
56 kwargs.setdefault(
"errorStrategy", 2)
58 if flags.InDet.selectSCTIntimeHits:
59 coll_25ns = (flags.Beam.BunchSpacing <= 25
and
60 flags.Beam.Type
is BeamType.Collisions)
61 kwargs.setdefault(
"timeBins",
"01X" if coll_25ns
else "X1X")
63 kwargs.setdefault(
"StripDetEleCollKey",
"SCT_DetectorElementCollection")
65 acc.setPrivateTools(CompFactory.ActsTrk.StripClusteringTool(name, **kwargs))
69 name: str =
'ActsIDPixelClusterizationAlg',
71 useCache: bool =
False,
72 **kwargs) -> ComponentAccumulator:
73 acc = ComponentAccumulator()
75 kwargs.setdefault(
"IDHelper",
"PixelID")
76 kwargs.setdefault(
"RDOContainerKey",
"PixelRDOs")
77 kwargs.setdefault(
"ClustersKey",
"PixelClusters")
78 kwargs.setdefault(
"DetEleCollKey",
"PixelDetectorElementCollection")
80 kwargs.setdefault(
'RoIs',
'ActsRegionOfInterest')
82 kwargs.setdefault(
'ClusterCacheBackend',
'ActsPixelClusterCache_Back')
83 kwargs.setdefault(
'ClusterCache',
'ActsPixelClustersCache')
85 if 'RegSelTool' not in kwargs:
86 from RegionSelector.RegSelToolConfig
import regSelTool_Pixel_Cfg
87 kwargs.setdefault(
'RegSelTool', acc.popToolsAndMerge(regSelTool_Pixel_Cfg(flags)))
89 if 'ClusteringTool' not in kwargs:
92 if 'DetElStatus' not in kwargs:
93 from PixelConditionsAlgorithms.PixelConditionsConfig
import PixelDetectorElementStatusAlgCfg
94 acc.merge(PixelDetectorElementStatusAlgCfg(flags))
95 kwargs.setdefault(
'DetElStatus',
'PixelDetectorElementStatus')
98 acc.addEventAlgo(CompFactory.ActsTrk.PixelClusterizationAlg(name, **kwargs))
100 acc.addEventAlgo(CompFactory.ActsTrk.PixelCacheClusterizationAlg(name, **kwargs))
104 name: str =
'ActsIDStripClusterizationAlg',
105 useCache: bool =
False,
106 **kwargs) -> ComponentAccumulator:
107 acc = ComponentAccumulator()
109 kwargs.setdefault(
"RDOContainerKey",
"SCT_RDOs")
110 kwargs.setdefault(
"ClustersKey",
"SCT_Clusters")
111 kwargs.setdefault(
"IDHelper",
"SCT_ID")
112 kwargs.setdefault(
"DetEleCollKey",
"SCT_DetectorElementCollection")
114 kwargs.setdefault(
'RoIs',
'ActsRegionOfInterest')
116 kwargs.setdefault(
'ClusterCacheBackend',
'ActsStripClusterCache_Back')
117 kwargs.setdefault(
'ClusterCache',
'ActsStripClustersCache')
119 if 'RegSelTool' not in kwargs:
120 from RegionSelector.RegSelToolConfig
import regSelTool_SCT_Cfg
121 kwargs.setdefault(
'RegSelTool', acc.popToolsAndMerge(regSelTool_SCT_Cfg(flags)))
123 if 'DetElStatus' not in kwargs :
124 from SCT_ConditionsAlgorithms.SCT_ConditionsAlgorithmsConfig
import SCT_DetectorElementStatusAlgWithoutFlaggedCfg
125 acc.merge(SCT_DetectorElementStatusAlgWithoutFlaggedCfg(flags))
126 kwargs.setdefault(
"DetElStatus",
"SCTDetectorElementStatusWithoutFlagged")
128 if 'ClusteringTool' not in kwargs:
132 acc.addEventAlgo(CompFactory.ActsTrk.StripClusterizationAlg(name, **kwargs))
134 acc.addEventAlgo(CompFactory.ActsTrk.StripCacheClusterizationAlg(name, **kwargs))
138 name: str =
"ActsIDPixelClusterPreparationAlg",
139 useCache: bool =
False,
140 **kwargs) -> ComponentAccumulator:
141 acc = ComponentAccumulator()
143 kwargs.setdefault(
'InputCollection',
'PixelClusters')
144 kwargs.setdefault(
'DetectorElements',
'PixelDetectorElementCollection')
146 if 'RegSelTool' not in kwargs:
147 from RegionSelector.RegSelToolConfig
import regSelTool_Pixel_Cfg
148 kwargs.setdefault(
'RegSelTool', acc.popToolsAndMerge(regSelTool_Pixel_Cfg(flags)))
151 acc.addEventAlgo(CompFactory.ActsTrk.PixelClusterDataPreparationAlg(name, **kwargs))
153 acc.addEventAlgo(CompFactory.ActsTrk.PixelClusterCacheDataPreparationAlg(name, **kwargs))
157 name: str =
"ActsIDStripClusterPreparationAlg",
158 useCache: bool =
False,
159 **kwargs) -> ComponentAccumulator:
160 acc = ComponentAccumulator()
162 kwargs.setdefault(
'InputCollection',
'SCT_Clusters')
163 kwargs.setdefault(
'DetectorElements',
'SCT_DetectorElementCollection')
165 if 'RegSelTool' not in kwargs:
166 from RegionSelector.RegSelToolConfig
import regSelTool_SCT_Cfg
167 kwargs.setdefault(
'RegSelTool', acc.popToolsAndMerge(regSelTool_SCT_Cfg(flags)))
170 acc.addEventAlgo(CompFactory.ActsTrk.StripClusterDataPreparationAlg(name, **kwargs))
172 acc.addEventAlgo(CompFactory.ActsTrk.StripClusterCacheDataPreparationAlg(name, **kwargs))
177 RoIs: str =
"ActsRegionOfInterest",
178 **kwargs: dict) -> ComponentAccumulator:
179 assert isinstance(RoIs, str)
180 assert isinstance(kwargs, dict)
182 acc = ComponentAccumulator()
191 kwargs.setdefault(
'processPixels', flags.Detector.EnablePixel)
192 kwargs.setdefault(
'processStrips', flags.Detector.EnableSCT)
193 kwargs.setdefault(
'runCacheCreation', flags.Acts.useCache)
194 kwargs.setdefault(
'runReconstruction',
True)
195 kwargs.setdefault(
'runPreparation', flags.Acts.useCache)
198 if kwargs[
'runCacheCreation']:
199 acc.merge(ActsClusterCacheCreatorAlgCfg(flags,
200 **extractChildKwargs(prefix=
'ClusterCacheCreatorAlg.', **kwargs)))
203 if kwargs[
'runReconstruction']:
204 if kwargs[
'processPixels']:
207 **extractChildKwargs(prefix=
'PixelClusterizationAlg.', **kwargs)))
208 if kwargs[
'processStrips']:
211 **extractChildKwargs(prefix=
'StripClusterizationAlg.', **kwargs)))
214 if kwargs[
'runPreparation']:
215 if kwargs[
'processPixels']:
218 **extractChildKwargs(prefix=
'PixelClusterPreparationAlg.', **kwargs)))
220 if kwargs[
'processStrips']:
223 **extractChildKwargs(prefix=
'StripClusterPreparationAlg.', **kwargs)))
229 previousActsExtension: str =
None) -> ComponentAccumulator:
230 assert previousActsExtension
is None or isinstance(previousActsExtension, str)
232 acc = ComponentAccumulator()
234 processPixels = flags.Detector.EnablePixel
235 processStrips = flags.Detector.EnableSCT
238 kwargs.setdefault(
'processPixels', processPixels)
239 kwargs.setdefault(
'processStrips', processStrips)
259 kwargs.setdefault(
'runCacheCreation', flags.Acts.useCache)
260 kwargs.setdefault(
'runReconstruction',
True)
261 kwargs.setdefault(
'runPreparation', flags.Acts.useCache)
264 roisName = f
'{flags.Tracking.ActiveConfig.extension}RegionOfInterest'
266 if flags.Tracking.ActiveConfig.extension ==
'ActsLargeRadius':
267 roisName =
'ActsRegionOfInterest'
271 primaryPixelClustersName =
'PixelClusters'
272 primaryStripClustersName =
'SCT_Clusters'
273 pixelClustersName = primaryPixelClustersName
274 stripClustersName = primaryStripClustersName
277 if kwargs[
'runCacheCreation']:
278 kwargs.setdefault(
'ClusterCacheCreatorAlg.name', f
'{flags.Tracking.ActiveConfig.extension}ClusterCacheCreatorAlg')
281 if kwargs[
'runReconstruction']:
282 if kwargs[
'processPixels']:
283 kwargs.setdefault(
'PixelClusterizationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelClusterizationAlg')
284 kwargs.setdefault(
'PixelClusterizationAlg.useCache', flags.Acts.useCache)
285 kwargs.setdefault(
'PixelClusterizationAlg.ClustersKey', pixelClustersName)
286 kwargs.setdefault(
'PixelClusterizationAlg.ClusterCache', f
'{flags.Tracking.ActiveConfig.extension}PixelClustersCache')
288 if kwargs[
'processStrips']:
289 kwargs.setdefault(
'StripClusterizationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripClusterizationAlg')
290 kwargs.setdefault(
'StripClusterizationAlg.useCache', flags.Acts.useCache)
291 kwargs.setdefault(
'StripClusterizationAlg.ClustersKey', stripClustersName)
292 kwargs.setdefault(
'StripClusterizationAlg.ClusterCache', f
'{flags.Tracking.ActiveConfig.extension}StripClustersCache')
295 if kwargs[
'runPreparation']:
296 if kwargs[
'processPixels']:
297 kwargs.setdefault(
'PixelClusterPreparationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelClusterPreparationAlg')
298 kwargs.setdefault(
'PixelClusterPreparationAlg.useCache', flags.Acts.useCache)
299 kwargs.setdefault(
'PixelClusterPreparationAlg.OutputCollection', f
'{pixelClustersName}_Cached' if kwargs[
'runReconstruction']
else pixelClustersName)
301 if not flags.Acts.useCache:
303 kwargs.setdefault(
'PixelClusterPreparationAlg.InputCollection', pixelClustersName
if kwargs[
'runReconstruction']
else primaryPixelClustersName)
304 kwargs.setdefault(
'PixelClusterPreparationAlg.InputIDC',
'')
306 kwargs.setdefault(
'PixelClusterPreparationAlg.InputCollection',
'')
307 kwargs.setdefault(
'PixelClusterPreparationAlg.InputIDC', f
'{flags.Tracking.ActiveConfig.extension}PixelClustersCache')
309 if kwargs[
'processStrips']:
310 kwargs.setdefault(
'StripClusterPreparationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripClusterPreparationAlg')
311 kwargs.setdefault(
'StripClusterPreparationAlg.useCache', flags.Acts.useCache)
312 kwargs.setdefault(
'StripClusterPreparationAlg.OutputCollection', f
'{stripClustersName}_Cached' if kwargs[
'runReconstruction']
else stripClustersName)
313 if not flags.Acts.useCache:
314 kwargs.setdefault(
'StripClusterPreparationAlg.InputCollection', stripClustersName
if kwargs[
'runReconstruction']
else primaryStripClustersName)
315 kwargs.setdefault(
'StripClusterPreparationAlg.InputIDC',
'')
317 kwargs.setdefault(
'StripClusterPreparationAlg.InputCollection',
'')
318 kwargs.setdefault(
'StripClusterPreparationAlg.InputIDC', f
'{flags.Tracking.ActiveConfig.extension}StripClustersCache')
320 if flags.Acts.EDM.PersistifyClusters
and kwargs[
'runReconstruction']:
322 if kwargs[
'processPixels']:
323 pixel_cluster_shortlist = [
'-validationMeasurementLink']
324 pixel_cluster_variables =
'.'.join(pixel_cluster_shortlist)
326 pixelClusterCollection = kwargs[
'PixelClusterizationAlg.ClustersKey']
327 toAOD += [f
'xAOD::PixelClusterContainer#{pixelClusterCollection}',
328 f
'xAOD::PixelClusterAuxContainer#{pixelClusterCollection}Aux.{pixel_cluster_variables}']
330 if kwargs[
'processStrips']:
331 strip_cluster_shortlist = [
'-validationMeasurementLink']
332 strip_cluster_variables =
'.'.join(strip_cluster_shortlist)
334 stripClusterCollection = kwargs[
'StripClusterizationAlg.ClustersKey']
335 toAOD += [f
"xAOD::StripClusterContainer#{stripClusterCollection}",
336 f
"xAOD::StripClusterAuxContainer#{stripClusterCollection}Aux.{strip_cluster_variables}"]
338 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD
339 acc.merge(addToAOD(flags, toAOD))