ATLAS Offline Software
Loading...
Searching...
No Matches
ActsSeedingConfig Namespace Reference

Functions

ComponentAccumulator ActsGbts2SeedingTrigToolCfg (flags, str name="Gbts2ActsSeedingTool", **kwargs)
ComponentAccumulator ActsPixelSeedingToolCfg (flags, str name="ActsPixelSeedingTool", **kwargs)
ComponentAccumulator ActsFastPixelSeedingToolCfg (flags, str name="ActsFastPixelSeedingTool", **kwargs)
ComponentAccumulator ActsStripSeedingToolCfg (flags, str name="ActsStripSeedingTool", **kwargs)
ComponentAccumulator ActsPixelGbtsSeedingToolCfg (flags, str name="ActsPixelGbtsSeedingTool", **kwargs)
ComponentAccumulator ActsSiSpacePointsSeedMakerToolCfg (flags, str name='ActsSiSpacePointsSeedMakerTool', **kwargs)
ComponentAccumulator ActsPixelSeedingAlgCfg (flags, str name='ActsPixelSeedingAlg', **kwargs)
ComponentAccumulator ActsStripSeedingAlgCfg (flags, str name='ActsStripSeedingAlg', **kwargs)
ComponentAccumulator ActsMainSeedingCfg (flags, **kwargs)
ComponentAccumulator ActsSeedingCfg (flags, **kwargs)
ComponentAccumulator ActsStoreTrackSeedsCfg (flags, *, bool processPixels, bool processStrips, **dict kwargs)
ComponentAccumulator ActsSeedToTrackCnvAlgCfg (flags, str name="ActsSeedToTrackCnvAlg", **dict kwargs)

Function Documentation

◆ ActsFastPixelSeedingToolCfg()

ComponentAccumulator ActsSeedingConfig.ActsFastPixelSeedingToolCfg ( flags,
str name = "ActsFastPixelSeedingTool",
** kwargs )

Definition at line 69 of file ActsSeedingConfig.py.

71 **kwargs) -> ComponentAccumulator:
72
73 kwargs.setdefault("sigmaScattering", 2.)
74 kwargs.setdefault("maxSeedsPerSpM", 3)
75 kwargs.setdefault("collisionRegionMin", -150 * ActsUnits.mm)
76 kwargs.setdefault("collisionRegionMax", 150 * ActsUnits.mm)
77 kwargs.setdefault("maxPhiBins", 200)
78 kwargs.setdefault("gridRMax", 250 * ActsUnits.mm)
79 kwargs.setdefault("deltaRMax", 200 * ActsUnits.mm)
80 kwargs.setdefault("zBinsCustomLooping" , [2, 10, 3, 9, 6, 4, 8, 5, 7])
81 kwargs.setdefault("rRangeMiddleSP", [
82 [0.0, 0.0],
83 [60.0, 165.0],
84 [60.0, 200.0],
85 [60.0, 200.0],
86 [60.0, 260.0],
87 [60.0, 260.0],
88 [60.0, 260.0],
89 [60.0, 200.0],
90 [60.0, 200.0],
91 [60.0, 165.0],
92 [0.0, 0.0]])
93
94 kwargs.setdefault("zBinNeighborsTop", [
95 [0, 0], # -3000, -2000
96 [-1, 0], # -2000, -1400
97 [-1, 0], # -1400, -910
98 [-1, 0], # -910, -500
99 [-1, 0], # -500, -250
100 [-1, 1], # -250, 250
101 [0, 1], # 250, 500
102 [0, 1], # 500, 910
103 [0, 1], # 910, 1400
104 [0, 1], # 1400, 2000
105 [0, 0] # 2000, 3000
106 ])
107 kwargs.setdefault("zBinNeighborsBottom", [
108 [0, 0], # -3000, -2000
109 [0, 1], # -2000, -1400
110 [0, 1], # -1400, -910
111 [0, 1], # -910, -500
112 [0, 1], # -500, -250
113 [0, 0], # -250, 250
114 [-1, 0], # 250, 500
115 [-1, 0], # 500, 910
116 [-1, 0], # 910, 1400
117 [-1, 0], # 1400, 2000
118 [0, 0] # 2000, 3000
119 ])
120
121 kwargs.setdefault("zBinEdges", [-3000., -2000, -1400., -910., -500., -250., 250., 500., 910., 1400., 2000, 3000.])
122 kwargs.setdefault("useExperimentCuts", True)
123
124 kwargs.setdefault("deltaRMaxTopSP", 220 * ActsUnits.mm)
125 kwargs.setdefault("deltaRMaxBottomSP", 135 * ActsUnits.mm)
126
127 return ActsPixelSeedingToolCfg(flags, name, **kwargs)
128

◆ ActsGbts2SeedingTrigToolCfg()

ComponentAccumulator ActsSeedingConfig.ActsGbts2SeedingTrigToolCfg ( flags,
str name = "Gbts2ActsSeedingTool",
** kwargs )

Definition at line 11 of file ActsSeedingConfig.py.

11def ActsGbts2SeedingTrigToolCfg(flags,name: str = "Gbts2ActsSeedingTool", **kwargs) -> ComponentAccumulator:
12 acc = ComponentAccumulator()
13
14 if "layerNumberTool" not in kwargs:
15 from TrigFastTrackFinder.TrigFastTrackFinderConfig import ITkTrigL2LayerNumberToolCfg
16 ntargs = {"UseNewLayerScheme" : True}
17 kwargs.setdefault("layerNumberTool",acc.popToolsAndMerge(ITkTrigL2LayerNumberToolCfg(flags,**ntargs)))
18
19 kwargs.setdefault("DoPhiFiltering", False) #no phi-filtering for full-scan tracking
20 kwargs.setdefault("UseBeamTilt", False)
21
22 isLRT = flags.Tracking.ActiveConfig.extension in ["LargeD0", "ActsLargeRadius"]
23
24 kwargs.setdefault("pTmin", flags.Tracking.ActiveConfig.minPTSeed)
25 kwargs.setdefault("MaxGraphEdges", 3000000)
26 kwargs.setdefault("ConnectionFileName",
27 "binTables_ITK_RUN4_LRT.txt" if isLRT else "binTables_ITK_RUN4.txt")
28
29 acc.setPrivateTools(CompFactory.Gbts2ActsSeedingTool(name, **kwargs))
30
31 return acc
32
33
34# ACTS tools

◆ ActsMainSeedingCfg()

ComponentAccumulator ActsSeedingConfig.ActsMainSeedingCfg ( flags,
** kwargs )

Definition at line 356 of file ActsSeedingConfig.py.

357 **kwargs) -> ComponentAccumulator:
358 acc = ComponentAccumulator()
359
360 kwargs.setdefault('processPixels', flags.Detector.EnableITkPixel)
361 kwargs.setdefault('processStrips', flags.Detector.EnableITkStrip)
362 kwargs.setdefault('estimateParameters', flags.Acts.Seeds.doAnalysis)
363
364 if kwargs['processPixels']:
365 acc.merge(ActsPixelSeedingAlgCfg(flags, **extractChildKwargs(prefix='PixelSeedingAlg.', **kwargs)))
366 if kwargs['processStrips']:
367 acc.merge(ActsStripSeedingAlgCfg(flags, **extractChildKwargs(prefix='StripSeedingAlg.', **kwargs)))
368
369
370 if kwargs['estimateParameters']:
371 if kwargs['processPixels']:
372 from ActsConfig.ActsAnalysisConfig import ActsPixelSeedsToTrackParamsAlgCfg
373 acc.merge(ActsPixelSeedsToTrackParamsAlgCfg(flags,
374 **extractChildKwargs(prefix='PixelSeedsToTrackParamsAlg.', **kwargs)))
375
376 if kwargs['processStrips']:
377 from ActsConfig.ActsAnalysisConfig import ActsStripSeedsToTrackParamsAlgCfg
378 acc.merge(ActsStripSeedsToTrackParamsAlgCfg(flags,
379 **extractChildKwargs(prefix='StripSeedsToTrackParamsAlg.', **kwargs)))
380
381 if flags.Acts.Seeds.doAnalysis:
382 if kwargs['processPixels']:
383 from ActsConfig.ActsAnalysisConfig import ActsPixelSeedAnalysisAlgCfg, ActsPixelEstimatedTrackParamsAnalysisAlgCfg
384 acc.merge(ActsPixelSeedAnalysisAlgCfg(flags, **extractChildKwargs(prefix='PixelSeedAnalysisAlg.', **kwargs)))
385 acc.merge(ActsPixelEstimatedTrackParamsAnalysisAlgCfg(flags, **extractChildKwargs(prefix='PixelEstimatedTrackParamsAnalysisAlg.', **kwargs)))
386
387 if kwargs['processStrips']:
388 from ActsConfig.ActsAnalysisConfig import ActsStripSeedAnalysisAlgCfg, ActsStripEstimatedTrackParamsAnalysisAlgCfg
389 acc.merge(ActsStripSeedAnalysisAlgCfg(flags, **extractChildKwargs(prefix='StripSeedAnalysisAlg.', **kwargs)))
390 acc.merge(ActsStripEstimatedTrackParamsAnalysisAlgCfg(flags, **extractChildKwargs(prefix='StripEstimatedTrackParamsAnalysisAlg.', **kwargs)))
391
392 return acc
393

◆ ActsPixelGbtsSeedingToolCfg()

ComponentAccumulator ActsSeedingConfig.ActsPixelGbtsSeedingToolCfg ( flags,
str name = "ActsPixelGbtsSeedingTool",
** kwargs )

Definition at line 185 of file ActsSeedingConfig.py.

187 **kwargs) -> ComponentAccumulator:
188 acc = ComponentAccumulator()
189 if "layerNumberTool" not in kwargs:
190 from TrigFastTrackFinder.TrigFastTrackFinderConfig import ITkTrigL2LayerNumberToolCfg
191 ntargs = {"UseNewLayerScheme": True}
192 kwargs.setdefault(
193 "layerNumberTool",
194 acc.popToolsAndMerge(ITkTrigL2LayerNumberToolCfg(flags, **ntargs))
195 )
196
197 kwargs.setdefault("connectorInputFile" , find_datafile("binTables_ITK_RUN4.txt"))
198 kwargs.setdefault("lutInputFile" , find_datafile("gbts_ml_pixel_barrel_loose.lut"))
199 kwargs.setdefault("minPt" , flags.Tracking.ActiveConfig.minPTSeed / GaudiUnits.GeV * ActsUnits.GeV)
200
201 acc.setPrivateTools(CompFactory.ActsTrk.GbtsSeedingTool(name = name, **kwargs))
202 return acc
203

◆ ActsPixelSeedingAlgCfg()

ComponentAccumulator ActsSeedingConfig.ActsPixelSeedingAlgCfg ( flags,
str name = 'ActsPixelSeedingAlg',
** kwargs )

Definition at line 278 of file ActsSeedingConfig.py.

280 **kwargs) -> ComponentAccumulator:
281 acc = ComponentAccumulator()
282
283 # Beam Spot Cond is a requirement
284 from BeamSpotConditions.BeamSpotConditionsConfig import BeamSpotCondAlgCfg
285 acc.merge(BeamSpotCondAlgCfg(flags))
286
287 from MagFieldServices.MagFieldServicesConfig import AtlasFieldCacheCondAlgCfg
288 acc.merge(AtlasFieldCacheCondAlgCfg(flags))
289
290 from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
291 acc.merge(ITkPixelReadoutGeometryCfg(flags))
292
293 from InDetConfig.ITkActsHelpers import isFastPrimaryPass
294 useFastTracking = kwargs.get("useFastTracking", isFastPrimaryPass(flags))
295
296 if "SeedTool" not in kwargs:
297 if flags.Acts.SeedingStrategy is SeedingStrategy.Gbts:
298 kwargs.setdefault('SeedTool', acc.popToolsAndMerge(ActsPixelGbtsSeedingToolCfg(flags)))
299 elif flags.Acts.SeedingStrategy is SeedingStrategy.Gbts2:
300 kwargs.setdefault('SeedTool', acc.popToolsAndMerge(ActsGbts2SeedingTrigToolCfg(flags)))
301 else:
302 if useFastTracking:
303 kwargs.setdefault('SeedTool', acc.popToolsAndMerge(ActsFastPixelSeedingToolCfg(flags)))
304 else:
305 kwargs.setdefault('SeedTool', acc.popToolsAndMerge(ActsPixelSeedingToolCfg(flags)))
306
307 kwargs.setdefault("useFastTracking", useFastTracking)
308 kwargs.setdefault('InputSpacePoints', ['ITkPixelSpacePoints_Cached'] if flags.Acts.useCache else ['ITkPixelSpacePoints'])
309 kwargs.setdefault('OutputSeeds', 'ActsPixelSeeds')
310 kwargs.setdefault('UsePixel', True)
311
312 if flags.Acts.doMonitoring and 'MonTool' not in kwargs:
313 from ActsConfig.ActsMonitoringConfig import ActsITkPixelSeedingMonitoringToolCfg
314 kwargs.setdefault('MonTool', acc.popToolsAndMerge(ActsITkPixelSeedingMonitoringToolCfg(flags)))
315
316 if flags.Acts.SeedingStrategy in (SeedingStrategy.GridTriplet, SeedingStrategy.Gbts):
317 acc.addEventAlgo(CompFactory.ActsTrk.GenericSeedingAlg(name, **kwargs))
318 else:
319 acc.addEventAlgo(CompFactory.ActsTrk.SeedingAlg(name, **kwargs))
320 return acc
321
322

◆ ActsPixelSeedingToolCfg()

ComponentAccumulator ActsSeedingConfig.ActsPixelSeedingToolCfg ( flags,
str name = "ActsPixelSeedingTool",
** kwargs )

Definition at line 35 of file ActsSeedingConfig.py.

37 **kwargs) -> ComponentAccumulator:
38 acc = ComponentAccumulator()
39
40
41 kwargs.setdefault("numSeedIncrement" , float("inf"))
42 kwargs.setdefault("deltaZMax" , float("inf"))
43 kwargs.setdefault("maxPtScattering", float("inf"))
44 kwargs.setdefault("useVariableMiddleSPRange", False)
45 kwargs.setdefault("rMax", 320. * ActsUnits.mm)
46 kwargs.setdefault("minPt", flags.Tracking.ActiveConfig.minPTSeed / GaudiUnits.GeV * ActsUnits.GeV)
47 kwargs.setdefault("impactMax", flags.Tracking.ActiveConfig.maxPrimaryImpactSeed / GaudiUnits.mm * ActsUnits.mm)
48 kwargs.setdefault("rBinEdges", [0, kwargs['rMax']])
49 kwargs.setdefault("rRangeMiddleSP", [
50 [0,0],
51 [140, 260],
52 [40, 260],
53 [40, 260],
54 [40, 260],
55 [40, 260],
56 [70, 260],
57 [40, 260],
58 [40, 260],
59 [40, 260],
60 [40, 260],
61 [140, 260],
62 [0, 0]])
63 if flags.Acts.SeedingStrategy is SeedingStrategy.GridTriplet:
64 acc.setPrivateTools(CompFactory.ActsTrk.GridTripletSeedingTool(name, **kwargs))
65 else:
66 acc.setPrivateTools(CompFactory.ActsTrk.SeedingTool(name, **kwargs))
67 return acc
68

◆ ActsSeedingCfg()

ComponentAccumulator ActsSeedingConfig.ActsSeedingCfg ( flags,
** kwargs )

Definition at line 394 of file ActsSeedingConfig.py.

394def ActsSeedingCfg(flags,**kwargs) -> ComponentAccumulator:
395 acc = ComponentAccumulator()
396 processPixels = flags.Detector.EnableITkPixel
397 processStrips = flags.Detector.EnableITkStrip
398
399 # For conversion pass we do not process pixels
400 from InDetConfig.ITkActsHelpers import isFastPrimaryPass
401 if flags.Tracking.ActiveConfig.extension in ["ActsConversion", "ActsLargeRadius", "ActsValidateLargeRadiusStandalone"]:
402 processPixels = False
403 # For main pass disable strips if fast tracking configuration
404 elif isFastPrimaryPass(flags):
405 processStrips = False
406
407 kwargs.setdefault('processPixels', processPixels)
408 kwargs.setdefault('processStrips', processStrips)
409 kwargs.setdefault('estimateParameters', flags.Tracking.ActiveConfig.storeTrackSeeds or flags.Acts.Seeds.doAnalysis)
410
411 # TO-DO: refactor this seeding tool configuration
412 if flags.Tracking.ActiveConfig.extension == "ActsHeavyIon" and processPixels:
413 kwargs.setdefault('PixelSeedingAlg.SeedTool', acc.popToolsAndMerge(ActsPixelSeedingToolCfg(flags,
414 name=f'{flags.Tracking.ActiveConfig.extension}PixelSeedingTool')))
415
416 if processStrips and (flags.Acts.SeedingStrategy is SeedingStrategy.Default or flags.Acts.SeedingStrategy is SeedingStrategy.GridTriplet):
417 kwargs.setdefault('StripSeedingAlg.SeedTool', acc.popToolsAndMerge(ActsStripSeedingToolCfg(flags,
418 name=f'{flags.Tracking.ActiveConfig.extension}StripSeedingTool')))
419
420 if processPixels:
421 # Seeding algo
422 kwargs.setdefault('PixelSeedingAlg.name', f'{flags.Tracking.ActiveConfig.extension}PixelSeedingAlg')
423 kwargs.setdefault('PixelSeedingAlg.useFastTracking', isFastPrimaryPass(flags))
424 kwargs.setdefault('PixelSeedingAlg.OutputSeeds', f'{flags.Tracking.ActiveConfig.extension}PixelSeeds')
425
426 pixelSpacePoints = ['ITkPixelSpacePoints_Cached'] if flags.Acts.useCache else ['ITkPixelSpacePoints']
427 if flags.Tracking.ActiveConfig.isSecondaryPass:
428 pixelSpacePoints = [f'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}PixelSpacePoints_Cached'] if flags.Acts.useCache else [f'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}PixelSpacePoints']
429 kwargs.setdefault('PixelSeedingAlg.InputSpacePoints', pixelSpacePoints)
430
431 # Setup the seed to track parameters algorithms either if we persistify them or we want to run the ActsMonitoring
432 if flags.Tracking.ActiveConfig.storeTrackSeeds or flags.Acts.Seeds.doAnalysis:
433 kwargs.setdefault('PixelSeedsToTrackParamsAlg.name', f'{flags.Tracking.ActiveConfig.extension}PixelSeedsToTrackParamsAlg')
434 kwargs.setdefault('PixelSeedsToTrackParamsAlg.extension', flags.Tracking.ActiveConfig.extension)
435 kwargs.setdefault('PixelSeedsToTrackParamsAlg.InputSeedContainerKey', kwargs['PixelSeedingAlg.OutputSeeds'])
436 kwargs.setdefault('PixelSeedsToTrackParamsAlg.OutputTrackParamsCollectionKey', f'{flags.Tracking.ActiveConfig.extension}PixelEstimatedTrackParams')
437
438 # Analysis algo(s)
439 if flags.Acts.Seeds.doAnalysis:
440 kwargs.setdefault('PixelSeedAnalysisAlg.name', f'{flags.Tracking.ActiveConfig.extension}PixelSeedAnalysisAlg')
441 kwargs.setdefault('PixelSeedAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
442 kwargs.setdefault('PixelSeedAnalysisAlg.InputSeedCollection', kwargs['PixelSeedingAlg.OutputSeeds'])
443
444 kwargs.setdefault('PixelEstimatedTrackParamsAnalysisAlg.name', f'{flags.Tracking.ActiveConfig.extension}PixelEstimatedTrackParamsAnalysisAlg')
445 kwargs.setdefault('PixelEstimatedTrackParamsAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
446 kwargs.setdefault('PixelEstimatedTrackParamsAnalysisAlg.InputTrackParamsCollection', kwargs['PixelSeedsToTrackParamsAlg.OutputTrackParamsCollectionKey'])
447
448 if processStrips:
449 # Seeding algo
450 kwargs.setdefault('StripSeedingAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripSeedingAlg')
451 kwargs.setdefault('StripSeedingAlg.OutputSeeds', f'{flags.Tracking.ActiveConfig.extension}StripSeeds')
452 # Conversion pass does not use overlap space points
453 # Space Point naming is not yet fully connected to tracking passes - this will change
454 if flags.Tracking.ActiveConfig.extension == 'ActsConversion':
455 kwargs.setdefault('StripSeedingAlg.InputSpacePoints', ['ITkConversionStripSpacePoints_Cached'] if flags.Acts.useCache else ['ITkConversionStripSpacePoints'])
456 elif flags.Tracking.ActiveConfig.extension == 'ActsLargeRadius':
457 kwargs.setdefault('StripSeedingAlg.InputSpacePoints', ['ITkLargeRadiusStripSpacePoints_Cached',
458 'ITkLargeRadiusStripOverlapSpacePoints_Cached'] if flags.Acts.useCache else ['ITkLargeRadiusStripSpacePoints',
459 'ITkLargeRadiusStripOverlapSpacePoints'])
460 elif flags.Tracking.ActiveConfig.extension == 'ActsLowPt':
461 kwargs.setdefault('StripSeedingAlg.InputSpacePoints', ['ITkLowPtStripSpacePoints_Cached',
462 'ITkLowPtStripOverlapSpacePoints_Cached'] if flags.Acts.useCache else ['ITkLowPtStripSpacePoints',
463 'ITkLowPtStripOverlapSpacePoints'])
464 else:
465 kwargs.setdefault('StripSeedingAlg.InputSpacePoints', ['ITkStripSpacePoints_Cached',
466 'ITkStripOverlapSpacePoints_Cached'] if flags.Acts.useCache else ['ITkStripSpacePoints',
467 'ITkStripOverlapSpacePoints'])
468
469 if flags.Tracking.ActiveConfig.storeTrackSeeds or flags.Acts.Seeds.doAnalysis:
470 kwargs.setdefault('StripSeedsToTrackParamsAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripSeedsToTrackParamsAlg')
471 kwargs.setdefault('StripSeedsToTrackParamsAlg.extension', flags.Tracking.ActiveConfig.extension)
472 kwargs.setdefault('StripSeedsToTrackParamsAlg.InputSeedContainerKey', kwargs['StripSeedingAlg.OutputSeeds'])
473 kwargs.setdefault('StripSeedsToTrackParamsAlg.OutputTrackParamsCollectionKey', f'{flags.Tracking.ActiveConfig.extension}StripEstimatedTrackParams')
474
475
476 # Analysis algo(s)
477 if flags.Acts.Seeds.doAnalysis:
478 kwargs.setdefault('StripSeedAnalysisAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripSeedAnalysisAlg')
479 kwargs.setdefault('StripSeedAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
480 kwargs.setdefault('StripSeedAnalysisAlg.InputSeedCollection', kwargs['StripSeedingAlg.OutputSeeds'])
481
482 kwargs.setdefault('StripEstimatedTrackParamsAnalysisAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripEstimatedTrackParamsAnalysisAlg')
483 kwargs.setdefault('StripEstimatedTrackParamsAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
484 kwargs.setdefault('StripEstimatedTrackParamsAnalysisAlg.InputTrackParamsCollection', kwargs['StripSeedsToTrackParamsAlg.OutputTrackParamsCollectionKey'])
485
486 acc.merge(ActsMainSeedingCfg(flags, **kwargs))
487
488
489 if flags.Tracking.ActiveConfig.storeTrackSeeds:
490 acc.merge(ActsStoreTrackSeedsCfg(flags,
491 processPixels = processPixels,
492 processStrips = processStrips))
493
494 return acc
495

◆ ActsSeedToTrackCnvAlgCfg()

ComponentAccumulator ActsSeedingConfig.ActsSeedToTrackCnvAlgCfg ( flags,
str name = "ActsSeedToTrackCnvAlg",
**dict kwargs )

Definition at line 626 of file ActsSeedingConfig.py.

628 **kwargs: dict) -> ComponentAccumulator:
629 acc = ComponentAccumulator()
630
631 kwargs.setdefault('SeedContainerKey', [])
632 kwargs.setdefault('EstimatedTrackParametersKey', [])
633 kwargs.setdefault('ACTSTracksLocation', f'SiSPTracksSeedSegments{flags.Tracking.ActiveConfig.extension}Tracks')
634
635 if 'TrackingGeometryTool' not in kwargs:
636 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometryToolCfg
637 kwargs.setdefault('TrackingGeometryTool', acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)))
638
639 acc.addEventAlgo(CompFactory.ActsTrk.SeedToTrackCnvAlg(name, **kwargs))
640 return acc
641

◆ ActsSiSpacePointsSeedMakerToolCfg()

ComponentAccumulator ActsSeedingConfig.ActsSiSpacePointsSeedMakerToolCfg ( flags,
str name = 'ActsSiSpacePointsSeedMakerTool',
** kwargs )

Definition at line 204 of file ActsSeedingConfig.py.

206 **kwargs) -> ComponentAccumulator:
207 assert isinstance(name, str)
208
209 acc = ComponentAccumulator()
210
211 if flags.Tracking.ActiveConfig.extension == "ActsValidateConversionSeeds":
212 kwargs.setdefault('useOverlapSpCollection', False)
213
214 # Main properties
215 kwargs.setdefault('usePixel',
216 flags.Tracking.ActiveConfig.useITkPixel and
217 flags.Tracking.ActiveConfig.useITkPixelSeeding)
218 kwargs.setdefault('useStrip',
219 flags.Tracking.ActiveConfig.useITkStrip and
220 flags.Tracking.ActiveConfig.useITkStripSeeding)
221 kwargs.setdefault('useOverlapSpCollection',
222 flags.Tracking.ActiveConfig.useITkStrip and
223 flags.Tracking.ActiveConfig.useITkStripSeeding)
224 kwargs.setdefault('ActsSpacePointsPixelName' , "ITkPixelSpacePoints")
225 kwargs.setdefault('ActsSpacePointsStripName' , "ITkStripSpacePoints")
226 kwargs.setdefault('ActsSpacePointsOverlapName' , "ITkStripOverlapSpacePoints")
227
228
229 # The code will need to use Trk::SpacePoint object for downstream Athena tracking
230 # If we run this tool we have two options to retrieve this:
231 # (1) Have the Athena->Acts Space Point Converter scheduled beforehand
232 # (2) Have the Athena->Acts Cluster Converter scheduled beforehand
233 # In case (1) the link xAOD -> Trk Space Point will be used to retrieve the Trk::SpacePoints
234 # In case (2) the link xAOD -> InDet Cluster will be used to create the Trk::SpacePoints
235 # If none of the above conditions are met, it means there is a misconfiguration of the algorithms
236 useClusters = flags.Tracking.ActiveConfig.doAthenaToActsCluster and not flags.Tracking.ActiveConfig.doAthenaToActsSpacePoint
237 kwargs.setdefault('useClustersForSeedConversion', useClusters)
238
239 if flags.Tracking.ActiveConfig.usePrdAssociationTool:
240 # not all classes have that property !!!
241 kwargs.setdefault('PRDtoTrackMap', (
242 'ITkPRDtoTrackMap' + flags.Tracking.ActiveConfig.extension))
243
244 # Acts Seed Tools
245 # Do not overwrite if already present in `kwargs`
246 seedTool_pixel = None
247 if 'SeedToolPixel' not in kwargs:
248 from InDetConfig.ITkActsHelpers import isFastPrimaryPass
249 if flags.Acts.SeedingStrategy is SeedingStrategy.Gbts:
250 seedTool_pixel = acc.popToolsAndMerge(ActsPixelGbtsSeedingToolCfg(flags))
251 elif flags.Acts.SeedingStrategy is SeedingStrategy.Gbts2:
252 seedTool_pixel = acc.popToolsAndMerge(ActsGbts2SeedingTrigToolCfg(flags))
253 else:
254 if isFastPrimaryPass(flags):
255 kwargs.setdefault("useFastTracking", True)
256 seedTool_pixel = acc.popToolsAndMerge(ActsFastPixelSeedingToolCfg(flags))
257 else:
258 seedTool_pixel = acc.popToolsAndMerge(ActsPixelSeedingToolCfg(flags))
259
260 seedTool_strip = None
261 if 'SeedToolStrip' not in kwargs:
262 seedTool_strip = acc.popToolsAndMerge(ActsStripSeedingToolCfg(flags))
263
264 kwargs.setdefault('SeedToolPixel', seedTool_pixel)
265 kwargs.setdefault('SeedToolStrip', seedTool_strip)
266
267 # Validation
268 if flags.Tracking.writeSeedValNtuple:
269 kwargs.setdefault('WriteNtuple', True)
270 HistService = CompFactory.THistSvc(Output = ["valNtuples DATAFILE='SeedMakerValidation.root' OPT='RECREATE'"])
271 acc.addService(HistService)
272
273 acc.setPrivateTools(CompFactory.ActsTrk.SiSpacePointsSeedMaker(name, **kwargs))
274 return acc
275
276
277# ACTS algorithm using Athena objects upstream

◆ ActsStoreTrackSeedsCfg()

ComponentAccumulator ActsSeedingConfig.ActsStoreTrackSeedsCfg ( flags,
* ,
bool processPixels,
bool processStrips,
**dict kwargs )

Definition at line 496 of file ActsSeedingConfig.py.

500 **kwargs: dict) -> ComponentAccumulator:
501
502
503 acc = ComponentAccumulator()
504
505 seedKeyPixels = f'{flags.Tracking.ActiveConfig.extension}PixelSeeds'
506 seedKeyStrips = f'{flags.Tracking.ActiveConfig.extension}StripSeeds'
507 paramsKeyPixels = f'{flags.Tracking.ActiveConfig.extension}PixelEstimatedTrackParams'
508 paramsKeyStrips = f'{flags.Tracking.ActiveConfig.extension}StripEstimatedTrackParams'
509 trackKeyPixels = f'SiSPTracksSeedSegments{flags.Tracking.ActiveConfig.extension}PixelTracks'
510 trackKeyStrips = f'SiSPTracksSeedSegments{flags.Tracking.ActiveConfig.extension}StripTracks'
511 particleKeyPixels = f'SiSPSeedSegments{flags.Tracking.ActiveConfig.extension}PixelTrackParticles'
512 particleKeyStrips = f'SiSPSeedSegments{flags.Tracking.ActiveConfig.extension}StripTrackParticles'
513
514 trackKey = f'SiSPTracksSeedSegments{flags.Tracking.ActiveConfig.extension}Tracks'
515 particleKey = f'SiSPSeedSegments{flags.Tracking.ActiveConfig.extension}TrackParticles'
516
517
518 if processPixels:
519 # Create track parameters from pixel seeds
520 from ActsConfig.ActsAnalysisConfig import ActsPixelSeedsToTrackParamsAlgCfg
521 acc.merge(ActsPixelSeedsToTrackParamsAlgCfg(flags,
522 name = f'{flags.Tracking.ActiveConfig.extension}PixelSeedsToTrackParamsAlg',
523 extension = flags.Tracking.ActiveConfig.extension,
524 InputSeedContainerKey = seedKeyPixels,
525 OutputTrackParamsCollectionKey = paramsKeyPixels))
526
527
528 # Convert pixel seed to Acts track
529 acc.merge(ActsSeedToTrackCnvAlgCfg(flags,
530 name=f"{flags.Tracking.ActiveConfig.extension}PixelSeedToTrackCnvAlg",
531 EstimatedTrackParametersKey = [paramsKeyPixels],
532 SeedContainerKey = [seedKeyPixels],
533 ACTSTracksLocation = trackKeyPixels))
534
535 # Truth
536 if flags.Tracking.doTruth:
537 from ActsConfig.ActsTruthConfig import ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg
538 acc.merge(ActsTrackToTruthAssociationAlgCfg(flags,
539 name = f"{trackKeyPixels}TrackToTruthAssociationAlg",
540 ACTSTracksLocation = trackKeyPixels,
541 AssociationMapOut = f"{trackKeyPixels}ToTruthParticleAssociation"))
542
543 acc.merge(ActsTrackFindingValidationAlgCfg(flags,
544 name = f"{trackKeyPixels}TrackFindingValidationAlg",
545 TrackToTruthAssociationMap = f"{trackKeyPixels}ToTruthParticleAssociation"))
546
547 # Track Particle creation and persistification
548 # - input track collection: trackKeyPixels
549 # - output track particle collection: particleKeyPixels
550 from InDetConfig.ITkActsParticleCreationConfig import ITkActsTrackParticleCreationCfg
551 acc.merge(ITkActsTrackParticleCreationCfg(flags,
552 TrackContainers = [trackKeyPixels],
553 TrackParticleContainer = particleKeyPixels))
554
555
556 if processStrips:
557 # Create track parameters from strip seeds
558 from ActsConfig.ActsAnalysisConfig import ActsStripSeedsToTrackParamsAlgCfg
559 acc.merge(ActsStripSeedsToTrackParamsAlgCfg(flags,
560 name = f'{flags.Tracking.ActiveConfig.extension}StripSeedsToTrackParamsAlg',
561 extension = flags.Tracking.ActiveConfig.extension,
562 InputSeedContainerKey = seedKeyStrips,
563 OutputTrackParamsCollectionKey = paramsKeyStrips))
564
565 # Convert strip seed to Acts track
566 acc.merge(ActsSeedToTrackCnvAlgCfg(flags,
567 name=f"{flags.Tracking.ActiveConfig.extension}StripSeedToTrackCnvAlg",
568 EstimatedTrackParametersKey = [paramsKeyStrips],
569 SeedContainerKey = [seedKeyStrips],
570 ACTSTracksLocation = trackKeyStrips))
571
572 # Truth
573 if flags.Tracking.doTruth:
574 from ActsConfig.ActsTruthConfig import ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg
575 acc.merge(ActsTrackToTruthAssociationAlgCfg(flags,
576 name=f"{trackKeyStrips}TrackToTruthAssociationAlg",
577 ACTSTracksLocation = trackKeyStrips,
578 AssociationMapOut = f"{trackKeyStrips}ToTruthParticleAssociation"))
579
580 acc.merge(ActsTrackFindingValidationAlgCfg(flags,
581 name = f"{trackKeyStrips}TrackFindingValidationAlg",
582 TrackToTruthAssociationMap = f"{trackKeyStrips}ToTruthParticleAssociation"))
583
584 # Track Particle creation and persistification
585 # - input track collection: trackKeyStrips
586 # - output track particle collection: particleKeyStrips
587 from InDetConfig.ITkActsParticleCreationConfig import ITkActsTrackParticleCreationCfg
588 acc.merge(ITkActsTrackParticleCreationCfg(flags,
589 TrackContainers = [trackKeyStrips],
590 TrackParticleContainer = particleKeyStrips))
591
592 # If both pixel and strips are processed, also make track particles from the sum
593 # This will provide the complete seed efficiency for ACTS
594 if processPixels and processStrips:
595 # Parameter estimation has already been performed
596 # Convert seeds to Acts tracks
597 acc.merge(ActsSeedToTrackCnvAlgCfg(flags,
598 name=f"{flags.Tracking.ActiveConfig.extension}SeedToTrackCnvAlg",
599 EstimatedTrackParametersKey = [paramsKeyPixels, paramsKeyStrips],
600 SeedContainerKey = [seedKeyPixels, seedKeyStrips],
601 ACTSTracksLocation = trackKey))
602
603 # Truth
604 if flags.Tracking.doTruth:
605 from ActsConfig.ActsTruthConfig import ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg
606 acc.merge(ActsTrackToTruthAssociationAlgCfg(flags,
607 name=f"{trackKey}TrackToTruthAssociationAlg",
608 ACTSTracksLocation = trackKey,
609 AssociationMapOut = f"{trackKey}ToTruthParticleAssociation"))
610
611 acc.merge(ActsTrackFindingValidationAlgCfg(flags,
612 name = f"{trackKey}TrackFindingValidationAlg",
613 TrackToTruthAssociationMap = f"{trackKey}ToTruthParticleAssociation"))
614
615 # Track Particle creation and persistification
616 # - input track collection: trackKey
617 # - output track particle collection: particleKey
618 from InDetConfig.ITkActsParticleCreationConfig import ITkActsTrackParticleCreationCfg
619 acc.merge(ITkActsTrackParticleCreationCfg(flags,
620 TrackContainers = [trackKey],
621 TrackParticleContainer = particleKey))
622
623 return acc
624
625

◆ ActsStripSeedingAlgCfg()

ComponentAccumulator ActsSeedingConfig.ActsStripSeedingAlgCfg ( flags,
str name = 'ActsStripSeedingAlg',
** kwargs )

Definition at line 323 of file ActsSeedingConfig.py.

325 **kwargs) -> ComponentAccumulator:
326 acc = ComponentAccumulator()
327
328 # Beam Spot Cond is a requirement
329 from BeamSpotConditions.BeamSpotConditionsConfig import BeamSpotCondAlgCfg
330 acc.merge(BeamSpotCondAlgCfg(flags))
331
332 from MagFieldServices.MagFieldServicesConfig import AtlasFieldCacheCondAlgCfg
333 acc.merge(AtlasFieldCacheCondAlgCfg(flags))
334
335 from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripReadoutGeometryCfg
336 acc.merge(ITkStripReadoutGeometryCfg(flags))
337
338 if "SeedTool" not in kwargs:
339 kwargs.setdefault('SeedTool', acc.popToolsAndMerge(ActsStripSeedingToolCfg(flags)))
340
341 kwargs.setdefault('InputSpacePoints', ['ITkStripSpacePoints_Cached', 'ITkStripOverlapSpacePoints_Cached'] if flags.Acts.useCache else ['ITkStripSpacePoints', 'ITkStripOverlapSpacePoints'])
342 kwargs.setdefault('OutputSeeds', 'ActsStripSeeds')
343 kwargs.setdefault('UsePixel', False)
344
345 if flags.Acts.doMonitoring and 'MonTool' not in kwargs:
346 from ActsConfig.ActsMonitoringConfig import ActsITkStripSeedingMonitoringToolCfg
347 kwargs.setdefault('MonTool', acc.popToolsAndMerge(ActsITkStripSeedingMonitoringToolCfg(flags)))
348
349 if flags.Acts.SeedingStrategy is SeedingStrategy.GridTriplet:
350 acc.addEventAlgo(CompFactory.ActsTrk.GenericSeedingAlg(name, **kwargs))
351 else:
352 acc.addEventAlgo(CompFactory.ActsTrk.SeedingAlg(name, **kwargs))
353 return acc
354
355

◆ ActsStripSeedingToolCfg()

ComponentAccumulator ActsSeedingConfig.ActsStripSeedingToolCfg ( flags,
str name = "ActsStripSeedingTool",
** kwargs )

Definition at line 129 of file ActsSeedingConfig.py.

131 **kwargs) -> ComponentAccumulator:
132 acc = ComponentAccumulator()
133
134 impactMax = 20. * ActsUnits.mm
135 collisionRegionAbsMax = 200. * ActsUnits.mm
136 deltaRMiddleMaxSPRange = 150 * ActsUnits.mm
137 kwargs.setdefault("minPt", flags.Tracking.ActiveConfig.minPTSeed / GaudiUnits.GeV * ActsUnits.GeV)
138 if flags.Tracking.ActiveConfig.extension in ["ActsLargeRadius", "ActsValidateLargeRadiusSeeds", "ActsValidateLargeRadiusStandalone"]:
139 impactMax = 300. * ActsUnits.mm
140 collisionRegionAbsMax = 500. * ActsUnits.mm
141 deltaRMiddleMaxSPRange = 50 * ActsUnits.mm
142
143
144
145 kwargs.setdefault("doSeedQualitySelection", False)
146 # For SpacePointGridConfig
147 kwargs.setdefault("gridRMax" , 1000. * ActsUnits.mm)
148 kwargs.setdefault("deltaRMax" , 600. * ActsUnits.mm)
149 kwargs.setdefault("impactMax" , impactMax)
150 # For SeedfinderConfig
151 kwargs.setdefault("rMax" , flags.Tracking.ActiveConfig.radMax)
152 kwargs.setdefault("deltaRMinTopSP" , 20. * ActsUnits.mm)
153 kwargs.setdefault("deltaRMaxTopSP" , 300. * ActsUnits.mm)
154 kwargs.setdefault("deltaRMinBottomSP" , 20. * ActsUnits.mm)
155 kwargs.setdefault("deltaRMaxBottomSP" , 300. * ActsUnits.mm)
156 kwargs.setdefault("deltaZMax" , 900. * ActsUnits.mm)
157 kwargs.setdefault("interactionPointCut" , False)
158 kwargs.setdefault("zBinsCustomLooping" , [7, 8, 6, 9, 5, 10, 4, 11, 3, 12, 2])
159 kwargs.setdefault("deltaRMiddleMinSPRange" , 30 * ActsUnits.mm)
160 kwargs.setdefault("deltaRMiddleMaxSPRange" , deltaRMiddleMaxSPRange)
161 kwargs.setdefault("useDetailedDoubleMeasurementInfo" , True)
162 kwargs.setdefault("maxPtScattering", float("inf"))
163 # For SeedFilterConfig
164 kwargs.setdefault("useDeltaRorTopRadius" , False)
165 kwargs.setdefault("seedConfirmationInFilter" , False)
166 kwargs.setdefault("impactWeightFactor" , 1.)
167 kwargs.setdefault("compatSeedLimit" , 4)
168 kwargs.setdefault("numSeedIncrement" , 1.)
169 kwargs.setdefault("seedWeightIncrement" , 10100.)
170 kwargs.setdefault("maxSeedsPerSpMConf" , 100)
171 kwargs.setdefault("maxQualitySeedsPerSpMConf" , 100)
172 # For seeding algorithm
173 kwargs.setdefault("zBinNeighborsBottom" , [(0,0),(0,1),(0,1),(0,1),(0,2),(0,1),(0,0),(-1,0),(-2,0),(-1,0),(-1,0),(-1,0),(0,0)])
174 # Any other
175 kwargs.setdefault("rBinEdges", [0, kwargs['rMax']])
176 kwargs.setdefault("collisionRegionMin", -1. * collisionRegionAbsMax)
177 kwargs.setdefault("collisionRegionMax", collisionRegionAbsMax)
178
179 if flags.Acts.SeedingStrategy is SeedingStrategy.GridTriplet:
180 acc.setPrivateTools(CompFactory.ActsTrk.GridTripletSeedingTool(name, **kwargs))
181 else:
182 acc.setPrivateTools(CompFactory.ActsTrk.SeedingTool(name, **kwargs))
183 return acc
184