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

Functions

list isdet (flags, *, list pixel=None, list strip=None, bool noStrip=False)
list seedOrder (flags, *, list pixel=None, list strip=None)
ComponentAccumulator ActsInDetTrackStatePrinterToolCfg (flags, str name="ActsInDetTrackStatePrinterTool", **kwargs)
ComponentAccumulator ActsInDetMainTrackFindingAlgCfg (flags, str name="ActsTrackFindingAlg", **kwargs)
ComponentAccumulator ActsInDetTrackFindingCfg (flags, **kwargs)
ComponentAccumulator ActsInDetMainScoreBasedAmbiguityResolutionAlgCfg (flags, str name="ActsInDetScoreBasedAmbiguityResolutionAlg", **kwargs)
ComponentAccumulator ActsInDetMainAmbiguityResolutionAlgCfg (flags, str name="ActsInDetAmbiguityResolutionAlg", **kwargs)
ComponentAccumulator ActsInDetAmbiguityResolutionCfg (flags, **kwargs)

Function Documentation

◆ ActsInDetAmbiguityResolutionCfg()

ComponentAccumulator ActsTrackFindingInDetConfig.ActsInDetAmbiguityResolutionCfg ( flags,
** kwargs )

Definition at line 371 of file ActsTrackFindingInDetConfig.py.

372 **kwargs) -> ComponentAccumulator:
373 acc = ComponentAccumulator()
374 kwargs.setdefault('TracksLocation', f"{flags.Tracking.ActiveConfig.extension}Tracks")
375 kwargs.setdefault('ResolvedTracksLocation', f"{flags.Tracking.ActiveConfig.extension}ResolvedTracks")
376 from ActsConfig.ActsConfigFlags import AmbiguitySolverStrategy
377
378 if flags.Acts.AmbiguitySolverStrategy is AmbiguitySolverStrategy.ScoreBased:
379 acc.merge(ActsInDetMainScoreBasedAmbiguityResolutionAlgCfg(flags,
380 name=f"{flags.Tracking.ActiveConfig.extension}ScoreBasedAmbiguityResolutionAlg",
381 **kwargs))
382 else:
383 acc.merge(ActsInDetMainAmbiguityResolutionAlgCfg(flags,
384 name=f"{flags.Tracking.ActiveConfig.extension}AmbiguityResolutionAlg",
385 **kwargs))
386 # Analysis extensions
387 if flags.Acts.Tracks.doAnalysis:
388 from ActsConfig.ActsAnalysisConfig import ActsTrackAnalysisAlgCfg
389 acc.merge(ActsTrackAnalysisAlgCfg(flags,
390 name=f"{flags.Tracking.ActiveConfig.extension}ResolvedTrackAnalysisAlg",
391 TracksLocation=f"{flags.Tracking.ActiveConfig.extension}ResolvedTracks"))
392
393 # Persistification
394 if flags.Acts.EDM.PersistifyTracks:
395 trackColl = kwargs['ResolvedTracksLocation']
396 from ActsConfig.ActsEventCnvConfig import ActsToXAODTrackConverterAlgCfg
397 acc.merge(ActsToXAODTrackConverterAlgCfg(flags,
398 name = f'{trackColl}ToXAODConverterAlg',
399 InputActsTracksLocation = trackColl,
400 OutputActsTracksLocation = trackColl))
401
402 toAOD = []
403 prefix = f"{flags.Tracking.ActiveConfig.extension}Resolved"
404 toAOD += [f"xAOD::TrackSummaryContainer#{prefix}TrackSummary",
405 f"xAOD::TrackSummaryAuxContainer#{prefix}TrackSummaryAux.",
406 f"xAOD::TrackStateContainer#{prefix}TrackStates",
407 f"xAOD::TrackStateAuxContainer#{prefix}TrackStatesAux.-uncalibratedMeasurement",
408 f"xAOD::TrackParametersContainer#{prefix}TrackParameters",
409 f"xAOD::TrackParametersAuxContainer#{prefix}TrackParametersAux.",
410 f"xAOD::TrackJacobianContainer#{prefix}TrackJacobians",
411 f"xAOD::TrackJacobianAuxContainer#{prefix}TrackJacobiansAux.",
412 f"xAOD::TrackMeasurementContainer#{prefix}TrackMeasurements",
413 f"xAOD::TrackMeasurementAuxContainer#{prefix}TrackMeasurementsAux.",
414 f"xAOD::TrackSurfaceContainer#{prefix}TrackStateSurfaces",
415 f"xAOD::TrackSurfaceAuxContainer#{prefix}TrackStateSurfacesAux.",
416 f"xAOD::TrackSurfaceContainer#{prefix}TrackSurfaces",
417 f"xAOD::TrackSurfaceAuxContainer#{prefix}TrackSurfacesAux."]
418 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
419 acc.merge(addToAOD(flags, toAOD))
420
421 return acc

◆ ActsInDetMainAmbiguityResolutionAlgCfg()

ComponentAccumulator ActsTrackFindingInDetConfig.ActsInDetMainAmbiguityResolutionAlgCfg ( flags,
str name = "ActsInDetAmbiguityResolutionAlg",
** kwargs )

Definition at line 350 of file ActsTrackFindingInDetConfig.py.

352 **kwargs) -> ComponentAccumulator:
353 acc = ComponentAccumulator()
354
355 kwargs.setdefault('TracksLocation', 'ActsTracks')
356 kwargs.setdefault('ResolvedTracksLocation', 'ActsResolvedTracks')
357 kwargs.setdefault('MaximumSharedHits', 3)
358 kwargs.setdefault('MaximumIterations', 10000)
359 kwargs.setdefault('NMeasurementsMin', 7)
360
361 if flags.Acts.doMonitoring and 'MonTool' not in kwargs:
362 from ActsConfig.ActsMonitoringConfig import ActsAmbiguityResolutionMonitoringToolCfg
363 kwargs.setdefault('MonTool', acc.popToolsAndMerge(
364 ActsAmbiguityResolutionMonitoringToolCfg(flags)))
365
366 acc.addEventAlgo(
367 CompFactory.ActsTrk.AmbiguityResolutionAlg(name, **kwargs))
368 return acc
369
370

◆ ActsInDetMainScoreBasedAmbiguityResolutionAlgCfg()

ComponentAccumulator ActsTrackFindingInDetConfig.ActsInDetMainScoreBasedAmbiguityResolutionAlgCfg ( flags,
str name = "ActsInDetScoreBasedAmbiguityResolutionAlg",
** kwargs )

Definition at line 325 of file ActsTrackFindingInDetConfig.py.

327 **kwargs) -> ComponentAccumulator:
328 acc = ComponentAccumulator()
329
330 kwargs.setdefault('TracksLocation', 'ActsTracks')
331 kwargs.setdefault('ResolvedTracksLocation', 'ActsResolvedTracks')
332 kwargs.setdefault('MinScore',1.0)
333 kwargs.setdefault('MinScoreSharedTracks', 1.0)
334 kwargs.setdefault('MaxSharedTracksPerMeasurement', 20)
335 kwargs.setdefault('MaxShared', 5)
336 kwargs.setdefault('MinUnshared', 5)
337 kwargs.setdefault('UseAmbiguityScoring', True)
338 kwargs.setdefault('jsonFileName', 'ActsAmbiguityConfig.json')
339
340 if flags.Acts.doMonitoring and 'MonTool' not in kwargs:
341 from ActsConfig.ActsMonitoringConfig import ActsAmbiguityResolutionMonitoringToolCfg
342 kwargs.setdefault('MonTool', acc.popToolsAndMerge(
343 ActsAmbiguityResolutionMonitoringToolCfg(flags)))
344
345 acc.addEventAlgo(
346 CompFactory.ActsTrk.ScoreBasedAmbiguityResolutionAlg(name, **kwargs))
347 return acc
348
349

◆ ActsInDetMainTrackFindingAlgCfg()

ComponentAccumulator ActsTrackFindingInDetConfig.ActsInDetMainTrackFindingAlgCfg ( flags,
str name = "ActsTrackFindingAlg",
** kwargs )

Definition at line 53 of file ActsTrackFindingInDetConfig.py.

55 **kwargs) -> ComponentAccumulator:
56 def tolist(c):
57 return c if isinstance(c, list) else [c]
58
59 acc = ComponentAccumulator()
60
61 from ActsConfig.ActsGeometryConfig import ActsInDetVolumeIdToDetectorCollectionMappingAlgCfg
62
63 acc.merge( ActsInDetVolumeIdToDetectorCollectionMappingAlgCfg(flags) )
64 kwargs.setdefault("ActsVolumeIdToDetectorElementCollectionMapKey", "VolumeIdToDetectorElementCollectionMap")
65
66 if flags.Detector.EnablePixel:
67 from PixelConditionsAlgorithms.PixelConditionsConfig import PixelDetectorElementStatusAlgCfg
68 acc.merge(PixelDetectorElementStatusAlgCfg(flags))
69 if flags.Detector.EnableSCT:
70 from SCT_ConditionsAlgorithms.SCT_ConditionsAlgorithmsConfig import SCT_DetectorElementStatusAlgCfg
71 acc.merge(SCT_DetectorElementStatusAlgCfg(flags))
72 kwargs.setdefault("DetElStatus", seedOrder(flags, pixel=["PixelDetectorElementStatus"], strip=["SCTDetectorElementStatus"]))
73
74 # Seed labels and collections.
75 # These 3 lists must match element for element, reversed if flags.Acts.useStripSeedsFirst is True.
76 # Maybe it is best to start with strips where the occupancy is lower.
77 kwargs.setdefault("SeedLabels", seedOrder(flags, pixel=["PPP"], strip=["SSS"]))
78 kwargs.setdefault("SeedContainerKeys", seedOrder(flags, pixel=["ActsPixelSeeds"], strip=["ActsSCT_Seeds"]))
79 kwargs.setdefault('DetectorElementsKeys', seedOrder(flags, pixel=['PixelDetectorElementCollection'], strip=['SCT_DetectorElementCollection']))
80 if flags.Acts.Tracks.doAnalysis:
81 kwargs.setdefault("SeedDestiny", [f'{seedkey}Destiny' for seedkey in kwargs["SeedContainerKeys"]])
82
83 kwargs.setdefault("UncalibratedMeasurementContainerKeys", isdet(flags, pixel=["PixelClusters"], strip=["SCT_Clusters"]))
84
85 kwargs.setdefault('ACTSTracksLocation', 'ActsTracks')
86
87 kwargs.setdefault("maxPropagationStep", 10000)
88 kwargs.setdefault("skipDuplicateSeeds", True)# flags.Acts.skipDuplicateSeeds
89 kwargs.setdefault("seedMeasOffset", 1)
90
91 # Ambi strategy 0 means do the ambiguity resolution outside the track finding.
92 kwargs.setdefault("ambiStrategy", flags.Acts.AmbiguitySolverMode.value)
93
94 if (not flags.Acts.doAmbiguityResolution) :
95 kwargs.setdefault("MaximumSharedHits", 3)
96 kwargs.setdefault("MaximumIterations", 10000)
97 kwargs.setdefault("NMeasurementsMin", 7)
98
99 kwargs.setdefault("refitSeeds", seedOrder(flags, pixel=[False], strip=[False]))
100 kwargs.setdefault("doTwoWay", flags.Acts.doTwoWayCKF)
101 kwargs.setdefault("inflateCovarianceTwoWay", True)
102 kwargs.setdefault("twoWayinflateCovarianceFactor", 100.0)
103 kwargs.setdefault("autoReverseSearch", flags.Tracking.ActiveConfig.autoReverseSearch)
104 # kwargs.setdefault("useTopSpRZboundary",[ 229.0 * UnitConstants.mm, 450.0 * UnitConstants.mm])
105
106 # forceTrackOnSeed isn't effective with secondary passes, which will have removed most/all of the seed measurements from the measurement containers.
107 kwargs.setdefault("forceTrackOnSeed", flags.Acts.forceTrackOnSeed and not flags.Tracking.ActiveConfig.isSecondaryPass)
108
109 # Borrow many settings from flags.Tracking.ActiveConfig, normally initialised in createITkTrackingPassFlags() at
110 # https://gitlab.cern.ch/atlas/athena/-/blob/main/Tracking/TrkConfig/python/TrackingPassFlags.py#L121
111
112 # bins in |eta|, used for both MeasurementSelectorConfig and TrackSelector::EtaBinnedConfig
113 kwargs.setdefault("etaBins", flags.Tracking.ActiveConfig.etaBins) #
114 # new default chi2 cuts optimise efficiency vs speed. Set same value as Athena's Xi2maxNoAdd.
115 kwargs.setdefault("chi2CutOff", tolist(flags.Tracking.ActiveConfig.Xi2max*1))
116 kwargs.setdefault("chi2OutlierCutOff", tolist(flags.Tracking.ActiveConfig.Xi2maxNoAdd*1))
117 kwargs.setdefault("checkCounts", True)
118 kwargs.setdefault("doBranchStopper", True)
119
120 kwargs.setdefault("branchStopperPtMinFactor", 0.9)
121 kwargs.setdefault("branchStopperAbsEtaMaxExtra", 0.1)
122
123 # Loosen the requirement on the minimum number of measurements on track candidate
124 # during track finding for tracks above a certain eta
125 kwargs.setdefault("branchStopperMeasCutReduce", flags.Acts.branchStopperMeasCutReduce)
126 kwargs.setdefault("branchStopperAbsEtaMeasCut", flags.Acts.branchStopperAbsEtaMeasCut)
127
128 kwargs.setdefault("numMeasurementsCutOff", [1])
129
130 # there is always an over and underflow bin so the first bin will be 0. - 0.5 the last bin 3.5 - inf.
131 # if all eta bins are >=0. the counter will be categorized by abs(eta) otherwise eta
132 kwargs.setdefault("StatisticEtaBins", [eta/10. for eta in range(5, 40, 5)]) # eta 0.0 - 4.0 in steps of 0.5
133
134 kwargs.setdefault("absEtaMax", flags.Tracking.ActiveConfig.maxEta)
135 kwargs.setdefault("ptMin", [p / Units.GeV * UnitConstants.GeV for p in tolist(flags.Tracking.ActiveConfig.minPT)])
136 # 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.
137 kwargs.setdefault("z0Min", [-flags.Tracking.ActiveConfig.maxZImpact / Units.mm * UnitConstants.mm for etabin in flags.Tracking.ActiveConfig.etaBins[:-1]])
138 kwargs.setdefault("z0Max", [ flags.Tracking.ActiveConfig.maxZImpact / Units.mm * UnitConstants.mm for etabin in flags.Tracking.ActiveConfig.etaBins[:-1]])
139 kwargs.setdefault("d0Min", [-d0 / Units.mm * UnitConstants.mm for d0 in tolist(flags.Tracking.ActiveConfig.maxPrimaryImpactList)])
140 kwargs.setdefault("d0Max", [ d0 / Units.mm * UnitConstants.mm for d0 in tolist(flags.Tracking.ActiveConfig.maxPrimaryImpactList)])
141 kwargs.setdefault("minMeasurements", tolist([ 8, 8, 8]))
142 kwargs.setdefault("maxHoles", tolist(flags.Tracking.ActiveConfig.maxHoles))
143 kwargs.setdefault("minPixelHits", tolist(flags.Tracking.ActiveConfig.minPixel))
144 kwargs.setdefault("maxPixelHoles", tolist(flags.Tracking.ActiveConfig.maxPixelHoles))
145 kwargs.setdefault("maxStripHoles", tolist(flags.Tracking.ActiveConfig.maxSctHoles))
146 # The shared hits are not calculated until *after* the track selection, so maxSharedHits is not used.
147 # Even if that were not the case, we need the ambiguity solver to decide which track to drop.
148
149
150 # GBTS produces much purer seeds, so the branch stopper selections aren't needed with GBTS seeds.
151 if flags.Acts.SeedingStrategy is not SeedingStrategy.Gbts:
152 kwargs.setdefault("ptMinMeasurements", seedOrder(flags, pixel=[3], strip=[6]))
153 kwargs.setdefault("absEtaMaxMeasurements", seedOrder(flags, pixel=[3], strip=[999999]))
154
155 from ActsConfig.ActsGeometryConfig import ActsGeometryRealmConvToolCfg
156 kwargs.setdefault("GeometryRealmConvTool", acc.getPrimaryAndMerge(ActsGeometryRealmConvToolCfg(flags)))
157
158 if 'TrackParamsEstimationTool' not in kwargs:
159 from ActsConfig.ActsTrackParamsEstimationConfig import ActsTrackParamsEstimationToolCfg
160 kwargs.setdefault('TrackParamsEstimationTool', acc.popToolsAndMerge(ActsTrackParamsEstimationToolCfg(flags)))
161
162 if flags.Acts.doPrintTrackStates and 'TrackStatePrinter' not in kwargs:
163 kwargs.setdefault(
164 "TrackStatePrinter",
165 acc.popToolsAndMerge(ActsInDetTrackStatePrinterToolCfg(flags)),
166 )
167
168 if 'FitterTool' not in kwargs:
169 from ActsConfig.ActsTrackFittingConfig import ActsFitterCfg
170 kwargs.setdefault(
171 'FitterTool',
172 acc.popToolsAndMerge(ActsFitterCfg(flags,
173 ReverseFilteringPt=0,
174 OutlierChi2Cut=float('inf')))
175 )
176
177 # !!! Calibrator is not used for Inner Detector yet
178 if 'PixelCalibrator' not in kwargs:
179 from AthenaConfiguration.Enums import BeamType
180
181 if flags.Beam.Type is not BeamType.Cosmics:
182 from ActsConfig.ActsConfigFlags import PixelCalibrationStrategy
183 from ActsConfig.ActsMeasurementCalibrationConfig import ActsAnalogueClusteringToolCfg
184
185 if flags.Acts.PixelCalibrationStrategy in (PixelCalibrationStrategy.AnalogueClustering,
186 PixelCalibrationStrategy.AnalogueClusteringAfterSelection,
187 PixelCalibrationStrategy.NNClustering):
188
189 kwargs.setdefault(
190 'PixelCalibrator',
191 acc.popToolsAndMerge(ActsAnalogueClusteringToolCfg(flags,
192 CalibrateAfterMeasurementSelection = flags.Acts.PixelCalibrationStrategy is PixelCalibrationStrategy.AnalogueClusteringAfterSelection))
193 )
194 # !!! Calibrator is not used for Inner Detector yet
195 if 'StripCalibrator' not in kwargs:
196 from AthenaConfiguration.Enums import BeamType
197 if flags.Beam.Type is not BeamType.Cosmics:
198 from ActsConfig.ActsMeasurementCalibrationConfig import ActsStripCalibrationToolCfg
199 from ActsConfig.ActsConfigFlags import StripCalibrationStrategy
200
201 if flags.Acts.StripCalibrationStrategy in (StripCalibrationStrategy.DigitalCalibration,
202 StripCalibrationStrategy.DigitalCalibrationAfterSelection) :
203
204 kwargs.setdefault(
205 'StripCalibrator',
206 acc.popToolsAndMerge(ActsStripCalibrationToolCfg(flags,
207 CalibrateAfterMeasurementSelection = flags.Acts.StripCalibrationStrategy is StripCalibrationStrategy.DigitalCalibrationAfterSelection))
208 )
209
210 if flags.Acts.doMonitoring and 'MonTool' not in kwargs:
211 from ActsConfig.ActsMonitoringConfig import ActsTrackFindingMonitoringToolCfg
212 kwargs.setdefault('MonTool', acc.popToolsAndMerge(
213 ActsTrackFindingMonitoringToolCfg(flags)))
214
215 acc.addEventAlgo(CompFactory.ActsTrk.TrackFindingAlg(name, **kwargs))
216 return acc
217
218
219

◆ ActsInDetTrackFindingCfg()

ComponentAccumulator ActsTrackFindingInDetConfig.ActsInDetTrackFindingCfg ( flags,
** kwargs )

Definition at line 220 of file ActsTrackFindingInDetConfig.py.

221 **kwargs) -> ComponentAccumulator:
222 acc = ComponentAccumulator()
223
224 # Define Uncalibrated Measurement keys
225 dataPrepPrefix = f'{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}'
226 if not flags.Tracking.ActiveConfig.isSecondaryPass:
227 dataPrepPrefix = ''
228 pixelClusters = f'{dataPrepPrefix}PixelClusters'
229 stripClusters = f'{dataPrepPrefix}SCT_Clusters'
230 # If cache is activated the keys have "_Cached" as postfix
231 if flags.Acts.useCache:
232 pixelClusters += '_Cached'
233 stripClusters += '_Cached'
234 # Consider case detectors are not active
235
236 # Understand what are the seeds we need to consider
237 pixelSeedLabels = ['PPP']
238 stripSeedLabels = ['SSS']
239
240 # Consider if pixel seeds and SCT seeds are needed, for the moment, both are kept for Inner Detector
241
242 # Now set the seed and estimated parameters keys accordingly
243 pixelSeedKeys = [f'{flags.Tracking.ActiveConfig.extension}PixelSeeds']
244 stripSeedKeys = [f'{flags.Tracking.ActiveConfig.extension}SCT_Seeds']
245 pixelDetElements = ['PixelDetectorElementCollection']
246 stripDetElements = ['SCT_DetectorElementCollection']
247 if pixelSeedLabels is None:
248 pixelSeedKeys = None
249 pixelDetElements = None
250 if stripSeedLabels is None:
251 stripSeedKeys = None
252 stripDetElements = None
253
254 kwargs.setdefault('ACTSTracksLocation', f"{flags.Tracking.ActiveConfig.extension}Tracks")
255 kwargs.setdefault('UncalibratedMeasurementContainerKeys', isdet(flags, pixel=[pixelClusters], strip=[stripClusters]))
256 kwargs.setdefault('SeedLabels', seedOrder(flags, pixel=pixelSeedLabels, strip=stripSeedLabels))
257 kwargs.setdefault('SeedContainerKeys', seedOrder(flags, pixel=pixelSeedKeys, strip=stripSeedKeys))
258 kwargs.setdefault('DetectorElementsKeys', seedOrder(flags, pixel=pixelDetElements, strip=stripDetElements))
259
260 acc.merge(ActsInDetMainTrackFindingAlgCfg(flags,
261 name=f"{flags.Tracking.ActiveConfig.extension}TrackFindingAlg",
262 **kwargs))
263
264 # # Analysis extensions
265 # if flags.Acts.Tracks.doAnalysis:
266 # from ActsConfig.ActsAnalysisConfig import ActsTrackAnalysisAlgCfg
267 # acc.merge(ActsTrackAnalysisAlgCfg(flags,
268 # name=f"{flags.Tracking.ActiveConfig.extension}TrackAnalysisAlg",
269 # TracksLocation=f"{flags.Tracking.ActiveConfig.extension}Tracks"))
270
271 # # Seed To Track Monitoring
272 # if len(kwargs["SeedContainerKeys"]) != len(kwargs["DetectorElementsKeys"]):
273 # raise AttributeError("SeedContainerKeys and DetectorElementsKeys must have same size")
274
275 # for i in range(0, len(kwargs["SeedContainerKeys"])):
276 # seedKey = kwargs["SeedContainerKeys"][i]
277 # detElKey = kwargs["DetectorElementsKeys"][i]
278
279 # # make seed params
280 # from ActsConfig.ActsAnalysisConfig import ActsBaseSeedsToTrackParamsAlgCfg
281 # acc.merge(ActsBaseSeedsToTrackParamsAlgCfg(flags,
282 # name = f'{seedKey}SeedsToTrackParamsAlg',
283 # InputSeedContainerKey = seedKey,
284 # DetectorElementsKey = detElKey,
285 # OutputTrackParamsCollectionKey = f'{seedKey}Params'))
286
287 # from ActsConfig.ActsAnalysisConfig import ActsSeedToTrackAnalysisAlgCfg
288 # acc.merge(ActsSeedToTrackAnalysisAlgCfg(flags,
289 # name = f'{seedKey}ToTrackAnalysisAlg',
290 # InputSeedCollection = seedKey,
291 # InputTrackParamsCollection = f'{seedKey}Params',
292 # InputDestinyCollection = f'{seedKey}Destiny'))
293
294 # Persistification
295 if flags.Acts.EDM.PersistifyTracks:
296 trackColl = kwargs['ACTSTracksLocation']
297 from ActsConfig.ActsEventCnvConfig import ActsToXAODTrackConverterAlgCfg
298 acc.merge(ActsToXAODTrackConverterAlgCfg(flags,
299 name = f'{trackColl}ToXAODConverterAlg',
300 InputActsTracksLocation = trackColl,
301 OutputActsTracksLocation = trackColl))
302
303 toAOD = []
304 prefix = f"{flags.Tracking.ActiveConfig.extension}"
305 toAOD += [f"xAOD::TrackSummaryContainer#{prefix}TrackSummary",
306 f"xAOD::TrackSummaryAuxContainer#{prefix}TrackSummaryAux.",
307 f"xAOD::TrackStateContainer#{prefix}TrackStates",
308 f"xAOD::TrackStateAuxContainer#{prefix}TrackStatesAux.-uncalibratedMeasurement",
309 f"xAOD::TrackParametersContainer#{prefix}TrackParameters",
310 f"xAOD::TrackParametersAuxContainer#{prefix}TrackParametersAux.",
311 f"xAOD::TrackJacobianContainer#{prefix}TrackJacobians",
312 f"xAOD::TrackJacobianAuxContainer#{prefix}TrackJacobiansAux.",
313 f"xAOD::TrackMeasurementContainer#{prefix}TrackMeasurements",
314 f"xAOD::TrackMeasurementAuxContainer#{prefix}TrackMeasurementsAux.",
315 f"xAOD::TrackSurfaceContainer#{prefix}TrackStateSurfaces",
316 f"xAOD::TrackSurfaceAuxContainer#{prefix}TrackStateSurfacesAux.",
317 f"xAOD::TrackSurfaceContainer#{prefix}TrackSurfaces",
318 f"xAOD::TrackSurfaceAuxContainer#{prefix}TrackSurfacesAux."]
319 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
320 acc.merge(addToAOD(flags, toAOD))
321
322 return acc
323
324

◆ ActsInDetTrackStatePrinterToolCfg()

ComponentAccumulator ActsTrackFindingInDetConfig.ActsInDetTrackStatePrinterToolCfg ( flags,
str name = "ActsInDetTrackStatePrinterTool",
** kwargs )

Definition at line 34 of file ActsTrackFindingInDetConfig.py.

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 from ActsAlignmentAlgs.AlignmentAlgsConfig import ActsGeometryContextAlgCfg
44 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometrySvcCfg
45 acc.merge(ActsGeometryContextAlgCfg(flags))
46 acc.merge(ActsTrackingGeometrySvcCfg(flags))
47
48 acc.setPrivateTools(CompFactory.ActsTrk.TrackStatePrinterTool(name, **kwargs))
49 return acc
50
51# ACTS only algorithm
52

◆ isdet()

list ActsTrackFindingInDetConfig.isdet ( flags,
* ,
list pixel = None,
list strip = None,
bool noStrip = False )

Definition at line 12 of file ActsTrackFindingInDetConfig.py.

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

◆ seedOrder()

list ActsTrackFindingInDetConfig.seedOrder ( flags,
* ,
list pixel = None,
list strip = None )

Definition at line 25 of file ActsTrackFindingInDetConfig.py.

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