190 previousActsExtension = None) -> ComponentAccumulator:
191 acc = ComponentAccumulator()
192
193 processPixels = flags.Detector.EnablePixel
194 processStrips = flags.Detector.EnableSCT
195
196 kwargs = dict()
197 kwargs.setdefault('processPixels', processPixels)
198 kwargs.setdefault('processStrips', processStrips)
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217 kwargs.setdefault('runCacheCreation', flags.Acts.useCache)
218 kwargs.setdefault('runReconstruction', True)
219 kwargs.setdefault('runPreparation', flags.Acts.useCache)
220
221
222 processOverlapSpacePoints = processStrips
223 if flags.Tracking.ActiveConfig.extension in ['ActsConversion']:
224 processOverlapSpacePoints = False
225 kwargs.setdefault('processOverlapSpacePoints', processOverlapSpacePoints)
226
227
228 roisName = f'{flags.Tracking.ActiveConfig.extension}RegionOfInterest'
229
230 if flags.Tracking.ActiveConfig.extension == 'ActsLargeRadius':
231 roisName = 'ActsRegionOfInterest'
232
233
234
235 pixelClustersName = 'PixelClusters'
236 stripClustersName = 'SCT_Clusters'
237 pixelSpacePointsName = 'PixelSpacePoints'
238 stripSpacePointsName = 'SCT_SpacePoints'
239 stripOverlapSpacePointsName = 'OverlapSpacePoints'
240
241
242
243
244
245
246
247 primaryPixelSpacePointsName = 'PixelSpacePoints'
248 primaryStripSpacePointsName = 'SCT_SpacePoints'
249 primaryStripOverlapSpacePointsName = 'OverlapSpacePoints'
250
251
252 if kwargs['runCacheCreation']:
253 kwargs.setdefault('SpacePointCacheCreatorAlg.name', f'{flags.Tracking.ActiveConfig.extension}SpacePointCacheCreatorAlg')
254
255
256 if kwargs['runReconstruction']:
257 if kwargs['processPixels']:
258 kwargs.setdefault('PixelSpacePointFormationAlg.name', f'{flags.Tracking.ActiveConfig.extension}PixelSpacePointFormationAlg')
259 kwargs.setdefault('PixelSpacePointFormationAlg.useCache', flags.Acts.useCache)
260 kwargs.setdefault('PixelSpacePointFormationAlg.SPCache', f'{flags.Tracking.ActiveConfig.extension}PixelSpacePointCache')
261 kwargs.setdefault('PixelSpacePointFormationAlg.PixelClusters', pixelClustersName)
262 kwargs.setdefault('PixelSpacePointFormationAlg.PixelSpacePoints', pixelSpacePointsName)
263
264 if kwargs['processStrips']:
265 kwargs.setdefault('StripSpacePointFormationAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripSpacePointFormationAlg')
266 kwargs.setdefault('StripSpacePointFormationAlg.useCache', flags.Acts.useCache)
267 kwargs.setdefault('StripSpacePointFormationAlg.SPCache', f'{flags.Tracking.ActiveConfig.extension}StripSpacePointCache')
268 kwargs.setdefault('StripSpacePointFormationAlg.StripClusters', stripClustersName)
269 kwargs.setdefault('StripSpacePointFormationAlg.StripSpacePoints', stripSpacePointsName)
270
271
272 kwargs.setdefault('StripSpacePointFormationAlg.ProcessOverlapForStrip', kwargs['processOverlapSpacePoints'])
273 kwargs.setdefault('StripSpacePointFormationAlg.OSPCache', f'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointCache')
274 if kwargs['processOverlapSpacePoints']:
275 kwargs.setdefault('StripSpacePointFormationAlg.StripOverlapSpacePoints', stripOverlapSpacePointsName)
276 else:
277
278 kwargs.setdefault('StripSpacePointFormationAlg.StripOverlapSpacePoints', '')
279
280
281 if kwargs['runPreparation']:
282 if kwargs['processPixels']:
283 kwargs.setdefault('PixelSpacePointPreparationAlg.name', f'{flags.Tracking.ActiveConfig.extension}PixelSpacePointPreparationAlg')
284 kwargs.setdefault('PixelSpacePointPreparationAlg.useCache', flags.Acts.useCache)
285 kwargs.setdefault('PixelSpacePointPreparationAlg.OutputCollection', f'{pixelSpacePointsName}_Cached' if kwargs['runReconstruction'] else pixelSpacePointsName)
286
287 if not flags.Acts.useCache:
288
289 kwargs.setdefault('PixelSpacePointPreparationAlg.InputCollection', pixelSpacePointsName if kwargs['runReconstruction'] else primaryPixelSpacePointsName)
290 kwargs.setdefault('PixelSpacePointPreparationAlg.InputIDC', '')
291 else:
292 kwargs.setdefault('PixelSpacePointPreparationAlg.InputCollection', '')
293 kwargs.setdefault('PixelSpacePointPreparationAlg.InputIDC', f'{flags.Tracking.ActiveConfig.extension}PixelSpacePointCache')
294
295 if flags.Tracking.ActiveConfig.isSecondaryPass and previousActsExtension is not None:
296 kwargs.setdefault('PixelSpacePointPreparationAlg.InputPrdMap', f'{previousActsExtension}PrdMap')
297
298 if kwargs['processStrips']:
299 kwargs.setdefault('StripSpacePointPreparationAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripSpacePointPreparationAlg')
300 kwargs.setdefault('StripSpacePointPreparationAlg.useCache', flags.Acts.useCache)
301 kwargs.setdefault('StripSpacePointPreparationAlg.OutputCollection', f'{stripSpacePointsName}_Cached' if kwargs['runReconstruction'] else stripSpacePointsName)
302
303 if not flags.Acts.useCache:
304
305 kwargs.setdefault('StripSpacePointPreparationAlg.InputCollection', stripSpacePointsName if kwargs['runReconstruction'] else primaryStripSpacePointsName)
306 kwargs.setdefault('StripSpacePointPreparationAlg.InputIDC', '')
307 else:
308 kwargs.setdefault('StripSpacePointPreparationAlg.InputCollection', '')
309 kwargs.setdefault('StripSpacePointPreparationAlg.InputIDC', f'{flags.Tracking.ActiveConfig.extension}StripSpacePointCache')
310
311 if flags.Tracking.ActiveConfig.isSecondaryPass and previousActsExtension is not None:
312 kwargs.setdefault('StripSpacePointPreparationAlg.InputPrdMap', f'{previousActsExtension}PrdMap')
313
314 if kwargs['processOverlapSpacePoints']:
315 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointPreparationAlg')
316 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.useCache', flags.Acts.useCache)
317 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.OutputCollection', f'{stripOverlapSpacePointsName}_Cached' if kwargs['runReconstruction'] else stripOverlapSpacePointsName)
318
319 if not flags.Acts.useCache:
320
321 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.InputCollection', stripOverlapSpacePointsName if kwargs['runReconstruction'] else primaryStripOverlapSpacePointsName)
322 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.InputIDC', '')
323 else:
324 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.InputCollection', '')
325 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.InputIDC', f'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointCache')
326
327 if flags.Tracking.ActiveConfig.isSecondaryPass and previousActsExtension is not None:
328 kwargs.setdefault('StripOverlapSpacePointPreparationAlg.InputPrdMap', f'{previousActsExtension}PrdMap')
329
330
331 if flags.Acts.doAnalysis:
332
333
334 if kwargs['processPixels']:
335 kwargs.setdefault('PixelSpacePointAnalysisAlg.name', f'{flags.Tracking.ActiveConfig.extension}PixelSpacePointAnalysisAlg')
336 kwargs.setdefault('PixelSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
337 kwargs.setdefault('PixelSpacePointAnalysisAlg.SpacePointContainerKey', kwargs['PixelSpacePointPreparationAlg.OutputCollection'] if kwargs['runPreparation'] else kwargs['PixelSpacePointFormationAlg.PixelSpacePoints'])
338
339 if kwargs['processStrips']:
340 kwargs.setdefault('StripSpacePointAnalysisAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripSpacePointAnalysisAlg')
341 kwargs.setdefault('StripSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
342 kwargs.setdefault('StripSpacePointAnalysisAlg.SpacePointContainerKey', kwargs['StripSpacePointPreparationAlg.OutputCollection'] if kwargs['runPreparation'] else kwargs['StripSpacePointFormationAlg.StripSpacePoints'])
343
344 if kwargs['processOverlapSpacePoints']:
345 kwargs.setdefault('StripOverlapSpacePointAnalysisAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointAnalysisAlg')
346 kwargs.setdefault('StripOverlapSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
347 kwargs.setdefault('StripOverlapSpacePointAnalysisAlg.SpacePointContainerKey', kwargs['StripOverlapSpacePointPreparationAlg.OutputCollection'] if kwargs['runPreparation'] else kwargs['StripSpacePointFormationAlg.StripOverlapSpacePoints'])
348
349 acc.merge(ActsIDMainSpacePointFormationCfg(flags, RoIs=roisName, **kwargs))
350 return acc