GSF Fitter Algorithm

Complete: 4

Goal of the page

This page gives a short introduction into the implementation and use of the Gaussian Sum Filter for electron track reconstruction.


W. Adam


The Gaussian Sum Filter is a non-linear extension of the Kalman Filter. It is designed to deal with non-Gaussian distributions of the stochastic terms involved in track fitting: e.g., measurement errors, energy loss or multiple scattering. The distributions, which have to be known in advance, are modeled as a weighted sum of Gaussian distributions, a "Gaussian Sum". Each operation involving such a distribution (the update of the track parameters with a measurement or the crossing of a layer of material) will lead to a description of track parameters in form of a Gaussian Sum. Repeated operations would lead to a combinatorial explosion, which has to be controlled by repeated recombination of components. The multi-component description of the track parameters can be used in several ways. The basic way of obtaining a final estimate is the use of the first and second moments of the mixture ("mean"). An alternative is the use of the mode, i.e., the most probable value.

The current implementation is designed to deal with the radiative energy loss of electrons. Several Gaussian sums with different numbers of components describing the fractional energy loss according to Bethe-Heitler have been provided as a function of the path length in the material. The raw result of the GSF fit is the same (transient) Trajectory object used by other fitters. The multi-component nature of the result is hidden in the TrajectoryStateOnSurface (TSOS) objects stored in the Trajectory. The final result intended for users is a GsfTrack. In addition to the normal Track functionality it stores the momentum vector derived from the mode (from CMSSW_2_0_X onwards) and gives access to a GsfTrackExtra object, which contains the full Gaussian mixture of the local track parameters at the first and last hit.

The algorithm is documented in J. Phys. G 31 (2005) N9-N20 and references therein.

Usage of the algorithm

The GSF can be used to fit electron tracks, including those with substantial radiative energy loss. The handling of a large number of components makes the GSF fit substantially slower than the standard KF - it has to be applied to a preselected set of electron candidates. The resolution of the mean of the mixture is better than the one obtained by a standard Kalman Filter run on the full track. A much better resolution can be obtained by using the mode, at the expense of slightly increased tails. Currently the mode is only calculated in 1D, i.e., on marginal distributions.

The GSF is part of the standard electron reconstruction sequence - see the SWGuideEgammaStandardSequences . GSF tracks are produced by the GsfTrackProducer. All configuration files reside in TrackingTools/GsfTracking/python. A configuration fragment for the track producer can be found in - the parameters are equivalent to the ones of the KFTrackProducer. The GSF-specific parameters appear in and :

Merger (default from CloseComponentsMerger5D)
it reduces the number of components after each propagation step to MaxComponents ;
GeometricalPropagator (default is the AnalyticalPropagator)
the module used for propagating the track between modules. assuming no material ;
MaterialEffectsUpdator (default from
the description of the material effects. It reads the parametrization of the radiative energy loss from the file indicated by BetheHeitlerParametrization :.

Software architecture

Thanks to the similarities in the algorithm and the polymorphism of the TSOS the GSF can reuse many of the components of the KF. The main components needed in addition to the KF can be found in TrackingTools/GsfTracking

The description of the material effects for electrons
The GsfMaterialEffectsUpdator is an extension of the normal material effects generating multi-component TSOSs. The GsfBetheHeitlerUpdator is the concrete implementation for the electron energy loss. Normal material effect classes can be used via a GsfMaterialEffectsAdapter. The GSF material effects are used in a transparent way by the GsfPropagatorWithMaterial.
The update of a multi-component TSOS with a measurement and chi2 compatibility
The GsfMultiStateUpdator updates a multi-component track state with a (single component) RecHit. The GsfChi2MeasurementEstimator calculates the chi2 between a multi-component state and a hit.
The merging of components
The current standard is the CloseComponentsMerger. It can be configured with the distance measure (used to determine how close two components are) and with the maximum number of components to be left after merging. The actual implementation uses generic Gaussian Sum utility classes located in TrackingTools/GsfTools .
Fitting and smoothing
GsfTrajectoryFitter and GsfTrajectorySmoother are very similar to the corresponding KF. In addition to the normal propagation / update cycle they include a merging stage.

The data formats are defined in DataFormats/GsfTrackReco .


Review status

WolfgangAdam - 30 Jul 2009 First version
KatiLassilaPerini - 29 Jan 2008 created template page

Responsible: ResponsibleIndividual
Last reviewed by: Most recent reviewer

Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r4 - 2009-07-30 - WolfgangAdam
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    CMSPublic All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback