9 name: str =
"ActsFitterTool",
10 fitterKind: Optional[TrackFitterType] =
None,
11 **kwargs) -> ComponentAccumulator:
12 acc = ComponentAccumulator()
14 fitterKind = flags.Acts.trackFitterType
if fitterKind
is None else fitterKind
16 if flags.Acts.fitFromPRD:
17 if flags.Detector.GeometryITk:
18 from TrkConfig.TrkRIO_OnTrackCreatorConfig
import ITkRotCreatorCfg
19 kwargs.setdefault(
'RotCreatorTool', acc.popToolsAndMerge(ITkRotCreatorCfg(flags)))
20 elif flags.Detector.GeometryID:
21 from TrkConfig.TrkRIO_OnTrackCreatorConfig
import InDetRotCreatorCfg
22 kwargs.setdefault(
'RotCreatorTool', acc.popToolsAndMerge(InDetRotCreatorCfg(flags)))
27 from ActsConfig.ActsGeometryConfig
import ActsTrackingGeometryToolCfg, ActsGeometryRealmConvTool
28 kwargs.setdefault(
"TrackingGeometryTool", acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)))
29 kwargs.setdefault(
"GeometryRealmConvTool", acc.getPrimaryAndMerge(ActsGeometryRealmConvTool(flags)))
31 from ActsConfig.ActsGeometryConfig
import ActsExtrapolationToolCfg
32 kwargs.setdefault(
"ExtrapolationTool", acc.popToolsAndMerge(ActsExtrapolationToolCfg(flags, MaxSteps=10000)))
34 if "ATLASConverterTool" not in kwargs:
35 from ActsConfig.ActsEventCnvConfig
import ActsToTrkConverterToolCfg
36 kwargs.setdefault(
'ATLASConverterTool', acc.getPrimaryAndMerge(ActsToTrkConverterToolCfg(flags)))
39 if fitterKind
is TrackFitterType.KalmanFitter:
40 kwargs.setdefault(
"ReverseFilteringPt", 1.0 * UnitConstants.GeV)
42 if fitterKind
is TrackFitterType.KalmanFitter:
43 acc.setPrivateTools(CompFactory.ActsTrk.KalmanFitterTool(name, **kwargs))
44 elif fitterKind
is TrackFitterType.GaussianSumFitter:
45 if "SummaryTool" not in kwargs:
46 from TrkConfig.TrkTrackSummaryToolConfig
import InDetTrackSummaryToolCfg
47 kwargs.setdefault(
'SummaryTool', acc.getPrimaryAndMerge(InDetTrackSummaryToolCfg(flags)))
49 if 'BoundaryCheckTool' not in kwargs:
50 if flags.Detector.GeometryITk:
51 from InDetConfig.InDetBoundaryCheckToolConfig
import ITkBoundaryCheckToolCfg
52 kwargs.setdefault(
"BoundaryCheckTool", acc.popToolsAndMerge(ITkBoundaryCheckToolCfg(flags)))
54 from InDetConfig.InDetBoundaryCheckToolConfig
import InDetBoundaryCheckToolCfg
55 kwargs.setdefault(
"BoundaryCheckTool",acc.popToolsAndMerge(InDetBoundaryCheckToolCfg(flags)))
56 name = name.replace(
"KalmanFitter",
"GaussianSumFitter")
57 acc.setPrivateTools(CompFactory.ActsTrk.GaussianSumFitterTool(name, **kwargs))
58 elif fitterKind
is TrackFitterType.GlobalChiSquareFitter:
59 name = name.replace(
"KalmanFitter",
"GlobalChiSquareFitter")
60 acc.setPrivateTools(CompFactory.ActsTrk.GlobalChiSquareFitterTool(name, **kwargs))
89 trackName: str =
'ResolvedTracks',
90 newTrackName: str =
'ReFitted_Tracks') -> ComponentAccumulator:
91 acc = ComponentAccumulator()
93 from xAODTrackingCnv.xAODTrackingCnvConfig
import ITkTrackParticleCnvAlgCfg
95 if flags.Tracking.doTruth:
96 from InDetConfig.ITkTrackTruthConfig
import ITkTrackTruthCfg
97 acc.merge(ITkTrackTruthCfg(flags,
99 DetailedTruth = f
"{trackName}DetailedTruth",
100 TracksTruth = f
"{trackName}TruthCollection"))
101 acc.merge(ITkTrackTruthCfg(flags,
102 Tracks = newTrackName,
103 DetailedTruth = f
"{newTrackName}DetailedTruth",
104 TracksTruth = f
"{newTrackName}TruthCollection"))
106 acc.merge(ITkTrackParticleCnvAlgCfg(flags,
107 name = f
"{trackName}TrackParticleCnvAlg",
108 TrackContainerName = trackName,
109 xAODTrackParticlesFromTracksContainerName = f
"{trackName}TrackParticles",
110 TrackTruthContainerName = f
"{trackName}TruthCollection"))
111 acc.merge(ITkTrackParticleCnvAlgCfg(flags,
112 name = f
"{newTrackName}TrackParticleCnvAlg",
113 TrackContainerName = newTrackName,
114 xAODTrackParticlesFromTracksContainerName = f
"{newTrackName}TrackParticles",
115 TrackTruthContainerName = f
"{newTrackName}TruthCollection"))
117 from OutputStreamAthenaPool.OutputStreamConfig
import addToESD, addToAOD
118 itemList = [f
"xAOD::TrackParticleContainer#{trackName}TrackParticles",
119 f
"xAOD::TrackParticleAuxContainer#{trackName}TrackParticlesAux.",
120 f
"xAOD::TrackParticleContainer#{newTrackName}TrackParticles",
121 f
"xAOD::TrackParticleAuxContainer#{newTrackName}TrackParticlesAux."]
123 acc.merge(addToESD(flags, itemList))
124 acc.merge(addToAOD(flags, itemList))