ATLAS Offline Software
Loading...
Searching...
No Matches
ActsTrackFindingInDetConfig.py
Go to the documentation of this file.
2# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
4from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5from AthenaConfiguration.ComponentFactory import CompFactory
6from ActsConfig.ActsConfigFlags import SeedingStrategy
7import AthenaCommon.SystemOfUnits as Units
8from ActsInterop import UnitConstants
9
10# Tools
11
12def isdet(flags,
13 *,
14 pixel: list = None,
15 strip: list = None,
16 noStrip: bool = False) -> list:
17 keys = []
18 if flags.Detector.EnablePixel and pixel is not None:
19 keys += pixel
20 if flags.Detector.EnableSCT and strip is not None and not noStrip:
21 keys += strip
22
23 return keys
24
25def seedOrder(flags,
26 *,
27 pixel: list = None,
28 strip: list = None) -> list:
29 keys = isdet(flags, pixel=pixel, strip=strip)
30 if flags.Acts.useStripSeedsFirst:
31 keys.reverse()
32 return keys
33
35 name: str = "ActsInDetTrackStatePrinterTool",
36 **kwargs) -> ComponentAccumulator:
37 acc = ComponentAccumulator()
38
39 kwargs.setdefault("InputSpacePoints", isdet(flags, noStrip=False,
40 pixel=['PixelSpacePoints'],
41 strip=['SCT_SpacePoints', 'OverlapSpacePoints']))
42
43 if 'TrackingGeometryTool' not in kwargs:
44 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometryToolCfg
45 kwargs.setdefault(
46 "TrackingGeometryTool",
47 acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)),
48 )
49
50 acc.setPrivateTools(CompFactory.ActsTrk.TrackStatePrinterTool(name, **kwargs))
51 return acc
52
53# ACTS only algorithm
54
56 name: str = "ActsTrackFindingAlg",
57 **kwargs) -> ComponentAccumulator:
58 def tolist(c):
59 return c if isinstance(c, list) else [c]
60
61 acc = ComponentAccumulator()
62
63 from ActsConfig.ActsGeometryConfig import ActsInDetVolumeIdToDetectorCollectionMappingAlgCfg
64
65 acc.merge( ActsInDetVolumeIdToDetectorCollectionMappingAlgCfg(flags) )
66 kwargs.setdefault("ActsVolumeIdToDetectorElementCollectionMapKey", "VolumeIdToDetectorElementCollectionMap")
67
68 if flags.Detector.EnablePixel:
69 from PixelConditionsAlgorithms.PixelConditionsConfig import PixelDetectorElementStatusAlgCfg
70 acc.merge(PixelDetectorElementStatusAlgCfg(flags))
71 if flags.Detector.EnableSCT:
72 from SCT_ConditionsAlgorithms.SCT_ConditionsAlgorithmsConfig import SCT_DetectorElementStatusAlgCfg
73 acc.merge(SCT_DetectorElementStatusAlgCfg(flags))
74 kwargs.setdefault("DetElStatus", seedOrder(flags, pixel=["PixelDetectorElementStatus"], strip=["SCTDetectorElementStatus"]))
75
76 # Seed labels and collections.
77 # These 3 lists must match element for element, reversed if flags.Acts.useStripSeedsFirst is True.
78 # Maybe it is best to start with strips where the occupancy is lower.
79 kwargs.setdefault("SeedLabels", seedOrder(flags, pixel=["PPP"], strip=["SSS"]))
80 kwargs.setdefault("SeedContainerKeys", seedOrder(flags, pixel=["ActsPixelSeeds"], strip=["ActsSCT_Seeds"]))
81 kwargs.setdefault('DetectorElementsKeys', seedOrder(flags, pixel=['PixelDetectorElementCollection'], strip=['SCT_DetectorElementCollection']))
82 if flags.Acts.Tracks.doAnalysis:
83 kwargs.setdefault("SeedDestiny", [f'{seedkey}Destiny' for seedkey in kwargs["SeedContainerKeys"]])
84
85 kwargs.setdefault("UncalibratedMeasurementContainerKeys", isdet(flags, pixel=["PixelClusters"], strip=["SCT_Clusters"]))
86
87 kwargs.setdefault('ACTSTracksLocation', 'ActsTracks')
88
89 kwargs.setdefault("maxPropagationStep", 10000)
90 kwargs.setdefault("skipDuplicateSeeds", True)# flags.Acts.skipDuplicateSeeds
91 kwargs.setdefault("seedMeasOffset", 1)
92
93 # Ambi strategy 0 means do the ambiguity resolution outside the track finding.
94 kwargs.setdefault("ambiStrategy", flags.Acts.AmbiguitySolverMode.value)
95
96 if (not flags.Acts.doAmbiguityResolution) :
97 kwargs.setdefault("MaximumSharedHits", 3)
98 kwargs.setdefault("MaximumIterations", 10000)
99 kwargs.setdefault("NMeasurementsMin", 7)
100
101 kwargs.setdefault("refitSeeds", seedOrder(flags, pixel=[False], strip=[False]))
102 kwargs.setdefault("doTwoWay", flags.Acts.doTwoWayCKF)
103 kwargs.setdefault("autoReverseSearch", flags.Acts.autoReverseSearchCKF)
104 # kwargs.setdefault("autoReverseSearch", True)
105 # kwargs.setdefault("useTopSpRZboundary",[ 229.0 * UnitConstants.mm, 450.0 * UnitConstants.mm])
106
107 # forceTrackOnSeed isn't effective with secondary passes, which will have removed most/all of the seed measurements from the measurement containers.
108 kwargs.setdefault("forceTrackOnSeed", flags.Acts.forceTrackOnSeed and not flags.Tracking.ActiveConfig.isSecondaryPass)
109
110 # Borrow many settings from flags.Tracking.ActiveConfig, normally initialised in createITkTrackingPassFlags() at
111 # https://gitlab.cern.ch/atlas/athena/-/blob/main/Tracking/TrkConfig/python/TrackingPassFlags.py#L121
112
113 # bins in |eta|, used for both MeasurementSelectorConfig and TrackSelector::EtaBinnedConfig
114 kwargs.setdefault("etaBins", flags.Tracking.ActiveConfig.etaBins) #
115 # new default chi2 cuts optimise efficiency vs speed. Set same value as Athena's Xi2maxNoAdd.
116 kwargs.setdefault("chi2CutOff", tolist(flags.Tracking.ActiveConfig.Xi2max*1))
117 kwargs.setdefault("chi2OutlierCutOff", tolist(flags.Tracking.ActiveConfig.Xi2maxNoAdd*1))
118 kwargs.setdefault("checkCounts", True)
119 kwargs.setdefault("doBranchStopper", True)
120
121 kwargs.setdefault("branchStopperPtMinFactor", 0.9)
122 kwargs.setdefault("branchStopperAbsEtaMaxExtra", 0.1)
123
124 # Loosen the requirement on the minimum number of measurements on track candidate
125 # during track finding for tracks above a certain eta
126 kwargs.setdefault("branchStopperMeasCutReduce", flags.Acts.branchStopperMeasCutReduce)
127 kwargs.setdefault("branchStopperAbsEtaMeasCut", flags.Acts.branchStopperAbsEtaMeasCut)
128
129 kwargs.setdefault("numMeasurementsCutOff", [1])
130
131 # there is always an over and underflow bin so the first bin will be 0. - 0.5 the last bin 3.5 - inf.
132 # if all eta bins are >=0. the counter will be categorized by abs(eta) otherwise eta
133 kwargs.setdefault("StatisticEtaBins", [eta/10. for eta in range(5, 40, 5)]) # eta 0.0 - 4.0 in steps of 0.5
134
135 kwargs.setdefault("absEtaMax", flags.Tracking.ActiveConfig.maxEta)
136 kwargs.setdefault("ptMin", [p / Units.GeV * UnitConstants.GeV for p in tolist(flags.Tracking.ActiveConfig.minPT)])
137 # z0 cut is the same for all eta bins. I use the size of the eta bins limits minus one to find the number of bins.
138 kwargs.setdefault("z0Min", [-flags.Tracking.ActiveConfig.maxZImpact / Units.mm * UnitConstants.mm for etabin in flags.Tracking.ActiveConfig.etaBins[:-1]])
139 kwargs.setdefault("z0Max", [ flags.Tracking.ActiveConfig.maxZImpact / Units.mm * UnitConstants.mm for etabin in flags.Tracking.ActiveConfig.etaBins[:-1]])
140 kwargs.setdefault("d0Min", [-d0 / Units.mm * UnitConstants.mm for d0 in tolist(flags.Tracking.ActiveConfig.maxPrimaryImpactList)])
141 kwargs.setdefault("d0Max", [ d0 / Units.mm * UnitConstants.mm for d0 in tolist(flags.Tracking.ActiveConfig.maxPrimaryImpactList)])
142 kwargs.setdefault("minMeasurements", tolist([ 8, 8, 8]))
143 kwargs.setdefault("maxHoles", tolist(flags.Tracking.ActiveConfig.maxHoles))
144 kwargs.setdefault("minPixelHits", tolist(flags.Tracking.ActiveConfig.minPixel))
145 kwargs.setdefault("maxPixelHoles", tolist(flags.Tracking.ActiveConfig.maxPixelHoles))
146 kwargs.setdefault("maxStripHoles", tolist(flags.Tracking.ActiveConfig.maxSctHoles))
147 # The shared hits are not calculated until *after* the track selection, so maxSharedHits is not used.
148 # Even if that were not the case, we need the ambiguity solver to decide which track to drop.
149
150
151 # GBTS produces much purer seeds, so the branch stopper selections aren't needed with GBTS seeds.
152 if flags.Acts.SeedingStrategy is not SeedingStrategy.Gbts2:
153 kwargs.setdefault("ptMinMeasurements", seedOrder(flags, pixel=[3], strip=[6]))
154 kwargs.setdefault("absEtaMaxMeasurements", seedOrder(flags, pixel=[3], strip=[999999]))
155
156 if 'TrackingGeometryTool' not in kwargs:
157 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometryToolCfg
158 kwargs.setdefault(
159 "TrackingGeometryTool",
160 acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)),
161 )
162
163 if 'ATLASConverterTool' not in kwargs:
164 from ActsConfig.ActsEventCnvConfig import ActsToTrkConverterToolCfg
165 kwargs.setdefault('ATLASConverterTool', acc.popToolsAndMerge(ActsToTrkConverterToolCfg(flags)))
166
167 if 'TrackParamsEstimationTool' not in kwargs:
168 from ActsConfig.ActsTrackParamsEstimationConfig import ActsTrackParamsEstimationToolCfg
169 kwargs.setdefault('TrackParamsEstimationTool', acc.popToolsAndMerge(ActsTrackParamsEstimationToolCfg(flags)))
170
171 if 'ExtrapolationTool' not in kwargs:
172 from ActsConfig.ActsGeometryConfig import ActsExtrapolationToolCfg
173 kwargs.setdefault(
174 "ExtrapolationTool",
175 acc.popToolsAndMerge(ActsExtrapolationToolCfg(flags, MaxSteps=10000)),
176 )
177
178 if flags.Acts.doPrintTrackStates and 'TrackStatePrinter' not in kwargs:
179 kwargs.setdefault(
180 "TrackStatePrinter",
181 acc.popToolsAndMerge(ActsInDetTrackStatePrinterToolCfg(flags)),
182 )
183
184 if 'FitterTool' not in kwargs:
185 from ActsConfig.ActsTrackFittingConfig import ActsFitterCfg
186 kwargs.setdefault(
187 'FitterTool',
188 acc.popToolsAndMerge(ActsFitterCfg(flags,
189 ReverseFilteringPt=0,
190 OutlierChi2Cut=float('inf')))
191 )
192
193 # !!! Calibrator is not used for Inner Detector yet
194 if 'PixelCalibrator' not in kwargs:
195 from AthenaConfiguration.Enums import BeamType
196
197 if not (flags.Beam.Type is BeamType.Cosmics):
198 from ActsConfig.ActsConfigFlags import PixelCalibrationStrategy
199 from ActsConfig.ActsMeasurementCalibrationConfig import ActsAnalogueClusteringToolCfg
200
201 if flags.Acts.PixelCalibrationStrategy in (PixelCalibrationStrategy.AnalogueClustering,
202 PixelCalibrationStrategy.AnalogueClusteringAfterSelection) :
203
204 kwargs.setdefault(
205 'PixelCalibrator',
206 acc.popToolsAndMerge(ActsAnalogueClusteringToolCfg(flags,
207 CalibrateAfterMeasurementSelection = flags.Acts.PixelCalibrationStrategy is PixelCalibrationStrategy.AnalogueClusteringAfterSelection))
208 )
209 # !!! Calibrator is not used for Inner Detector yet
210 if 'StripCalibrator' not in kwargs:
211 from AthenaConfiguration.Enums import BeamType
212 if not (flags.Beam.Type is BeamType.Cosmics):
213 from ActsConfig.ActsMeasurementCalibrationConfig import ActsStripCalibrationToolCfg
214 from ActsConfig.ActsConfigFlags import StripCalibrationStrategy
215
216 if flags.Acts.StripCalibrationStrategy in (StripCalibrationStrategy.DigitalCalibration,
217 StripCalibrationStrategy.DigitalCalibrationAfterSelection) :
218
219 kwargs.setdefault(
220 'StripCalibrator',
221 acc.popToolsAndMerge(ActsStripCalibrationToolCfg(flags,
222 CalibrateAfterMeasurementSelection = flags.Acts.StripCalibrationStrategy is StripCalibrationStrategy.DigitalCalibrationAfterSelection))
223 )
224
225 if flags.Acts.doMonitoring and 'MonTool' not in kwargs:
226 from ActsConfig.ActsMonitoringConfig import ActsTrackFindingMonitoringToolCfg
227 kwargs.setdefault('MonTool', acc.popToolsAndMerge(
228 ActsTrackFindingMonitoringToolCfg(flags)))
229
230 acc.addEventAlgo(CompFactory.ActsTrk.TrackFindingAlg(name, **kwargs))
231 return acc
232
233
234
236 **kwargs) -> ComponentAccumulator:
237 acc = ComponentAccumulator()
238
239 # Define Uncalibrated Measurement keys
240 dataPrepPrefix = f'{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}'
241 if not flags.Tracking.ActiveConfig.isSecondaryPass:
242 dataPrepPrefix = ''
243 pixelClusters = f'{dataPrepPrefix}PixelClusters'
244 stripClusters = f'{dataPrepPrefix}SCT_Clusters'
245 # If cache is activated the keys have "_Cached" as postfix
246 if flags.Acts.useCache:
247 pixelClusters += '_Cached'
248 stripClusters += '_Cached'
249 # Consider case detectors are not active
250
251 # Understand what are the seeds we need to consider
252 pixelSeedLabels = ['PPP']
253 stripSeedLabels = ['SSS']
254
255 # Consider if pixel seeds and SCT seeds are needed, for the moment, both are kept for Inner Detector
256
257 # Now set the seed and estimated parameters keys accordingly
258 pixelSeedKeys = [f'{flags.Tracking.ActiveConfig.extension}PixelSeeds']
259 stripSeedKeys = [f'{flags.Tracking.ActiveConfig.extension}SCT_Seeds']
260 pixelDetElements = ['PixelDetectorElementCollection']
261 stripDetElements = ['SCT_DetectorElementCollection']
262 if pixelSeedLabels is None:
263 pixelSeedKeys = None
264 pixelDetElements = None
265 if stripSeedLabels is None:
266 stripSeedKeys = None
267 stripDetElements = None
268
269 kwargs.setdefault('ACTSTracksLocation', f"{flags.Tracking.ActiveConfig.extension}Tracks")
270 kwargs.setdefault('UncalibratedMeasurementContainerKeys', isdet(flags, pixel=[pixelClusters], strip=[stripClusters]))
271 kwargs.setdefault('SeedLabels', seedOrder(flags, pixel=pixelSeedLabels, strip=stripSeedLabels))
272 kwargs.setdefault('SeedContainerKeys', seedOrder(flags, pixel=pixelSeedKeys, strip=stripSeedKeys))
273 kwargs.setdefault('DetectorElementsKeys', seedOrder(flags, pixel=pixelDetElements, strip=stripDetElements))
274
275 acc.merge(ActsInDetMainTrackFindingAlgCfg(flags,
276 name=f"{flags.Tracking.ActiveConfig.extension}TrackFindingAlg",
277 **kwargs))
278
279 # # Analysis extensions
280 # if flags.Acts.Tracks.doAnalysis:
281 # from ActsConfig.ActsAnalysisConfig import ActsTrackAnalysisAlgCfg
282 # acc.merge(ActsTrackAnalysisAlgCfg(flags,
283 # name=f"{flags.Tracking.ActiveConfig.extension}TrackAnalysisAlg",
284 # TracksLocation=f"{flags.Tracking.ActiveConfig.extension}Tracks"))
285
286 # # Seed To Track Monitoring
287 # if len(kwargs["SeedContainerKeys"]) != len(kwargs["DetectorElementsKeys"]):
288 # raise AttributeError("SeedContainerKeys and DetectorElementsKeys must have same size")
289
290 # for i in range(0, len(kwargs["SeedContainerKeys"])):
291 # seedKey = kwargs["SeedContainerKeys"][i]
292 # detElKey = kwargs["DetectorElementsKeys"][i]
293
294 # # make seed params
295 # from ActsConfig.ActsAnalysisConfig import ActsBaseSeedsToTrackParamsAlgCfg
296 # acc.merge(ActsBaseSeedsToTrackParamsAlgCfg(flags,
297 # name = f'{seedKey}SeedsToTrackParamsAlg',
298 # InputSeedContainerKey = seedKey,
299 # DetectorElementsKey = detElKey,
300 # OutputTrackParamsCollectionKey = f'{seedKey}Params'))
301
302 # from ActsConfig.ActsAnalysisConfig import ActsSeedToTrackAnalysisAlgCfg
303 # acc.merge(ActsSeedToTrackAnalysisAlgCfg(flags,
304 # name = f'{seedKey}ToTrackAnalysisAlg',
305 # InputSeedCollection = seedKey,
306 # InputTrackParamsCollection = f'{seedKey}Params',
307 # InputDestinyCollection = f'{seedKey}Destiny'))
308
309 # Persistification
310 if flags.Acts.EDM.PersistifyTracks:
311 trackColl = kwargs['ACTSTracksLocation']
312 from ActsConfig.ActsTrackFindingConfig import ActsToXAODTrackConverterAlgCfg
313 acc.merge(ActsToXAODTrackConverterAlgCfg(flags,
314 name = f'{trackColl}ToXAODConverterAlg',
315 InputActsTracksLocation = trackColl,
316 OutputActsTracksLocation = trackColl))
317
318 toAOD = []
319 prefix = f"{flags.Tracking.ActiveConfig.extension}"
320 toAOD += [f"xAOD::TrackSummaryContainer#{prefix}TrackSummary",
321 f"xAOD::TrackSummaryAuxContainer#{prefix}TrackSummaryAux.",
322 f"xAOD::TrackStateContainer#{prefix}TrackStates",
323 f"xAOD::TrackStateAuxContainer#{prefix}TrackStatesAux.-uncalibratedMeasurement",
324 f"xAOD::TrackParametersContainer#{prefix}TrackParameters",
325 f"xAOD::TrackParametersAuxContainer#{prefix}TrackParametersAux.",
326 f"xAOD::TrackJacobianContainer#{prefix}TrackJacobians",
327 f"xAOD::TrackJacobianAuxContainer#{prefix}TrackJacobiansAux.",
328 f"xAOD::TrackMeasurementContainer#{prefix}TrackMeasurements",
329 f"xAOD::TrackMeasurementAuxContainer#{prefix}TrackMeasurementsAux.",
330 f"xAOD::TrackSurfaceContainer#{prefix}TrackStateSurfaces",
331 f"xAOD::TrackSurfaceAuxContainer#{prefix}TrackStateSurfacesAux.",
332 f"xAOD::TrackSurfaceContainer#{prefix}TrackSurfaces",
333 f"xAOD::TrackSurfaceAuxContainer#{prefix}TrackSurfacesAux."]
334 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
335 acc.merge(addToAOD(flags, toAOD))
336
337 return acc
338
339
341 name: str = "ActsInDetScoreBasedAmbiguityResolutionAlg",
342 **kwargs) -> ComponentAccumulator:
343 acc = ComponentAccumulator()
344
345 kwargs.setdefault('TracksLocation', 'ActsTracks')
346 kwargs.setdefault('ResolvedTracksLocation', 'ActsResolvedTracks')
347 kwargs.setdefault('MinScore',1.0)
348 kwargs.setdefault('MinScoreSharedTracks', 1.0)
349 kwargs.setdefault('MaxSharedTracksPerMeasurement', 20)
350 kwargs.setdefault('MaxShared', 5)
351 kwargs.setdefault('MinUnshared', 5)
352 kwargs.setdefault('UseAmbiguityScoring', True)
353 kwargs.setdefault('jsonFileName', 'ActsAmbiguityConfig.json')
354
355 if flags.Acts.doMonitoring and 'MonTool' not in kwargs:
356 from ActsConfig.ActsMonitoringConfig import ActsAmbiguityResolutionMonitoringToolCfg
357 kwargs.setdefault('MonTool', acc.popToolsAndMerge(
358 ActsAmbiguityResolutionMonitoringToolCfg(flags)))
359
360 acc.addEventAlgo(
361 CompFactory.ActsTrk.ScoreBasedAmbiguityResolutionAlg(name, **kwargs))
362 return acc
363
364
366 name: str = "ActsInDetAmbiguityResolutionAlg",
367 **kwargs) -> ComponentAccumulator:
368 acc = ComponentAccumulator()
369
370 kwargs.setdefault('TracksLocation', 'ActsTracks')
371 kwargs.setdefault('ResolvedTracksLocation', 'ActsResolvedTracks')
372 kwargs.setdefault('MaximumSharedHits', 3)
373 kwargs.setdefault('MaximumIterations', 10000)
374 kwargs.setdefault('NMeasurementsMin', 7)
375
376 if flags.Acts.doMonitoring and 'MonTool' not in kwargs:
377 from ActsConfig.ActsMonitoringConfig import ActsAmbiguityResolutionMonitoringToolCfg
378 kwargs.setdefault('MonTool', acc.popToolsAndMerge(
379 ActsAmbiguityResolutionMonitoringToolCfg(flags)))
380
381 acc.addEventAlgo(
382 CompFactory.ActsTrk.AmbiguityResolutionAlg(name, **kwargs))
383 return acc
384
385
387 **kwargs) -> ComponentAccumulator:
388 acc = ComponentAccumulator()
389 kwargs.setdefault('TracksLocation', f"{flags.Tracking.ActiveConfig.extension}Tracks")
390 kwargs.setdefault('ResolvedTracksLocation', f"{flags.Tracking.ActiveConfig.extension}ResolvedTracks")
391 from ActsConfig.ActsConfigFlags import AmbiguitySolverStrategy
392
393 if flags.Acts.AmbiguitySolverStrategy is AmbiguitySolverStrategy.ScoreBased:
395 name=f"{flags.Tracking.ActiveConfig.extension}ScoreBasedAmbiguityResolutionAlg",
396 **kwargs))
397 else:
399 name=f"{flags.Tracking.ActiveConfig.extension}AmbiguityResolutionAlg",
400 **kwargs))
401 # Analysis extensions
402 if flags.Acts.Tracks.doAnalysis:
403 from ActsConfig.ActsAnalysisConfig import ActsTrackAnalysisAlgCfg
404 acc.merge(ActsTrackAnalysisAlgCfg(flags,
405 name=f"{flags.Tracking.ActiveConfig.extension}ResolvedTrackAnalysisAlg",
406 TracksLocation=f"{flags.Tracking.ActiveConfig.extension}ResolvedTracks"))
407
408 # Persistification
409 if flags.Acts.EDM.PersistifyTracks:
410 trackColl = kwargs['ResolvedTracksLocation']
411 from ActsConfig.ActsTrackFindingConfig import ActsToXAODTrackConverterAlgCfg
412 acc.merge(ActsToXAODTrackConverterAlgCfg(flags,
413 name = f'{trackColl}ToXAODConverterAlg',
414 InputActsTracksLocation = trackColl,
415 OutputActsTracksLocation = trackColl))
416
417 toAOD = []
418 prefix = f"{flags.Tracking.ActiveConfig.extension}Resolved"
419 toAOD += [f"xAOD::TrackSummaryContainer#{prefix}TrackSummary",
420 f"xAOD::TrackSummaryAuxContainer#{prefix}TrackSummaryAux.",
421 f"xAOD::TrackStateContainer#{prefix}TrackStates",
422 f"xAOD::TrackStateAuxContainer#{prefix}TrackStatesAux.-uncalibratedMeasurement",
423 f"xAOD::TrackParametersContainer#{prefix}TrackParameters",
424 f"xAOD::TrackParametersAuxContainer#{prefix}TrackParametersAux.",
425 f"xAOD::TrackJacobianContainer#{prefix}TrackJacobians",
426 f"xAOD::TrackJacobianAuxContainer#{prefix}TrackJacobiansAux.",
427 f"xAOD::TrackMeasurementContainer#{prefix}TrackMeasurements",
428 f"xAOD::TrackMeasurementAuxContainer#{prefix}TrackMeasurementsAux.",
429 f"xAOD::TrackSurfaceContainer#{prefix}TrackStateSurfaces",
430 f"xAOD::TrackSurfaceAuxContainer#{prefix}TrackStateSurfacesAux.",
431 f"xAOD::TrackSurfaceContainer#{prefix}TrackSurfaces",
432 f"xAOD::TrackSurfaceAuxContainer#{prefix}TrackSurfacesAux."]
433 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
434 acc.merge(addToAOD(flags, toAOD))
435
436 return acc
ComponentAccumulator ActsInDetMainScoreBasedAmbiguityResolutionAlgCfg(flags, str name="ActsInDetScoreBasedAmbiguityResolutionAlg", **kwargs)
list isdet(flags, *, list pixel=None, list strip=None, bool noStrip=False)
ComponentAccumulator ActsInDetMainAmbiguityResolutionAlgCfg(flags, str name="ActsInDetAmbiguityResolutionAlg", **kwargs)
ComponentAccumulator ActsInDetMainTrackFindingAlgCfg(flags, str name="ActsTrackFindingAlg", **kwargs)
ComponentAccumulator ActsInDetAmbiguityResolutionCfg(flags, **kwargs)
ComponentAccumulator ActsInDetTrackStatePrinterToolCfg(flags, str name="ActsInDetTrackStatePrinterTool", **kwargs)
ComponentAccumulator ActsInDetTrackFindingCfg(flags, **kwargs)
list seedOrder(flags, *, list pixel=None, list strip=None)