10 name: str =
"ActsToTrkFitterTool",
11 fitterKind: Optional[TrackFitterType] =
None,
12 **kwargs) -> ComponentAccumulator:
14 acc = ComponentAccumulator()
16 fitterKind = flags.Acts.trackFitterType
if fitterKind
is None else fitterKind
18 from ActsAlignmentAlgs.AlignmentAlgsConfig
import ActsGeometryContextAlgCfg
19 from ActsConfig.ActsGeometryConfig
import ActsTrackingGeometrySvcCfg, ActsGeometryRealmConvToolCfg
20 acc.merge(ActsGeometryContextAlgCfg(flags))
21 acc.merge(ActsTrackingGeometrySvcCfg(flags))
22 kwargs.setdefault(
"GeometryRealmConvTool", acc.getPrimaryAndMerge(ActsGeometryRealmConvToolCfg(flags)))
23 if "ATLASConverterTool" not in kwargs:
24 from ActsConfig.ActsEventCnvConfig
import ActsToTrkConverterToolCfg
25 kwargs.setdefault(
'ATLASConverterTool', acc.getPrimaryAndMerge(ActsToTrkConverterToolCfg(flags)))
27 if fitterKind
is TrackFitterType.KalmanFitter:
28 kwargs.setdefault(
'SeedCovarianceScale', 100.0)
30 if "ActsFitterTool" not in kwargs:
31 if fitterKind
is TrackFitterType.KalmanFitter:
32 kwargs.setdefault(
"ActsFitterTool", acc.popToolsAndMerge(
ActsFitterCfg(flags,
33 fitterKind=fitterKind,
34 UseDirectNavigation =
False)))
36 kwargs.setdefault(
"ActsFitterTool", acc.popToolsAndMerge(
ActsFitterCfg(flags,
37 fitterKind=fitterKind)))
39 acc.setPrivateTools(CompFactory.ActsTrk.ActsToTrkFitterWrapTool(name, **kwargs))
44 name: str =
"ActsKalmanFitterTool",
45 fitterKind: Optional[TrackFitterType] =
None,
46 **kwargs) -> ComponentAccumulator:
47 acc = ComponentAccumulator()
49 fitterKind = flags.Acts.trackFitterType
if fitterKind
is None else fitterKind
51 if flags.Acts.fitFromPRD:
52 if flags.Detector.GeometryITk:
53 from TrkConfig.TrkRIO_OnTrackCreatorConfig
import ITkRotCreatorCfg
54 kwargs.setdefault(
'RotCreatorTool', acc.popToolsAndMerge(ITkRotCreatorCfg(flags)))
55 elif flags.Detector.GeometryID:
56 from TrkConfig.TrkRIO_OnTrackCreatorConfig
import InDetRotCreatorCfg
57 kwargs.setdefault(
'RotCreatorTool', acc.popToolsAndMerge(InDetRotCreatorCfg(flags)))
62 from ActsAlignmentAlgs.AlignmentAlgsConfig
import ActsGeometryContextAlgCfg
63 from ActsConfig.ActsGeometryConfig
import ActsTrackingGeometrySvcCfg, ActsGeometryRealmConvToolCfg
64 acc.merge(ActsGeometryContextAlgCfg(flags))
65 acc.merge(ActsTrackingGeometrySvcCfg(flags))
66 kwargs.setdefault(
"GeometryRealmConvTool", acc.getPrimaryAndMerge(ActsGeometryRealmConvToolCfg(flags)))
68 if fitterKind
is TrackFitterType.KalmanFitter:
69 kwargs.setdefault(
"ReverseFilteringPt", 1.0 * UnitConstants.GeV)
71 if fitterKind
is TrackFitterType.KalmanFitter:
72 acc.setPrivateTools(CompFactory.ActsTrk.KalmanFitterTool(name, **kwargs))
73 elif fitterKind
is TrackFitterType.GaussianSumFitter:
74 name = name.replace(
"KalmanFitter",
"GaussianSumFitter")
75 acc.setPrivateTools(CompFactory.ActsTrk.GaussianSumFitterTool(name, **kwargs))
76 elif fitterKind
is TrackFitterType.GlobalChiSquareFitter:
77 name = name.replace(
"KalmanFitter",
"GlobalChiSquareFitter")
78 acc.setPrivateTools(CompFactory.ActsTrk.GlobalChiSquareFitterTool(name, **kwargs))
106 trackName: str =
'ResolvedTracks',
107 newTrackName: str =
'ReFitted_Tracks') -> ComponentAccumulator:
108 acc = ComponentAccumulator()
110 from xAODTrackingCnv.xAODTrackingCnvConfig
import ITkTrackParticleCnvAlgCfg
112 if flags.Tracking.doTruth:
113 from InDetConfig.ITkTrackTruthConfig
import ITkTrackTruthCfg
114 acc.merge(ITkTrackTruthCfg(flags,
116 DetailedTruth = f
"{trackName}DetailedTruth",
117 TracksTruth = f
"{trackName}TruthCollection"))
118 acc.merge(ITkTrackTruthCfg(flags,
119 Tracks = newTrackName,
120 DetailedTruth = f
"{newTrackName}DetailedTruth",
121 TracksTruth = f
"{newTrackName}TruthCollection"))
123 acc.merge(ITkTrackParticleCnvAlgCfg(flags,
124 name = f
"{trackName}TrackParticleCnvAlg",
125 TrackContainerName = trackName,
126 xAODTrackParticlesFromTracksContainerName = f
"{trackName}TrackParticles",
127 TrackTruthContainerName = f
"{trackName}TruthCollection"))
128 acc.merge(ITkTrackParticleCnvAlgCfg(flags,
129 name = f
"{newTrackName}TrackParticleCnvAlg",
130 TrackContainerName = newTrackName,
131 xAODTrackParticlesFromTracksContainerName = f
"{newTrackName}TrackParticles",
132 TrackTruthContainerName = f
"{newTrackName}TruthCollection"))
134 from OutputStreamAthenaPool.OutputStreamConfig
import addToESD, addToAOD
135 itemList = [f
"xAOD::TrackParticleContainer#{trackName}TrackParticles",
136 f
"xAOD::TrackParticleAuxContainer#{trackName}TrackParticlesAux.",
137 f
"xAOD::TrackParticleContainer#{newTrackName}TrackParticles",
138 f
"xAOD::TrackParticleAuxContainer#{newTrackName}TrackParticlesAux."]
140 acc.merge(addToESD(flags, itemList))
141 acc.merge(addToAOD(flags, itemList))