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 45 of file ActsTrackFittingConfig.py.

48 **kwargs) -> ComponentAccumulator:
49 acc = ComponentAccumulator()
50
51 fitterKind = flags.Acts.trackFitterType if fitterKind is None else fitterKind
52
53 if flags.Acts.fitFromPRD:
54 if flags.Detector.GeometryITk:
55 from TrkConfig.TrkRIO_OnTrackCreatorConfig import ITkRotCreatorCfg
56 kwargs.setdefault('RotCreatorTool', acc.popToolsAndMerge(ITkRotCreatorCfg(flags)))
57 elif flags.Detector.GeometryID:
58 from TrkConfig.TrkRIO_OnTrackCreatorConfig import InDetRotCreatorCfg
59 kwargs.setdefault('RotCreatorTool', acc.popToolsAndMerge(InDetRotCreatorCfg(flags)))
60
61
62 # Make sure this is set correctly!
63 # /eos/project-a/acts/public/MaterialMaps/ATLAS/material-maps-Pixel-SCT.json
64 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometryToolCfg, ActsGeometryRealmConvTool
65 kwargs.setdefault("TrackingGeometryTool", acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)))
66 kwargs.setdefault("GeometryRealmConvTool", acc.getPrimaryAndMerge(ActsGeometryRealmConvTool(flags)))
67
68 from ActsConfig.ActsGeometryConfig import ActsExtrapolationToolCfg
69 kwargs.setdefault("ExtrapolationTool", acc.popToolsAndMerge(ActsExtrapolationToolCfg(flags, MaxSteps=10000)))
70
71 if fitterKind is TrackFitterType.KalmanFitter:
72 kwargs.setdefault("ReverseFilteringPt", 1.0 * UnitConstants.GeV)
73
74 if fitterKind is TrackFitterType.KalmanFitter: # This flag is by default set to KalmanFitter
75 acc.setPrivateTools(CompFactory.ActsTrk.KalmanFitterTool(name, **kwargs))
76 elif fitterKind is TrackFitterType.GaussianSumFitter:
77 name = name.replace("KalmanFitter", "GaussianSumFitter")
78 acc.setPrivateTools(CompFactory.ActsTrk.GaussianSumFitterTool(name, **kwargs))
79 elif fitterKind is TrackFitterType.GlobalChiSquareFitter:
80 name = name.replace("KalmanFitter", "GlobalChiSquareFitter")
81 acc.setPrivateTools(CompFactory.ActsTrk.GlobalChiSquareFitterTool(name, **kwargs))
82
83 return acc
84
85

◆ ActsReFitterAlgCfg()

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

Definition at line 86 of file ActsTrackFittingConfig.py.

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

◆ 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 ActsConfig.ActsGeometryConfig import ActsTrackingGeometryToolCfg, ActsGeometryRealmConvTool
19 kwargs.setdefault("TrackingGeometryTool", acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)))
20 kwargs.setdefault("GeometryRealmConvTool", acc.getPrimaryAndMerge(ActsGeometryRealmConvTool(flags)))
21
22 from ActsConfig.ActsGeometryConfig import ActsExtrapolationToolCfg
23 kwargs.setdefault("ExtrapolationTool", acc.popToolsAndMerge(ActsExtrapolationToolCfg(flags, MaxSteps=10000)))
24
25 if "ATLASConverterTool" not in kwargs:
26 from ActsConfig.ActsEventCnvConfig import ActsToTrkConverterToolCfg
27 kwargs.setdefault('ATLASConverterTool', acc.getPrimaryAndMerge(ActsToTrkConverterToolCfg(flags)))
28
29 if fitterKind is TrackFitterType.KalmanFitter:
30 kwargs.setdefault('SeedCovarianceScale', 100.0)
31
32 if "ActsFitterTool" not in kwargs:
33 if fitterKind is TrackFitterType.KalmanFitter:
34 kwargs.setdefault("ActsFitterTool", acc.popToolsAndMerge(ActsFitterCfg(flags,
35 fitterKind=fitterKind,
36 UseDirectNavigation = False)))
37 else:
38 kwargs.setdefault("ActsFitterTool", acc.popToolsAndMerge(ActsFitterCfg(flags,
39 fitterKind=fitterKind)))
40
41 acc.setPrivateTools(CompFactory.ActsTrk.ActsToTrkFitterWrapTool(name, **kwargs))
42
43 return acc
44

◆ forceITkActsReFitterAlgCfg()

ComponentAccumulator ActsTrackFittingConfig.forceITkActsReFitterAlgCfg ( flags)

Definition at line 101 of file ActsTrackFittingConfig.py.

101def forceITkActsReFitterAlgCfg(flags) -> ComponentAccumulator:
102 #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
103 flags = flags.cloneAndReplace("Tracking.ActiveConfig",
104 flags.Tracking.ITkPrimaryPassConfig.value)
105 return ActsReFitterAlgCfg(flags)
106
107

◆ writeAdditionalTracks()

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

Definition at line 108 of file ActsTrackFittingConfig.py.

110 newTrackName: str ='ReFitted_Tracks') -> ComponentAccumulator:
111 acc = ComponentAccumulator()
112
113 from xAODTrackingCnv.xAODTrackingCnvConfig import ITkTrackParticleCnvAlgCfg
114
115 if flags.Tracking.doTruth:
116 from InDetConfig.ITkTrackTruthConfig import ITkTrackTruthCfg
117 acc.merge(ITkTrackTruthCfg(flags,
118 Tracks = trackName,
119 DetailedTruth = f"{trackName}DetailedTruth",
120 TracksTruth = f"{trackName}TruthCollection"))
121 acc.merge(ITkTrackTruthCfg(flags,
122 Tracks = newTrackName,
123 DetailedTruth = f"{newTrackName}DetailedTruth",
124 TracksTruth = f"{newTrackName}TruthCollection"))
125
126 acc.merge(ITkTrackParticleCnvAlgCfg(flags,
127 name = f"{trackName}TrackParticleCnvAlg",
128 TrackContainerName = trackName,
129 xAODTrackParticlesFromTracksContainerName = f"{trackName}TrackParticles",
130 TrackTruthContainerName = f"{trackName}TruthCollection"))
131 acc.merge(ITkTrackParticleCnvAlgCfg(flags,
132 name = f"{newTrackName}TrackParticleCnvAlg",
133 TrackContainerName = newTrackName,
134 xAODTrackParticlesFromTracksContainerName = f"{newTrackName}TrackParticles",
135 TrackTruthContainerName = f"{newTrackName}TruthCollection"))
136
137 from OutputStreamAthenaPool.OutputStreamConfig import addToESD, addToAOD
138 itemList = [f"xAOD::TrackParticleContainer#{trackName}TrackParticles",
139 f"xAOD::TrackParticleAuxContainer#{trackName}TrackParticlesAux.",
140 f"xAOD::TrackParticleContainer#{newTrackName}TrackParticles",
141 f"xAOD::TrackParticleAuxContainer#{newTrackName}TrackParticlesAux."]
142
143 acc.merge(addToESD(flags, itemList))
144 acc.merge(addToAOD(flags, itemList))
145 return acc
146