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

Functions

ComponentAccumulator ActsToTrkFitterCfg (flags, str name="ActsToTrkFitterTool", Optional[TrackFitterType] fitterKind=None, **kwargs)
ComponentAccumulator ActsFitterCfg (flags, str name="ActsKalmanFitterTool", Optional[TrackFitterType] fitterKind=None, **kwargs)
ComponentAccumulator ActsReFitterAlgCfg (flags, str name="ActsReFitterAlg", **kwargs)
ComponentAccumulator forceITkActsReFitterAlgCfg (flags)
ComponentAccumulator writeAdditionalTracks (flags, str trackName='ResolvedTracks', str newTrackName='ReFitted_Tracks')

Function Documentation

◆ ActsFitterCfg()

ComponentAccumulator ActsTrackFittingConfig.ActsFitterCfg ( flags,
str name = "ActsKalmanFitterTool",
Optional[TrackFitterType] fitterKind = None,
** kwargs )

Definition at line 43 of file ActsTrackFittingConfig.py.

46 **kwargs) -> ComponentAccumulator:
47 acc = ComponentAccumulator()
48
49 fitterKind = flags.Acts.trackFitterType if fitterKind is None else fitterKind
50
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)))
58
59
60 # Make sure this is set correctly!
61 # /eos/project-a/acts/public/MaterialMaps/ATLAS/material-maps-Pixel-SCT.json
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)))
67
68 if fitterKind is TrackFitterType.KalmanFitter:
69 kwargs.setdefault("ReverseFilteringPt", 1.0 * UnitConstants.GeV)
70
71 if fitterKind is TrackFitterType.KalmanFitter: # This flag is by default set to 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))
79
80 return acc
81
82

◆ ActsReFitterAlgCfg()

ComponentAccumulator ActsTrackFittingConfig.ActsReFitterAlgCfg ( flags,
str name = "ActsReFitterAlg",
** kwargs )

Definition at line 83 of file ActsTrackFittingConfig.py.

85 **kwargs) -> ComponentAccumulator:
86 acc = ComponentAccumulator()
87 kwargs.setdefault("ActsFitter", acc.popToolsAndMerge(ActsToTrkFitterCfg(flags)))
88 kwargs.setdefault("TrackName", "ResolvedTracks")
89 kwargs.setdefault("NewTrackName", "Refitted_Tracks")
90 kwargs.setdefault("DoReFitFromPRD", flags.Acts.fitFromPRD)
91 acc.addEventAlgo(CompFactory.ActsTrk.ReFitterAlg(name, **kwargs))
92
93 if flags.Acts.writeTrackCollection:
94 acc.merge(writeAdditionalTracks(flags))
95
96 return acc
97

◆ ActsToTrkFitterCfg()

ComponentAccumulator ActsTrackFittingConfig.ActsToTrkFitterCfg ( flags,
str name = "ActsToTrkFitterTool",
Optional[TrackFitterType] fitterKind = None,
** kwargs )

Definition at line 9 of file ActsTrackFittingConfig.py.

12 **kwargs) -> ComponentAccumulator:
13
14 acc = ComponentAccumulator()
15
16 fitterKind = flags.Acts.trackFitterType if fitterKind is None else fitterKind
17
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)))
26
27 if fitterKind is TrackFitterType.KalmanFitter:
28 kwargs.setdefault('SeedCovarianceScale', 100.0)
29
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)))
35 else:
36 kwargs.setdefault("ActsFitterTool", acc.popToolsAndMerge(ActsFitterCfg(flags,
37 fitterKind=fitterKind)))
38
39 acc.setPrivateTools(CompFactory.ActsTrk.ActsToTrkFitterWrapTool(name, **kwargs))
40
41 return acc
42

◆ forceITkActsReFitterAlgCfg()

ComponentAccumulator ActsTrackFittingConfig.forceITkActsReFitterAlgCfg ( flags)

Definition at line 98 of file ActsTrackFittingConfig.py.

98def forceITkActsReFitterAlgCfg(flags) -> ComponentAccumulator:
99 #Use this flag in the --postInclude of ActsKfRefiting.sh to fit from the PRD (uncalibrated); Else to fit from the ROT (calibrated), use `(...).ActsReFitterAlgCfg` flag directly
100 flags = flags.cloneAndReplace("Tracking.ActiveConfig",
101 flags.Tracking.ITkPrimaryPassConfig.value)
102 return ActsReFitterAlgCfg(flags)
103
104

◆ writeAdditionalTracks()

ComponentAccumulator ActsTrackFittingConfig.writeAdditionalTracks ( flags,
str trackName = 'ResolvedTracks',
str newTrackName = 'ReFitted_Tracks' )

Definition at line 105 of file ActsTrackFittingConfig.py.

107 newTrackName: str ='ReFitted_Tracks') -> ComponentAccumulator:
108 acc = ComponentAccumulator()
109
110 from xAODTrackingCnv.xAODTrackingCnvConfig import ITkTrackParticleCnvAlgCfg
111
112 if flags.Tracking.doTruth:
113 from InDetConfig.ITkTrackTruthConfig import ITkTrackTruthCfg
114 acc.merge(ITkTrackTruthCfg(flags,
115 Tracks = trackName,
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"))
122
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"))
133
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."]
139
140 acc.merge(addToESD(flags, itemList))
141 acc.merge(addToAOD(flags, itemList))
142 return acc
143