Track Fitting¶
Gaussian Sum Filter¶
The GSF is an extension of the KalmanFilter that allows to handle nongaussian errors by modelling the track state as a gaussian mixture:
A common use case of this is electron fitting. The energyloss of Bremsstrahlung for electrons in matter are highly nongaussian, and thus are not modeled accurately by the default material interactions in the Kalman Filter. Instead, the Bremsstrahlung is modeled as a BetheHeitler distribution, which is approximated as a gaussian mixture.
Implementation¶
To implement the GSF, a special stepper is needed, that can handle a multicomponent state internally: The Acts::MultiEigenStepperLoop
. On a surface with material, the BetheHeitler energyloss distribution is approximated with a fixed number of gaussian distributions for each component. Since the number of components would grow exponentially with each material interaction, components that are close in terms of their Kullback–Leibler divergence are merged to limit the computational cost. The Kalman update mechanism is based on the code for the Acts::KalmanFitter
.
Using the GSF¶
The GSF is implemented in the class Acts::GaussianSumFitter
. The interface of its fit(...)
functions is very similar to the one of the Acts::KalmanFitter
(one for the standard Acts::Navigator
and one for the Acts::DirectNavigator
that takes an additional std::vector<const Acts::Surface *>
as an argument):

template<typename propagator_t, typename traj_t, typename bethe_heitler_approx_t = detail::BetheHeitlerApprox<6, 5>>
struct GaussianSumFitter Public Functions
The fit can be customized with several options, e.g., the maximum number of components. All options can be found in the Acts::GsfOptions
.
To simplify integration, the GSF returns a Acts::KalmanFitterResult
object, the same as the Acts::KalmanFitter
. This allows to use the same analysis tools for both fitters. Currently, the states of the individual components are not returned by the fitter.
A GSF example can be found in the Acts Examples Framework here.
Customizing the BetheHeitler approximation¶
To be able to evaluate the approximation of the BetheHeitler distribution for different materials and thicknesses, the individual gaussian components (weight, mean, variance of the ratio \(E_f/E_i\)) are parameterized as polynomials in \(x/x_0\). The default parametrization uses 6 components and 5th order polynomials.
This approximation of the BetheHeitler distribution is described in Acts::BetheHeitlerApprox
. The class is templated on the number of components and the degree of the polynomial, and is designed to be used with the parameterization files from ATLAS. However, in principle the GSF could be constructed with custom classes with the same interface as Acts::BetheHeitlerApprox
.
For small \(x/x_0\) the Acts::BetheHeitlerApprox
only returns a onecomponent mixture or no change at all. When loading a custom parametrization, it is possible to specify different parameterizations for high and for low \(x/x_0\). The thresholds are currently not configurable.
Kalman Filter¶
Note
This is a stub!