56 name: str =
"ActsTrackFindingAlg",
57 **kwargs) -> ComponentAccumulator:
59 return c
if isinstance(c, list)
else [c]
63 from ActsConfig.ActsGeometryConfig
import (ActsDetectorElementToActsGeometryIdMappingAlgCfg,
64 ActsVolumeIdToDetectorCollectionMappingAlgCfg)
66 kwargs.setdefault(
'DetectorElementToActsGeometryIdMapKey',
'DetectorElementToActsGeometryIdMap')
69 if not flags.Acts.useHGTDClusterInTrackFinding:
73 kwargs.setdefault(
'EndOfTheWorldVolumeIds', [2, 25])
76 kwargs.setdefault(
"ActsVolumeIdToDetectorElementCollectionMapKey",
"VolumeIdToDetectorElementCollectionMap")
77 def filterCollections(flags, pixel_col, strip_col) :
79 if flags.Detector.GeometryITkPixel:
81 if flags.Detector.GeometryITkStrip:
84 kwargs.setdefault(
"DetElStatus",filterCollections(flags,
'ITkStripDetectorElementStatus',
'ITkPixelDetectorElementStatus'))
89 kwargs.setdefault(
"SeedLabels",
seedOrder(flags, pixel=[
"PPP"], strip=[
"SSS"]))
90 kwargs.setdefault(
"SeedContainerKeys",
seedOrder(flags, pixel=[
"ActsPixelSeeds"], strip=[
"ActsStripSeeds"]))
91 kwargs.setdefault(
'DetectorElementsKeys',
seedOrder(flags, pixel=[
'ITkPixelDetectorElementCollection'], strip=[
'ITkStripDetectorElementCollection']))
93 kwargs.setdefault(
"UncalibratedMeasurementContainerKeys",
isdet(flags, pixel=[
"ITkPixelClusters_Cached" if flags.Acts.useCache
else "ITkPixelClusters"], strip=[
"ITkStripClusters_Cached" if flags.Acts.useCache
else "ITkStripClusters"], hgtd=[
"HGTD_Clusters"]))
95 kwargs.setdefault(
'ACTSTracksLocation',
'ActsTracks')
97 kwargs.setdefault(
"maxPropagationStep", 10000)
98 kwargs.setdefault(
"skipDuplicateSeeds", flags.Acts.skipDuplicateSeeds)
99 kwargs.setdefault(
"refitSeeds",
seedOrder(flags, pixel=[
False], strip=[
False]))
100 kwargs.setdefault(
"doTwoWay", flags.Acts.doTwoWayCKF)
101 kwargs.setdefault(
"autoReverseSearch", flags.Acts.autoReverseSearchCKF)
107 if flags.Detector.GeometryITk:
108 kwargs.setdefault(
"etaBins", flags.Tracking.ActiveConfig.etaBins)
110 if flags.Tracking.doITkFastTracking:
111 kwargs.setdefault(
"chi2CutOff", [100])
112 kwargs.setdefault(
"chi2OutlierCutOff", [100])
114 kwargs.setdefault(
"chi2CutOff", [25])
115 kwargs.setdefault(
"chi2OutlierCutOff", [25])
116 kwargs.setdefault(
"branchStopperPtMinFactor", 0.9)
117 kwargs.setdefault(
"branchStopperAbsEtaMaxExtra", 0.1)
119 kwargs.setdefault(
"numMeasurementsCutOff", [1])
123 kwargs.setdefault(
"StatisticEtaBins", [eta/10.
for eta
in range(5, 40, 5)])
125 kwargs.setdefault(
"absEtaMax", flags.Tracking.ActiveConfig.maxEta)
126 kwargs.setdefault(
"ptMin", [p / Units.GeV * UnitConstants.GeV
for p
in tolist(flags.Tracking.ActiveConfig.minPT)])
128 kwargs.setdefault(
"z0Min", [-flags.Tracking.ActiveConfig.maxZImpactSeed / Units.mm * UnitConstants.mm
for etabin
in flags.Tracking.ActiveConfig.etaBins[:-1]])
129 kwargs.setdefault(
"z0Max", [ flags.Tracking.ActiveConfig.maxZImpactSeed / Units.mm * UnitConstants.mm
for etabin
in flags.Tracking.ActiveConfig.etaBins[:-1]])
130 kwargs.setdefault(
"d0Min", [-d0 / Units.mm * UnitConstants.mm
for d0
in tolist(flags.Tracking.ActiveConfig.maxPrimaryImpact)])
131 kwargs.setdefault(
"d0Max", [ d0 / Units.mm * UnitConstants.mm
for d0
in tolist(flags.Tracking.ActiveConfig.maxPrimaryImpact)])
132 kwargs.setdefault(
"minMeasurements", tolist(flags.Tracking.ActiveConfig.minClusters))
133 kwargs.setdefault(
"maxHoles", tolist(flags.Tracking.ActiveConfig.maxHoles))
134 kwargs.setdefault(
"minPixelHits", tolist(flags.Tracking.ActiveConfig.minPixel))
135 kwargs.setdefault(
"maxPixelHoles", tolist(flags.Tracking.ActiveConfig.maxPixelHoles))
136 kwargs.setdefault(
"maxStripHoles", tolist(flags.Tracking.ActiveConfig.maxSctHoles))
140 kwargs.setdefault(
"ptMinMeasurements",
isdet(flags, pixel=[3], strip=[6]))
141 kwargs.setdefault(
"absEtaMaxMeasurements",
isdet(flags, pixel=[3], strip=[999999]))
143 if 'TrackingGeometryTool' not in kwargs:
144 from ActsConfig.ActsGeometryConfig
import ActsTrackingGeometryToolCfg
146 "TrackingGeometryTool",
150 if 'ATLASConverterTool' not in kwargs:
151 from ActsConfig.ActsEventCnvConfig
import ActsToTrkConverterToolCfg
154 if 'TrackParamsEstimationTool' not in kwargs:
155 from ActsConfig.ActsTrackParamsEstimationConfig
import ActsTrackParamsEstimationToolCfg
158 if 'ExtrapolationTool' not in kwargs:
159 from ActsConfig.ActsGeometryConfig
import ActsExtrapolationToolCfg
165 if flags.Acts.doPrintTrackStates
and 'TrackStatePrinter' not in kwargs:
171 if 'FitterTool' not in kwargs:
172 from ActsConfig.ActsTrackFittingConfig
import ActsFitterCfg
176 ReverseFilteringPt=0,
177 OutlierChi2Cut=
float(
'inf')))
180 if 'PixelCalibrator' not in kwargs:
181 from AthenaConfiguration.Enums
import BeamType
182 from ActsConfig.ActsConfigFlags
import PixelCalibrationStrategy
183 from ActsConfig.ActsMeasurementCalibrationConfig
import ActsAnalogueClusteringToolCfg
185 if not (flags.Tracking.doPixelDigitalClustering
or flags.Beam.Type
is BeamType.Cosmics):
186 if flags.Acts.PixelCalibrationStrategy
in (PixelCalibrationStrategy.AnalogueClustering,
187 PixelCalibrationStrategy.AnalogueClusteringAfterSelection) :
191 CalibrateAfterMeasurementSelection = flags.Acts.PixelCalibrationStrategy
is PixelCalibrationStrategy.AnalogueClusteringAfterSelection))
194 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
195 from ActsConfig.ActsMonitoringConfig
import ActsTrackFindingMonitoringToolCfg
196 kwargs.setdefault(
'MonTool', acc.popToolsAndMerge(
199 acc.addEventAlgo(CompFactory.ActsTrk.TrackFindingAlg(name, **kwargs))