ATLAS Offline Software
Loading...
Searching...
No Matches
ActsGPUPatternRecognitionConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5from AthenaCommon.Utils.unixtools import find_datafile
6
7from AthDeviceComps.AthDeviceCompsConfig import MemoryResourcesToolCfg, CopyToolCfg
8from AthDeviceComps.DeviceConfigFlags import DeviceBackend
9
10# ============================================================
11# CUDA Tool configurations
12# ============================================================
13
15 name="CUDASPFormationTool",
16 **kwargs) -> ComponentAccumulator:
17 acc = ComponentAccumulator()
18
19 from AthCUDAServices.AthCUDAServicesConfig import StreamToolCfg
20
21 kwargs.setdefault("MemoryResourcesTool", acc.popToolsAndMerge(MemoryResourcesToolCfg(flags)))
22 kwargs.setdefault("CopyProviderTool", acc.popToolsAndMerge(CopyToolCfg(flags)))
23 kwargs.setdefault("StreamTool", acc.popToolsAndMerge(StreamToolCfg(flags)))
24
25 acc.setPrivateTools(
26 CompFactory.ActsTrk.CUDASeedingAlgProviderTool(name, **kwargs))
27 return acc
28
30 name="CUDATrkParamTool",
31 **kwargs) -> ComponentAccumulator:
32 acc = ComponentAccumulator()
33
34 from AthCUDAServices.AthCUDAServicesConfig import StreamToolCfg
35
36 kwargs.setdefault("MemoryResourcesTool", acc.popToolsAndMerge(MemoryResourcesToolCfg(flags)))
37 kwargs.setdefault("CopyProviderTool", acc.popToolsAndMerge(CopyToolCfg(flags)))
38 kwargs.setdefault("StreamTool", acc.popToolsAndMerge(StreamToolCfg(flags)))
39
40 acc.setPrivateTools(
41 CompFactory.ActsTrk.CUDATrkParamAlgProviderTool(name, **kwargs))
42 return acc
43
45 name="CUDATrackFindingTool",
46 **kwargs) -> ComponentAccumulator:
47 acc = ComponentAccumulator()
48
49 from AthCUDAServices.AthCUDAServicesConfig import StreamToolCfg
50
51 kwargs.setdefault("MemoryResourcesTool", acc.popToolsAndMerge(MemoryResourcesToolCfg(flags)))
52 kwargs.setdefault("CopyProviderTool", acc.popToolsAndMerge(CopyToolCfg(flags)))
53 kwargs.setdefault("StreamTool", acc.popToolsAndMerge(StreamToolCfg(flags)))
54
55 acc.setPrivateTools(
56 CompFactory.ActsTrk.CUDATrackFindingAlgProviderTool(name, **kwargs))
57 return acc
58
59# ============================================================
60# Tool configurations
61# ============================================================
62
64 name="DeviceSeedingProviderTool",
65 **kwargs) -> ComponentAccumulator:
66 acc = ComponentAccumulator()
67
68 if flags.Device.Backend is not DeviceBackend.CUDA:
69 raise ValueError(f"Unsupported device backend: {flags.Acts.DeviceBackend}")
70
71 else:
72 acc.setPrivateTools(acc.popToolsAndMerge(CUDASeedingToolCfg(flags)))
73 return acc
74
76 name="DeviceTrkParamAlgProviderTool",
77 **kwargs) -> ComponentAccumulator:
78 acc = ComponentAccumulator()
79
80 if flags.Device.Backend is not DeviceBackend.CUDA:
81 raise ValueError(f"Unsupported device backend: {flags.Acts.DeviceBackend}")
82
83 else:
84 acc.setPrivateTools(acc.popToolsAndMerge(CUDATrkParamToolCfg(flags)))
85 return acc
86
88 name="DeviceTrackFindingAlgProviderTool",
89 **kwargs) -> ComponentAccumulator:
90 acc = ComponentAccumulator()
91
92 if flags.Device.Backend is not DeviceBackend.CUDA:
93 raise ValueError(f"Unsupported device backend: {flags.Acts.DeviceBackend}")
94
95 else:
96 acc.setPrivateTools(acc.popToolsAndMerge(CUDATrackFindingToolCfg(flags)))
97 return acc
98
99# ============================================================
100# Algorithm configurations
101# ============================================================
102
104 name="DeviceGBTSSeedingAlg",
105 previousExtension: str = None,
106 **kwargs) -> ComponentAccumulator:
107
108 assert previousExtension is None or isinstance(previousExtension, str)
109 acc = ComponentAccumulator()
110
111 kwargs.setdefault("InputTracccPixelSpacepoints", "TracccPixelSpacepoints")
112 kwargs.setdefault("InputTracccMeasurements", "TracccMeasurements")
113 kwargs.setdefault("OutputTracccPixelSeeds", "TracccPixelSeeds")
114
115 kwargs.setdefault("connectorInputFile" , find_datafile(flags.Acts.Gbts.connectionTable))
116
117 from ActsConfig.ActsSeedingConfig import ActsGbtsLayerToolCfg
118 kwargs.setdefault("layerNumberTool", acc.popToolsAndMerge(ActsGbtsLayerToolCfg(flags)))
119
120 kwargs.setdefault("SeedingAlgProviderTool", acc.popToolsAndMerge(DeviceSeedingProviderToolCfg(flags)))
121
122 acc.addEventAlgo(
123 CompFactory.ActsTrk.DeviceGBTSSeedingAlg(name, **kwargs))
124 return acc
125
126
128 name="DeviceTripletSeedingAlg",
129 previousExtension: str = None,
130 **kwargs) -> ComponentAccumulator:
131
132 assert previousExtension is None or isinstance(previousExtension, str)
133 acc = ComponentAccumulator()
134
135 kwargs.setdefault("InputTracccPixelSpacepoints", "TracccPixelSpacepoints")
136 kwargs.setdefault("OutputTracccPixelSeeds", "TracccPixelSeeds")
137
138 from BeamSpotConditions.BeamSpotConditionsConfig import BeamSpotCondAlgCfg
139 acc.merge(BeamSpotCondAlgCfg(flags))
140 from MagFieldServices.MagFieldServicesConfig import AtlasFieldCacheCondAlgCfg
141 acc.merge(AtlasFieldCacheCondAlgCfg(flags))
142
143 kwargs.setdefault("SeedingAlgProviderTool", acc.popToolsAndMerge(DeviceSeedingProviderToolCfg(flags)))
144
145 acc.addEventAlgo(
146 CompFactory.ActsTrk.DeviceTripletSeedingAlg(name, **kwargs))
147 return acc
148
150 name="DeviceLargeRadiusStripTripletSeedingAlg",
151 **kwargs) -> ComponentAccumulator:
152 # Cuts following ActsLargeRadiusStripSeedingToolCfg, restricted to what the
153 # traccc triplet seeder supports
154 kwargs.setdefault("InputTracccPixelSpacepoints", "TracccStripSpacepoints")
155 kwargs.setdefault("OutputTracccPixelSeeds", "TracccStripSeeds")
156 # Seed finder
157 kwargs.setdefault("zMin", -3000.)
158 kwargs.setdefault("zMax", 3000.)
159 kwargs.setdefault("rMin", 350.)
160 kwargs.setdefault("rMax", flags.Tracking.ActiveConfig.radMax)
161 kwargs.setdefault("collisionRegionMin", -flags.Tracking.ActiveConfig.maxZImpactSeed)
162 kwargs.setdefault("collisionRegionMax", flags.Tracking.ActiveConfig.maxZImpactSeed)
163 kwargs.setdefault("minPt", flags.Tracking.ActiveConfig.minPTSeed)
164 kwargs.setdefault("impactMax", flags.Tracking.ActiveConfig.maxPrimaryImpactSeed)
165 kwargs.setdefault("cotThetaMax", 5.0)
166 kwargs.setdefault("deltaRMin", 50.)
167 kwargs.setdefault("deltaRMax", 250.)
168 kwargs.setdefault("gridDeltaRMax", 400.)
169 kwargs.setdefault("deltaZMax", 850.)
170 kwargs.setdefault("sigmaScattering", 2.)
171 kwargs.setdefault("maxPtScattering", 1.e9)
172 kwargs.setdefault("radLengthPerSeed", 0.098045)
173 kwargs.setdefault("maxSeedsPerSpM", 1)
174 kwargs.setdefault("phiBinDeflectionCoverage", 3)
175 # Seed filter
176 kwargs.setdefault("deltaInvHelixDiameter", 0.00003)
177 kwargs.setdefault("impactWeightFactor", 1.)
178 kwargs.setdefault("compatSeedWeight", 100.)
179 kwargs.setdefault("filterDeltaRMin", 20.)
180 kwargs.setdefault("compatSeedLimit", 4)
181 # Disable the radius based weights and cuts of the pixel seeding
182 kwargs.setdefault("goodSpBMinRadius", 1.e9)
183 kwargs.setdefault("goodSpTMaxRadius", -1.)
184 kwargs.setdefault("seedMinWeight", -1.e9)
185 kwargs.setdefault("spBMinRadius", 0.)
186 return DeviceTripletSeedingAlgCfg(flags, name, **kwargs)
187
189 name="DeviceTrkParamEstimationAlg",
190 previousExtension: str = None,
191 **kwargs) -> ComponentAccumulator:
192
193 assert previousExtension is None or isinstance(previousExtension, str)
194 acc = ComponentAccumulator()
195
196 kwargs.setdefault("InputTracccSpacepoints", "TracccPixelSpacepoints")
197 kwargs.setdefault("InputTracccSeeds", "TracccPixelSeeds")
198 kwargs.setdefault("InputTracccMeasurements", "TracccMeasurements")
199 kwargs.setdefault("InputTracccMagField","TracccDeviceMagField")
200 kwargs.setdefault("OutputTracccTrackParameters", "TracccTrkParam")
201
202 kwargs.setdefault("TrkParamAlgProviderTool", acc.popToolsAndMerge(DeviceTrkParamProviderToolCfg(flags)))
203
204 acc.addEventAlgo(
205 CompFactory.ActsTrk.DeviceTrkParamEstimationAlg(name, **kwargs))
206 return acc
207
209 name="DeviceTrackFindingAlg",
210 previousExtension: str = None,
211 **kwargs) -> ComponentAccumulator:
212
213 assert previousExtension is None or isinstance(previousExtension, str)
214 acc = ComponentAccumulator()
215
216 kwargs.setdefault("InputTracccMeasurements", "TracccMeasurements")
217 kwargs.setdefault("InputTracccTrackParameters", "TracccTrkParam")
218 kwargs.setdefault("InputTracccMagField","TracccDeviceMagField")
219 kwargs.setdefault("InputTracccDetectorGeometry","TracccDeviceGeometry")
220 kwargs.setdefault("OutputTracccTracks", "TracccTracks")
221
222 kwargs.setdefault("TrackFindingAlgProviderTool", acc.popToolsAndMerge(DeviceTrackFindingToolCfg(flags)))
223
224 acc.addEventAlgo(
225 CompFactory.ActsTrk.DeviceTrackFindingAlg(name, **kwargs))
226 return acc
227
229 name="DeviceLargeRadiusTrackFindingAlg",
230 **kwargs) -> ComponentAccumulator:
231 # Cuts following ActsTrackFindingToolCfg for the large radius pass,
232 # restricted to what the traccc track finding supports
233 from AthenaCommon.SystemOfUnits import MeV
234 kwargs.setdefault("chi2Max", flags.Tracking.ActiveConfig.Xi2max[0])
235 kwargs.setdefault("minTrackCandidatesPerTrack", flags.Tracking.ActiveConfig.minClusters[0])
236 kwargs.setdefault("maxNumSkippingPerCand", flags.Tracking.ActiveConfig.maxHoles[0])
237 kwargs.setdefault("maxNumConsecutiveSkipped", flags.Tracking.ActiveConfig.maxHoles[0])
238 kwargs.setdefault("minPt", flags.Tracking.ActiveConfig.minPT[0] / MeV)
239 return DeviceTrackFindingAlgCfg(flags, name, **kwargs)
ComponentAccumulator DeviceGBTSSeedingAlgCfg(flags, name="DeviceGBTSSeedingAlg", str previousExtension=None, **kwargs)
ComponentAccumulator DeviceTrkParamEstimationAlgCfg(flags, name="DeviceTrkParamEstimationAlg", str previousExtension=None, **kwargs)
ComponentAccumulator DeviceTrackFindingAlgCfg(flags, name="DeviceTrackFindingAlg", str previousExtension=None, **kwargs)
ComponentAccumulator CUDATrkParamToolCfg(flags, name="CUDATrkParamTool", **kwargs)
ComponentAccumulator CUDASeedingToolCfg(flags, name="CUDASPFormationTool", **kwargs)
ComponentAccumulator DeviceSeedingProviderToolCfg(flags, name="DeviceSeedingProviderTool", **kwargs)
ComponentAccumulator DeviceTrkParamProviderToolCfg(flags, name="DeviceTrkParamAlgProviderTool", **kwargs)
ComponentAccumulator DeviceLargeRadiusStripTripletSeedingAlgCfg(flags, name="DeviceLargeRadiusStripTripletSeedingAlg", **kwargs)
ComponentAccumulator CUDATrackFindingToolCfg(flags, name="CUDATrackFindingTool", **kwargs)
ComponentAccumulator DeviceTripletSeedingAlgCfg(flags, name="DeviceTripletSeedingAlg", str previousExtension=None, **kwargs)
ComponentAccumulator DeviceLargeRadiusTrackFindingAlgCfg(flags, name="DeviceLargeRadiusTrackFindingAlg", **kwargs)
ComponentAccumulator DeviceTrackFindingToolCfg(flags, name="DeviceTrackFindingAlgProviderTool", **kwargs)