224 previousActsExtension: str = None) -> ComponentAccumulator:
225 assert previousActsExtension is None or isinstance(previousActsExtension, str)
226
227 acc = ComponentAccumulator()
228
229 processPixels = flags.Detector.EnablePixel
230 processStrips = flags.Detector.EnableSCT
231
232 kwargs = dict()
233 kwargs.setdefault('processPixels', processPixels)
234 kwargs.setdefault('processStrips', processStrips)
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254 kwargs.setdefault('runCacheCreation', flags.Acts.useCache)
255 kwargs.setdefault('runReconstruction', True)
256 kwargs.setdefault('runPreparation', flags.Acts.useCache)
257
258
259 roisName = f'{flags.Tracking.ActiveConfig.extension}RegionOfInterest'
260
261 if flags.Tracking.ActiveConfig.isLargeD0 and flags.Tracking.ActiveConfig.isSecondaryPass:
262 roisName = 'ActsRegionOfInterest'
263
264
265
266 primaryPixelClustersName = 'PixelClusters'
267 primaryStripClustersName = 'SCT_Clusters'
268 pixelClustersName = primaryPixelClustersName
269 stripClustersName = primaryStripClustersName
270
271
272 if kwargs['runCacheCreation']:
273 kwargs.setdefault('ClusterCacheCreatorAlg.name', f'{flags.Tracking.ActiveConfig.extension}ClusterCacheCreatorAlg')
274
275
276 if kwargs['runReconstruction']:
277 if kwargs['processPixels']:
278 kwargs.setdefault('PixelClusterizationAlg.name', f'{flags.Tracking.ActiveConfig.extension}PixelClusterizationAlg')
279 kwargs.setdefault('PixelClusterizationAlg.useCache', flags.Acts.useCache)
280 kwargs.setdefault('PixelClusterizationAlg.ClustersKey', pixelClustersName)
281 kwargs.setdefault('PixelClusterizationAlg.ClusterCache', f'{flags.Tracking.ActiveConfig.extension}PixelClustersCache')
282
283 if kwargs['processStrips']:
284 kwargs.setdefault('StripClusterizationAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripClusterizationAlg')
285 kwargs.setdefault('StripClusterizationAlg.useCache', flags.Acts.useCache)
286 kwargs.setdefault('StripClusterizationAlg.ClustersKey', stripClustersName)
287 kwargs.setdefault('StripClusterizationAlg.ClusterCache', f'{flags.Tracking.ActiveConfig.extension}StripClustersCache')
288
289
290 if kwargs['runPreparation']:
291 if kwargs['processPixels']:
292 kwargs.setdefault('PixelClusterPreparationAlg.name', f'{flags.Tracking.ActiveConfig.extension}PixelClusterPreparationAlg')
293 kwargs.setdefault('PixelClusterPreparationAlg.useCache', flags.Acts.useCache)
294 kwargs.setdefault('PixelClusterPreparationAlg.OutputCollection', f'{pixelClustersName}_Cached' if kwargs['runReconstruction'] else pixelClustersName)
295
296 if not flags.Acts.useCache:
297
298 kwargs.setdefault('PixelClusterPreparationAlg.InputCollection', pixelClustersName if kwargs['runReconstruction'] else primaryPixelClustersName)
299 kwargs.setdefault('PixelClusterPreparationAlg.InputIDC', '')
300 else:
301 kwargs.setdefault('PixelClusterPreparationAlg.InputCollection', '')
302 kwargs.setdefault('PixelClusterPreparationAlg.InputIDC', f'{flags.Tracking.ActiveConfig.extension}PixelClustersCache')
303
304 if kwargs['processStrips']:
305 kwargs.setdefault('StripClusterPreparationAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripClusterPreparationAlg')
306 kwargs.setdefault('StripClusterPreparationAlg.useCache', flags.Acts.useCache)
307 kwargs.setdefault('StripClusterPreparationAlg.OutputCollection', f'{stripClustersName}_Cached' if kwargs['runReconstruction'] else stripClustersName)
308 if not flags.Acts.useCache:
309 kwargs.setdefault('StripClusterPreparationAlg.InputCollection', stripClustersName if kwargs['runReconstruction'] else primaryStripClustersName)
310 kwargs.setdefault('StripClusterPreparationAlg.InputIDC', '')
311 else:
312 kwargs.setdefault('StripClusterPreparationAlg.InputCollection', '')
313 kwargs.setdefault('StripClusterPreparationAlg.InputIDC', f'{flags.Tracking.ActiveConfig.extension}StripClustersCache')
314
315
316 if flags.Acts.EDM.PersistifyClusters and kwargs['runReconstruction']:
317 from ActsConfig.ActsPersistificationConfig import PersistifyClusters
318 pixelClusterCollections = None if not kwargs['processPixels'] else [kwargs['PixelClusterizationAlg.ClustersKey']]
319 stripClusterCollections = None if not kwargs['processStrips'] else [kwargs['StripClusterizationAlg.ClustersKey']]
320 acc.merge(PersistifyClusters(flags,
321 pixelClusterCollections=pixelClusterCollections,
322 stripClusterCollections=stripClusterCollections,
323 hgtdClusterCollections=None))
324
325 acc.merge(ActsIDMainClusterizationCfg(flags, RoIs=roisName, **kwargs))
326 return acc