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

Functions

ComponentAccumulator ActsGbtsFtfSeedingTrigToolCfg (flags, str name="GbtsFtfActsSeedingTool", **kwargs)
ComponentAccumulator ActsPixelSeedingToolCfg (flags, str name="ActsPixelSeedingTool", **kwargs)
ComponentAccumulator ActsFastPixelSeedingToolCfg (flags, str name="ActsFastPixelSeedingTool", **kwargs)
ComponentAccumulator ActsStripSeedingToolCfg (flags, str name="ActsStripSeedingTool", **kwargs)
ComponentAccumulator ActsLargeRadiusStripSeedingToolCfg (flags, str name="ActsLargeRadiusStripSeedingTool", **kwargs)
ComponentAccumulator ActsPixelGbtsSeedingToolCfg (flags, str name="ActsPixelGbtsSeedingTool", **kwargs)
ComponentAccumulator ActsStripGbtsSeedingToolCfg (flags, str name="ActsStripGbtsSeedingTool", **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 66 of file ActsSeedingConfig.py.

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

◆ ActsGbtsFtfSeedingTrigToolCfg()

ComponentAccumulator ActsSeedingConfig.ActsGbtsFtfSeedingTrigToolCfg ( flags,
str name = "GbtsFtfActsSeedingTool",
** kwargs )

Definition at line 11 of file ActsSeedingConfig.py.

11def ActsGbtsFtfSeedingTrigToolCfg(flags,name: str = "GbtsFtfActsSeedingTool", **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 isLargeD0 = flags.Tracking.ActiveConfig.isLargeD0
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 isLargeD0 else "binTables_ITK_RUN4.txt")
28
29 acc.setPrivateTools(CompFactory.GbtsFtfActsSeedingTool(name, **kwargs))
30
31 return acc
32
33
34# ACTS tools

◆ ActsLargeRadiusStripSeedingToolCfg()

ComponentAccumulator ActsSeedingConfig.ActsLargeRadiusStripSeedingToolCfg ( flags,
str name = "ActsLargeRadiusStripSeedingTool",
** kwargs )

Definition at line 170 of file ActsSeedingConfig.py.

172 **kwargs) -> ComponentAccumulator:
173
174 kwargs.setdefault("interactionPointCut", True)
175 kwargs.setdefault("impactMax", 300. * ActsUnits.mm)
176 kwargs.setdefault("collisionRegionMin", -500. * ActsUnits.mm)
177 kwargs.setdefault("collisionRegionMax", 500. * ActsUnits.mm)
178 kwargs.setdefault("deltaRMiddleMaxSPRange", 75 * ActsUnits.mm)
179 kwargs.setdefault("deltaRMinTopSP", 50. * ActsUnits.mm)
180 kwargs.setdefault("deltaRMaxTopSP", 250. * ActsUnits.mm)
181 kwargs.setdefault("deltaRMinBottomSP", 50. * ActsUnits.mm)
182 kwargs.setdefault("deltaRMaxBottomSP", 250. * ActsUnits.mm)
183 kwargs.setdefault("deltaZMax", 850. * ActsUnits.mm)
184 kwargs.setdefault("cotThetaMax", 5.0)
185 kwargs.setdefault("maxSeedsPerSpM", 1)
186 kwargs.setdefault("maxStripDeltaCotTheta", 0.3)
187 kwargs.setdefault("absDeltaEtaWeightFactor", 10.)
188 kwargs.setdefault("absDeltaEtaMinImpact", 2.)
189 kwargs.setdefault("zBinEdges", [-3000., -2500, -1400., -910., -500., -250., 250., 500., 910., 1400., 2500, 3000.])
190 kwargs.setdefault("zBinsCustomLooping" , [2, 10, 3, 9, 6, 4, 8, 5, 7])
191 kwargs.setdefault("useVariableMiddleSPRange", False)
192 kwargs.setdefault("zBinNeighborsTop", [
193 [0, 0], # -3000, -2500
194 [-1, 0], # -2500, -1400
195 [-1, 0], # -1400, -910
196 [-1, 0], # -910, -500
197 [-1, 0], # -500, -250
198 [-1, 1], # -250, 250
199 [0, 1], # 250, 500
200 [0, 1], # 500, 910
201 [0, 1], # 910, 1400
202 [0, 1], # 1400, 2500
203 [0, 0] # 2500, 3000
204 ])
205 kwargs.setdefault("zBinNeighborsBottom", [
206 [0, 0], # -3000, -2500
207 [0, 1], # -2500, -1400
208 [0, 1], # -1400, -910
209 [0, 1], # -910, -500
210 [0, 1], # -500, -250
211 [0, 0], # -250, 250
212 [-1, 0], # 250, 500
213 [-1, 0], # 500, 910
214 [-1, 0], # 910, 1400
215 [-1, 0], # 1400, 2500
216 [0, 0] # 2500, 3000
217 ])
218 kwargs.setdefault("rRangeMiddleSP", [
219 [0.0, 0.0], # -3000, -2500
220 [400.0, 850.0], # -2500, -1400
221 [500.0, 800.0], # -1400, -910
222 [500.0, 800.0], # -910, -500
223 [500.0, 800.0], # -500, -250
224 [500.0, 800.0], # -250, 250
225 [500.0, 800.0], # 250, 500
226 [500.0, 800.0], # 500, 910
227 [500.0, 800.0], # 910, 1400
228 [400.0, 850.0], # 1400, 2500
229 [0.0, 0.0] # 2500, 3000
230 ])
231
232 kwargs.setdefault("seedConfirmation", True)
233 kwargs.setdefault("seedConfirmationInFilter", True)
234 kwargs.setdefault("zOriginWeightFactor", 1.)
235 kwargs.setdefault("maxSeedsPerSpMConf", 1)
236 kwargs.setdefault("maxQualitySeedsPerSpMConf", 1)
237 kwargs.setdefault("seedConfCentralZMin", -1400. * ActsUnits.mm)
238 kwargs.setdefault("seedConfCentralZMax", 1400. * ActsUnits.mm)
239 kwargs.setdefault("seedConfCentralRMax", 140. * ActsUnits.mm)
240 kwargs.setdefault("seedConfCentralNTopLargeR", 1)
241 kwargs.setdefault("seedConfCentralNTopSmallR", 0)
242 kwargs.setdefault("seedConfCentralMinBottomRadius", 0. * ActsUnits.mm)
243 kwargs.setdefault("seedConfCentralMaxZOrigin", 1500. * ActsUnits.mm)
244 kwargs.setdefault("seedConfCentralMinImpact", 200. * ActsUnits.mm)
245 kwargs.setdefault("seedConfForwardZMin", -3000. * ActsUnits.mm)
246 kwargs.setdefault("seedConfForwardZMax", 3000. * ActsUnits.mm)
247 kwargs.setdefault("seedConfForwardRMax", 140. * ActsUnits.mm)
248 kwargs.setdefault("seedConfForwardNTopLargeR", 1)
249 kwargs.setdefault("seedConfForwardNTopSmallR", 0)
250 kwargs.setdefault("seedConfForwardMinBottomRadius", 350. * ActsUnits.mm)
251 kwargs.setdefault("seedConfForwardMaxZOrigin", 1500. * ActsUnits.mm)
252 kwargs.setdefault("seedConfForwardMinImpact", 200. * ActsUnits.mm)
253
254 return ActsStripSeedingToolCfg(flags, name, **kwargs)
255

◆ ActsMainSeedingCfg()

ComponentAccumulator ActsSeedingConfig.ActsMainSeedingCfg ( flags,
** kwargs )

Definition at line 382 of file ActsSeedingConfig.py.

383 **kwargs) -> ComponentAccumulator:
384 acc = ComponentAccumulator()
385
386 kwargs.setdefault('processPixels', flags.Detector.EnableITkPixel)
387 kwargs.setdefault('processStrips', flags.Detector.EnableITkStrip)
388 kwargs.setdefault('estimateParameters', flags.Acts.Seeds.doAnalysis)
389
390 if kwargs['processPixels']:
391 acc.merge(ActsPixelSeedingAlgCfg(flags, **extractChildKwargs(prefix='PixelSeedingAlg.', **kwargs)))
392 if kwargs['processStrips']:
393 acc.merge(ActsStripSeedingAlgCfg(flags, **extractChildKwargs(prefix='StripSeedingAlg.', **kwargs)))
394
395
396 if kwargs['estimateParameters']:
397 if kwargs['processPixels']:
398 from ActsConfig.ActsAnalysisConfig import ActsPixelSeedsToTrackParamsAlgCfg
399 acc.merge(ActsPixelSeedsToTrackParamsAlgCfg(flags,
400 **extractChildKwargs(prefix='PixelSeedsToTrackParamsAlg.', **kwargs)))
401
402 if kwargs['processStrips']:
403 from ActsConfig.ActsAnalysisConfig import ActsStripSeedsToTrackParamsAlgCfg
404 acc.merge(ActsStripSeedsToTrackParamsAlgCfg(flags,
405 **extractChildKwargs(prefix='StripSeedsToTrackParamsAlg.', **kwargs)))
406
407 if flags.Acts.Seeds.doAnalysis:
408 if kwargs['processPixels']:
409 from ActsConfig.ActsAnalysisConfig import ActsPixelSeedAnalysisAlgCfg, ActsPixelEstimatedTrackParamsAnalysisAlgCfg
410 acc.merge(ActsPixelSeedAnalysisAlgCfg(flags, **extractChildKwargs(prefix='PixelSeedAnalysisAlg.', **kwargs)))
411 acc.merge(ActsPixelEstimatedTrackParamsAnalysisAlgCfg(flags, **extractChildKwargs(prefix='PixelEstimatedTrackParamsAnalysisAlg.', **kwargs)))
412
413 if kwargs['processStrips']:
414 from ActsConfig.ActsAnalysisConfig import ActsStripSeedAnalysisAlgCfg, ActsStripEstimatedTrackParamsAnalysisAlgCfg
415 acc.merge(ActsStripSeedAnalysisAlgCfg(flags, **extractChildKwargs(prefix='StripSeedAnalysisAlg.', **kwargs)))
416 acc.merge(ActsStripEstimatedTrackParamsAnalysisAlgCfg(flags, **extractChildKwargs(prefix='StripEstimatedTrackParamsAnalysisAlg.', **kwargs)))
417
418 return acc
419

◆ ActsPixelGbtsSeedingToolCfg()

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

Definition at line 256 of file ActsSeedingConfig.py.

258 **kwargs) -> ComponentAccumulator:
259 acc = ComponentAccumulator()
260 if "layerNumberTool" not in kwargs:
261 from TrigFastTrackFinder.TrigFastTrackFinderConfig import ITkTrigL2LayerNumberToolCfg
262 ntargs = {"UseNewLayerScheme": True}
263 kwargs.setdefault(
264 "layerNumberTool",
265 acc.popToolsAndMerge(ITkTrigL2LayerNumberToolCfg(flags, **ntargs))
266 )
267
268 kwargs.setdefault("connectorInputFile" , find_datafile("binTables_ITK_RUN4.txt"))
269 kwargs.setdefault("lutInputFile" , find_datafile("gbts_ml_pixel_barrel_loose.lut"))
270 kwargs.setdefault("minPt" , flags.Tracking.ActiveConfig.minPTSeed / GaudiUnits.GeV * ActsUnits.GeV)
271
272 acc.setPrivateTools(CompFactory.ActsTrk.GbtsSeedingTool(name = name, **kwargs))
273 return acc
274

◆ ActsPixelSeedingAlgCfg()

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

Definition at line 304 of file ActsSeedingConfig.py.

306 **kwargs) -> ComponentAccumulator:
307 acc = ComponentAccumulator()
308
309 # Beam Spot Cond is a requirement
310 from BeamSpotConditions.BeamSpotConditionsConfig import BeamSpotCondAlgCfg
311 acc.merge(BeamSpotCondAlgCfg(flags))
312
313 from MagFieldServices.MagFieldServicesConfig import AtlasFieldCacheCondAlgCfg
314 acc.merge(AtlasFieldCacheCondAlgCfg(flags))
315
316 from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
317 acc.merge(ITkPixelReadoutGeometryCfg(flags))
318
319 from InDetConfig.ITkActsHelpers import isFastPrimaryPass
320 useFastTracking = kwargs.get("useFastTracking", isFastPrimaryPass(flags))
321
322 if "SeedTool" not in kwargs:
323 if flags.Acts.SeedingStrategy is SeedingStrategy.Gbts:
324 kwargs.setdefault('SeedTool', acc.popToolsAndMerge(ActsPixelGbtsSeedingToolCfg(flags)))
325 elif flags.Acts.SeedingStrategy is SeedingStrategy.GbtsFtf:
326 kwargs.setdefault('SeedTool', acc.popToolsAndMerge(ActsGbtsFtfSeedingTrigToolCfg(flags)))
327 else:
328 if useFastTracking:
329 kwargs.setdefault('SeedTool', acc.popToolsAndMerge(ActsFastPixelSeedingToolCfg(flags)))
330 else:
331 kwargs.setdefault('SeedTool', acc.popToolsAndMerge(ActsPixelSeedingToolCfg(flags)))
332
333 kwargs.setdefault("useFastTracking", useFastTracking)
334 kwargs.setdefault('InputSpacePoints', ['ITkPixelSpacePoints_Cached'] if flags.Acts.useCache else ['ITkPixelSpacePoints'])
335 kwargs.setdefault('OutputSeeds', 'ActsPixelSeeds')
336 kwargs.setdefault('UsePixel', True)
337
338 if flags.Acts.doMonitoring and 'MonTool' not in kwargs:
339 from ActsConfig.ActsMonitoringConfig import ActsITkPixelSeedingMonitoringToolCfg
340 kwargs.setdefault('MonTool', acc.popToolsAndMerge(ActsITkPixelSeedingMonitoringToolCfg(flags)))
341
342 acc.addEventAlgo(CompFactory.ActsTrk.GenericSeedingAlg(name, **kwargs))
343 return acc
344
345

◆ 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 acc.setPrivateTools(CompFactory.ActsTrk.GridTripletSeedingTool(name, **kwargs))
64 return acc
65

◆ ActsSeedingCfg()

ComponentAccumulator ActsSeedingConfig.ActsSeedingCfg ( flags,
** kwargs )

Definition at line 420 of file ActsSeedingConfig.py.

420def ActsSeedingCfg(flags,**kwargs) -> ComponentAccumulator:
421 acc = ComponentAccumulator()
422 processPixels = flags.Detector.EnableITkPixel
423 processStrips = flags.Detector.EnableITkStrip
424
425 # For conversion pass we do not process pixels
426 from InDetConfig.ITkActsHelpers import isFastPrimaryPass
427 if flags.Tracking.ActiveConfig.extension == "ActsConversion" or flags.Tracking.ActiveConfig.isLargeD0:
428 processPixels = False
429 # For main pass disable strips if fast tracking configuration
430 elif isFastPrimaryPass(flags):
431 processStrips = False
432
433 kwargs.setdefault('processPixels', processPixels)
434 kwargs.setdefault('processStrips', processStrips)
435 kwargs.setdefault('estimateParameters', flags.Tracking.ActiveConfig.storeTrackSeeds or flags.Acts.Seeds.doAnalysis)
436
437 # TO-DO: refactor this seeding tool configuration
438 if flags.Tracking.ActiveConfig.extension == "ActsHeavyIon" and processPixels:
439 kwargs.setdefault('PixelSeedingAlg.SeedTool', acc.popToolsAndMerge(ActsPixelSeedingToolCfg(flags,
440 name=f'{flags.Tracking.ActiveConfig.extension}PixelSeedingTool')))
441
442 if processStrips and flags.Acts.SeedingStrategy is SeedingStrategy.Gbts and flags.Tracking.ActiveConfig.isLargeD0:
443 kwargs.setdefault('StripSeedingAlg.SeedTool', acc.popToolsAndMerge(ActsStripGbtsSeedingToolCfg(flags,
444 name=f'{flags.Tracking.ActiveConfig.extension}StripSeedingTool')))
445 elif processStrips and flags.Acts.SeedingStrategy is SeedingStrategy.GridTriplet:
446 if flags.Tracking.ActiveConfig.isLargeD0:
447 kwargs.setdefault('StripSeedingAlg.SeedTool', acc.popToolsAndMerge(ActsLargeRadiusStripSeedingToolCfg(flags,
448 name=f'{flags.Tracking.ActiveConfig.extension}StripSeedingTool')))
449 else:
450 kwargs.setdefault('StripSeedingAlg.SeedTool', acc.popToolsAndMerge(ActsStripSeedingToolCfg(flags,
451 name=f'{flags.Tracking.ActiveConfig.extension}StripSeedingTool')))
452
453 if processPixels:
454 # Seeding algo
455 kwargs.setdefault('PixelSeedingAlg.name', f'{flags.Tracking.ActiveConfig.extension}PixelSeedingAlg')
456 kwargs.setdefault('PixelSeedingAlg.useFastTracking', isFastPrimaryPass(flags))
457 kwargs.setdefault('PixelSeedingAlg.OutputSeeds', f'{flags.Tracking.ActiveConfig.extension}PixelSeeds')
458
459 pixelSpacePoints = ['ITkPixelSpacePoints_Cached'] if flags.Acts.useCache else ['ITkPixelSpacePoints']
460 if flags.Tracking.ActiveConfig.isSecondaryPass:
461 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']
462 kwargs.setdefault('PixelSeedingAlg.InputSpacePoints', pixelSpacePoints)
463
464 # Setup the seed to track parameters algorithms either if we persistify them or we want to run the ActsMonitoring
465 if flags.Tracking.ActiveConfig.storeTrackSeeds or flags.Acts.Seeds.doAnalysis:
466 kwargs.setdefault('PixelSeedsToTrackParamsAlg.name', f'{flags.Tracking.ActiveConfig.extension}PixelSeedsToTrackParamsAlg')
467 kwargs.setdefault('PixelSeedsToTrackParamsAlg.extension', flags.Tracking.ActiveConfig.extension)
468 kwargs.setdefault('PixelSeedsToTrackParamsAlg.InputSeedContainerKey', kwargs['PixelSeedingAlg.OutputSeeds'])
469 kwargs.setdefault('PixelSeedsToTrackParamsAlg.OutputTrackParamsCollectionKey', f'{flags.Tracking.ActiveConfig.extension}PixelEstimatedTrackParams')
470
471 # Analysis algo(s)
472 if flags.Acts.Seeds.doAnalysis:
473 kwargs.setdefault('PixelSeedAnalysisAlg.name', f'{flags.Tracking.ActiveConfig.extension}PixelSeedAnalysisAlg')
474 kwargs.setdefault('PixelSeedAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
475 kwargs.setdefault('PixelSeedAnalysisAlg.InputSeedCollection', kwargs['PixelSeedingAlg.OutputSeeds'])
476
477 kwargs.setdefault('PixelEstimatedTrackParamsAnalysisAlg.name', f'{flags.Tracking.ActiveConfig.extension}PixelEstimatedTrackParamsAnalysisAlg')
478 kwargs.setdefault('PixelEstimatedTrackParamsAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
479 kwargs.setdefault('PixelEstimatedTrackParamsAnalysisAlg.InputTrackParamsCollection', kwargs['PixelSeedsToTrackParamsAlg.OutputTrackParamsCollectionKey'])
480
481 if processStrips:
482 # Seeding algo
483 kwargs.setdefault('StripSeedingAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripSeedingAlg')
484 kwargs.setdefault('StripSeedingAlg.OutputSeeds', f'{flags.Tracking.ActiveConfig.extension}StripSeeds')
485 # Conversion pass does not use overlap space points
486 # Space Point naming is not yet fully connected to tracking passes - this will change
487 if flags.Tracking.ActiveConfig.extension == 'ActsConversion':
488 kwargs.setdefault('StripSeedingAlg.InputSpacePoints', ['ITkConversionStripSpacePoints_Cached'] if flags.Acts.useCache else ['ITkConversionStripSpacePoints'])
489 elif flags.Tracking.ActiveConfig.isLargeD0 and flags.Tracking.ActiveConfig.isSecondaryPass:
490 ext_suffix = flags.Tracking.ActiveConfig.extension.replace("Acts", "")
491 kwargs.setdefault('StripSeedingAlg.InputSpacePoints', [f'ITk{ext_suffix}StripSpacePoints_Cached',
492 f'ITk{ext_suffix}StripOverlapSpacePoints_Cached'] if flags.Acts.useCache else [f'ITk{ext_suffix}StripSpacePoints',
493 f'ITk{ext_suffix}StripOverlapSpacePoints'])
494 elif flags.Tracking.ActiveConfig.extension == 'ActsLowPt':
495 kwargs.setdefault('StripSeedingAlg.InputSpacePoints', ['ITkLowPtStripSpacePoints_Cached',
496 'ITkLowPtStripOverlapSpacePoints_Cached'] if flags.Acts.useCache else ['ITkLowPtStripSpacePoints',
497 'ITkLowPtStripOverlapSpacePoints'])
498 else:
499 kwargs.setdefault('StripSeedingAlg.InputSpacePoints', ['ITkStripSpacePoints_Cached',
500 'ITkStripOverlapSpacePoints_Cached'] if flags.Acts.useCache else ['ITkStripSpacePoints',
501 'ITkStripOverlapSpacePoints'])
502
503 if flags.Tracking.ActiveConfig.storeTrackSeeds or flags.Acts.Seeds.doAnalysis:
504 kwargs.setdefault('StripSeedsToTrackParamsAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripSeedsToTrackParamsAlg')
505 kwargs.setdefault('StripSeedsToTrackParamsAlg.extension', flags.Tracking.ActiveConfig.extension)
506 kwargs.setdefault('StripSeedsToTrackParamsAlg.InputSeedContainerKey', kwargs['StripSeedingAlg.OutputSeeds'])
507 kwargs.setdefault('StripSeedsToTrackParamsAlg.OutputTrackParamsCollectionKey', f'{flags.Tracking.ActiveConfig.extension}StripEstimatedTrackParams')
508
509
510 # Analysis algo(s)
511 if flags.Acts.Seeds.doAnalysis:
512 kwargs.setdefault('StripSeedAnalysisAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripSeedAnalysisAlg')
513 kwargs.setdefault('StripSeedAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
514 kwargs.setdefault('StripSeedAnalysisAlg.InputSeedCollection', kwargs['StripSeedingAlg.OutputSeeds'])
515
516 kwargs.setdefault('StripEstimatedTrackParamsAnalysisAlg.name', f'{flags.Tracking.ActiveConfig.extension}StripEstimatedTrackParamsAnalysisAlg')
517 kwargs.setdefault('StripEstimatedTrackParamsAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
518 kwargs.setdefault('StripEstimatedTrackParamsAnalysisAlg.InputTrackParamsCollection', kwargs['StripSeedsToTrackParamsAlg.OutputTrackParamsCollectionKey'])
519
520 acc.merge(ActsMainSeedingCfg(flags, **kwargs))
521
522
523 if flags.Tracking.ActiveConfig.storeTrackSeeds:
524 acc.merge(ActsStoreTrackSeedsCfg(flags,
525 processPixels = processPixels,
526 processStrips = processStrips))
527
528 return acc
529

◆ ActsSeedToTrackCnvAlgCfg()

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

Definition at line 660 of file ActsSeedingConfig.py.

662 **kwargs: dict) -> ComponentAccumulator:
663 acc = ComponentAccumulator()
664
665 kwargs.setdefault('SeedContainerKey', [])
666 kwargs.setdefault('EstimatedTrackParametersKey', [])
667 kwargs.setdefault('ACTSTracksLocation', f'SiSPTracksSeedSegments{flags.Tracking.ActiveConfig.extension}Tracks')
668
669 if 'TrackingGeometryTool' not in kwargs:
670 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometryToolCfg
671 kwargs.setdefault('TrackingGeometryTool', acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)))
672
673 acc.addEventAlgo(CompFactory.ActsTrk.SeedToTrackCnvAlg(name, **kwargs))
674 return acc
675

◆ ActsStoreTrackSeedsCfg()

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

Definition at line 530 of file ActsSeedingConfig.py.

534 **kwargs: dict) -> ComponentAccumulator:
535
536
537 acc = ComponentAccumulator()
538
539 seedKeyPixels = f'{flags.Tracking.ActiveConfig.extension}PixelSeeds'
540 seedKeyStrips = f'{flags.Tracking.ActiveConfig.extension}StripSeeds'
541 paramsKeyPixels = f'{flags.Tracking.ActiveConfig.extension}PixelEstimatedTrackParams'
542 paramsKeyStrips = f'{flags.Tracking.ActiveConfig.extension}StripEstimatedTrackParams'
543 trackKeyPixels = f'SiSPTracksSeedSegments{flags.Tracking.ActiveConfig.extension}PixelTracks'
544 trackKeyStrips = f'SiSPTracksSeedSegments{flags.Tracking.ActiveConfig.extension}StripTracks'
545 particleKeyPixels = f'SiSPSeedSegments{flags.Tracking.ActiveConfig.extension}PixelTrackParticles'
546 particleKeyStrips = f'SiSPSeedSegments{flags.Tracking.ActiveConfig.extension}StripTrackParticles'
547
548 trackKey = f'SiSPTracksSeedSegments{flags.Tracking.ActiveConfig.extension}Tracks'
549 particleKey = f'SiSPSeedSegments{flags.Tracking.ActiveConfig.extension}TrackParticles'
550
551
552 if processPixels:
553 # Create track parameters from pixel seeds
554 from ActsConfig.ActsAnalysisConfig import ActsPixelSeedsToTrackParamsAlgCfg
555 acc.merge(ActsPixelSeedsToTrackParamsAlgCfg(flags,
556 name = f'{flags.Tracking.ActiveConfig.extension}PixelSeedsToTrackParamsAlg',
557 extension = flags.Tracking.ActiveConfig.extension,
558 InputSeedContainerKey = seedKeyPixels,
559 OutputTrackParamsCollectionKey = paramsKeyPixels))
560
561
562 # Convert pixel seed to Acts track
563 acc.merge(ActsSeedToTrackCnvAlgCfg(flags,
564 name=f"{flags.Tracking.ActiveConfig.extension}PixelSeedToTrackCnvAlg",
565 EstimatedTrackParametersKey = [paramsKeyPixels],
566 SeedContainerKey = [seedKeyPixels],
567 ACTSTracksLocation = trackKeyPixels))
568
569 # Truth
570 if flags.Tracking.doTruth:
571 from ActsConfig.ActsTruthConfig import ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg
572 acc.merge(ActsTrackToTruthAssociationAlgCfg(flags,
573 name = f"{trackKeyPixels}TrackToTruthAssociationAlg",
574 ACTSTracksLocation = trackKeyPixels,
575 AssociationMapOut = f"{trackKeyPixels}ToTruthParticleAssociation"))
576
577 acc.merge(ActsTrackFindingValidationAlgCfg(flags,
578 name = f"{trackKeyPixels}TrackFindingValidationAlg",
579 TrackToTruthAssociationMap = f"{trackKeyPixels}ToTruthParticleAssociation"))
580
581 # Track Particle creation and persistification
582 # - input track collection: trackKeyPixels
583 # - output track particle collection: particleKeyPixels
584 from InDetConfig.ITkActsParticleCreationConfig import ITkActsTrackParticleCreationCfg
585 acc.merge(ITkActsTrackParticleCreationCfg(flags,
586 TrackContainers = [trackKeyPixels],
587 TrackParticleContainer = particleKeyPixels))
588
589
590 if processStrips:
591 # Create track parameters from strip seeds
592 from ActsConfig.ActsAnalysisConfig import ActsStripSeedsToTrackParamsAlgCfg
593 acc.merge(ActsStripSeedsToTrackParamsAlgCfg(flags,
594 name = f'{flags.Tracking.ActiveConfig.extension}StripSeedsToTrackParamsAlg',
595 extension = flags.Tracking.ActiveConfig.extension,
596 InputSeedContainerKey = seedKeyStrips,
597 OutputTrackParamsCollectionKey = paramsKeyStrips))
598
599 # Convert strip seed to Acts track
600 acc.merge(ActsSeedToTrackCnvAlgCfg(flags,
601 name=f"{flags.Tracking.ActiveConfig.extension}StripSeedToTrackCnvAlg",
602 EstimatedTrackParametersKey = [paramsKeyStrips],
603 SeedContainerKey = [seedKeyStrips],
604 ACTSTracksLocation = trackKeyStrips))
605
606 # Truth
607 if flags.Tracking.doTruth:
608 from ActsConfig.ActsTruthConfig import ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg
609 acc.merge(ActsTrackToTruthAssociationAlgCfg(flags,
610 name=f"{trackKeyStrips}TrackToTruthAssociationAlg",
611 ACTSTracksLocation = trackKeyStrips,
612 AssociationMapOut = f"{trackKeyStrips}ToTruthParticleAssociation"))
613
614 acc.merge(ActsTrackFindingValidationAlgCfg(flags,
615 name = f"{trackKeyStrips}TrackFindingValidationAlg",
616 TrackToTruthAssociationMap = f"{trackKeyStrips}ToTruthParticleAssociation"))
617
618 # Track Particle creation and persistification
619 # - input track collection: trackKeyStrips
620 # - output track particle collection: particleKeyStrips
621 from InDetConfig.ITkActsParticleCreationConfig import ITkActsTrackParticleCreationCfg
622 acc.merge(ITkActsTrackParticleCreationCfg(flags,
623 TrackContainers = [trackKeyStrips],
624 TrackParticleContainer = particleKeyStrips))
625
626 # If both pixel and strips are processed, also make track particles from the sum
627 # This will provide the complete seed efficiency for ACTS
628 if processPixels and processStrips:
629 # Parameter estimation has already been performed
630 # Convert seeds to Acts tracks
631 acc.merge(ActsSeedToTrackCnvAlgCfg(flags,
632 name=f"{flags.Tracking.ActiveConfig.extension}SeedToTrackCnvAlg",
633 EstimatedTrackParametersKey = [paramsKeyPixels, paramsKeyStrips],
634 SeedContainerKey = [seedKeyPixels, seedKeyStrips],
635 ACTSTracksLocation = trackKey))
636
637 # Truth
638 if flags.Tracking.doTruth:
639 from ActsConfig.ActsTruthConfig import ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg
640 acc.merge(ActsTrackToTruthAssociationAlgCfg(flags,
641 name=f"{trackKey}TrackToTruthAssociationAlg",
642 ACTSTracksLocation = trackKey,
643 AssociationMapOut = f"{trackKey}ToTruthParticleAssociation"))
644
645 acc.merge(ActsTrackFindingValidationAlgCfg(flags,
646 name = f"{trackKey}TrackFindingValidationAlg",
647 TrackToTruthAssociationMap = f"{trackKey}ToTruthParticleAssociation"))
648
649 # Track Particle creation and persistification
650 # - input track collection: trackKey
651 # - output track particle collection: particleKey
652 from InDetConfig.ITkActsParticleCreationConfig import ITkActsTrackParticleCreationCfg
653 acc.merge(ITkActsTrackParticleCreationCfg(flags,
654 TrackContainers = [trackKey],
655 TrackParticleContainer = particleKey))
656
657 return acc
658
659

◆ ActsStripGbtsSeedingToolCfg()

ComponentAccumulator ActsSeedingConfig.ActsStripGbtsSeedingToolCfg ( flags,
str name = "ActsStripGbtsSeedingTool",
** kwargs )

Definition at line 275 of file ActsSeedingConfig.py.

277 **kwargs) -> ComponentAccumulator:
278 acc = ComponentAccumulator()
279 if "layerNumberTool" not in kwargs:
280 from TrigFastTrackFinder.TrigFastTrackFinderConfig import ITkTrigL2LayerNumberToolCfg
281 ntargs = {"UseNewLayerScheme": True}
282 kwargs.setdefault(
283 "layerNumberTool",
284 acc.popToolsAndMerge(ITkTrigL2LayerNumberToolCfg(flags, **ntargs))
285 )
286
287 kwargs.setdefault("LRTmode", True)
288 kwargs.setdefault("useML", False)
289 kwargs.setdefault("connectorInputFile", find_datafile("binTables_ITK_RUN4_LRT.txt"))
290 kwargs.setdefault("minPt", flags.Tracking.ActiveConfig.minPTSeed / GaudiUnits.GeV * ActsUnits.GeV)
291 kwargs.setdefault("d0Max", 300. * ActsUnits.mm)
292 kwargs.setdefault("filterMaxZ0", 500. * ActsUnits.mm)
293 kwargs.setdefault("cutDPhiMax", 0.07)
294 kwargs.setdefault("cutDCurvMax", 0.015)
295 kwargs.setdefault("tauRatioCut", 0.015)
296 kwargs.setdefault("minZ0", -600.0)
297 kwargs.setdefault("maxZ0", 600.0)
298 kwargs.setdefault("minDeltaPhi", 0.01)
299 kwargs.setdefault("maxOuterRadius", 1050.0)
300 acc.setPrivateTools(CompFactory.ActsTrk.GbtsSeedingTool(name=name, **kwargs))
301 return acc
302
303# ACTS algorithm using Athena objects upstream

◆ ActsStripSeedingAlgCfg()

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

Definition at line 346 of file ActsSeedingConfig.py.

348 **kwargs) -> ComponentAccumulator:
349 acc = ComponentAccumulator()
350
351 # Beam Spot Cond is a requirement
352 from BeamSpotConditions.BeamSpotConditionsConfig import BeamSpotCondAlgCfg
353 acc.merge(BeamSpotCondAlgCfg(flags))
354
355 from MagFieldServices.MagFieldServicesConfig import AtlasFieldCacheCondAlgCfg
356 acc.merge(AtlasFieldCacheCondAlgCfg(flags))
357
358 from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripReadoutGeometryCfg
359 acc.merge(ITkStripReadoutGeometryCfg(flags))
360
361 if "SeedTool" not in kwargs:
362 if flags.Tracking.ActiveConfig.isLargeD0:
363 if flags.Acts.SeedingStrategy is SeedingStrategy.Gbts:
364 kwargs.setdefault('SeedTool', acc.popToolsAndMerge(ActsStripGbtsSeedingToolCfg(flags)))
365 else:
366 kwargs.setdefault('SeedTool', acc.popToolsAndMerge(ActsLargeRadiusStripSeedingToolCfg(flags)))
367 else:
368 kwargs.setdefault('SeedTool', acc.popToolsAndMerge(ActsStripSeedingToolCfg(flags)))
369
370 kwargs.setdefault('InputSpacePoints', ['ITkStripSpacePoints_Cached', 'ITkStripOverlapSpacePoints_Cached'] if flags.Acts.useCache else ['ITkStripSpacePoints', 'ITkStripOverlapSpacePoints'])
371 kwargs.setdefault('OutputSeeds', 'ActsStripSeeds')
372 kwargs.setdefault('UsePixel', False)
373
374 if flags.Acts.doMonitoring and 'MonTool' not in kwargs:
375 from ActsConfig.ActsMonitoringConfig import ActsITkStripSeedingMonitoringToolCfg
376 kwargs.setdefault('MonTool', acc.popToolsAndMerge(ActsITkStripSeedingMonitoringToolCfg(flags)))
377
378 acc.addEventAlgo(CompFactory.ActsTrk.GenericSeedingAlg(name, **kwargs))
379 return acc
380
381

◆ ActsStripSeedingToolCfg()

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

Definition at line 126 of file ActsSeedingConfig.py.

128 **kwargs) -> ComponentAccumulator:
129 acc = ComponentAccumulator()
130
131
132 kwargs.setdefault("doSeedQualitySelection", False)
133 # For SpacePointGridConfig
134 kwargs.setdefault("gridRMax", 1000. * ActsUnits.mm)
135 kwargs.setdefault("deltaRMax", 600. * ActsUnits.mm)
136 kwargs.setdefault("impactMax", 20. * ActsUnits.mm)
137 kwargs.setdefault("minPt", flags.Tracking.ActiveConfig.minPTSeed / GaudiUnits.GeV * ActsUnits.GeV)
138 # For SeedfinderConfig
139 kwargs.setdefault("rMax", flags.Tracking.ActiveConfig.radMax)
140 kwargs.setdefault("deltaRMinTopSP", 20. * ActsUnits.mm)
141 kwargs.setdefault("deltaRMaxTopSP", 300. * ActsUnits.mm)
142 kwargs.setdefault("deltaRMinBottomSP", 20. * ActsUnits.mm)
143 kwargs.setdefault("deltaRMaxBottomSP", 300. * ActsUnits.mm)
144 kwargs.setdefault("deltaZMax", 900. * ActsUnits.mm)
145 kwargs.setdefault("interactionPointCut", False)
146 kwargs.setdefault("zBinsCustomLooping", [7, 8, 6, 9, 5, 10, 4, 11, 3, 12, 2])
147 kwargs.setdefault("deltaRMiddleMinSPRange", 30 * ActsUnits.mm)
148 kwargs.setdefault("deltaRMiddleMaxSPRange", 150 * ActsUnits.mm)
149 kwargs.setdefault("useDetailedDoubleMeasurementInfo", True)
150 kwargs.setdefault("maxPtScattering", float("inf"))
151 # For SeedFilterConfig
152 kwargs.setdefault("useDeltaRorTopRadius", False)
153 kwargs.setdefault("seedConfirmationInFilter", False)
154 kwargs.setdefault("impactWeightFactor", 1.)
155 kwargs.setdefault("compatSeedLimit", 4)
156 kwargs.setdefault("numSeedIncrement", 1.)
157 kwargs.setdefault("seedWeightIncrement", 10100.)
158 kwargs.setdefault("maxSeedsPerSpMConf", 100)
159 kwargs.setdefault("maxQualitySeedsPerSpMConf", 100)
160 # For seeding algorithm
161 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)])
162 # Any other
163 kwargs.setdefault("rBinEdges", [0, kwargs['rMax']])
164 kwargs.setdefault("collisionRegionMin", -200. * ActsUnits.mm)
165 kwargs.setdefault("collisionRegionMax", 200. * ActsUnits.mm)
166
167 acc.setPrivateTools(CompFactory.ActsTrk.GridTripletSeedingTool(name, **kwargs))
168 return acc
169