The Adaptive Gaussian-Sum filter

The Adaptive Gaussian-Sum filter combines the AdaptiveVertexFitter (AVF) the GaussianSumFitter (GSF). Indeed, as in the AVF the computation of the vertex position is independent of the computation of the track weights, the Kalman filter used in the default implementation can be replaced by a GSF. In this way, the complete mixture modeling the track measurements is taken into account, instead of only a single component. This filter is referred to as the {\em Adaptive-GSF} (A-GSF).


An easy way to use the A-GSF is through the AdaptiveGsfVertexFitter. A PSet has tp be given with the parameters to steer the fitter, and the default linearization point finder can optionnaly be replaced. As it is a VertexFitter, it is then to be used as such. Example:

AdaptiveGsfVertexFitter fitter(pSet);
TransientVertex myVertex = fitter.vertex(vectorOfRecTracks);=


Since the A-GSF combines two algorithms, refer


The PSet needed for the configuration has the following structure

     PSet GsfParameters =
       double maxDistance = 0.01
       int32 maxNbrOfIterations = 10
       bool limitComponents = true
        PSet GsfMergerParameters =
                int32 maxNbrComponents = 4
                string merger = "CloseComponentsMerger|"
                string distance = "KullbackLeiblerDistance"

The parameters are the following:

Parameter Name Description Default
maxDistance Convergence criterion (maximum transverse distance between vertex computed in the previous and the current iterations) 0.01
maxNbrOfIterations Maximum number of iterations to perform 10
smoothTracks Specifies whether the tracks have to be smoothed at the end of the fit false
limitComponents Specifies whether the number of components has to be limited to a maximum number during the fit. true
maxNbrComponents Maximum number of components to keep 4
merger Strategy used to limit the number of components CloseComponentsMerger
distance Distance measurement between components KullbackLeiblerDistance

Limitation of the number of components

It has to be kept in mind that without limitation of the number of components during the fit, these will increase exponentially, and the computing time will increase likewise! The merger indicated is the most useful. The other implemented merger is the LargestWeightsStateMerger. Little difference in performance is seen between the two distance measurements implemented, the KullbackLeiblerDistance and the MahalanobisDistance.

Vertex validity and exceptions

The vertex returned may not be valid in some cases. An invalid vertex is returned when the maximum number of iterations is exceeded or the fitted position is out of the tracker bounds. An error message is printed in the log, which for the two above-mentionned cases is:

       The maximum number of steps has been exceeded. Returned vertex is invalid.
       Fitted position is out of tracker bounds. Returned vertex is invalid.
and the user had to check the validity of the vertex with the method isValid().

-- Main.speer - 03 Apr 2007

Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r1 - 2007-04-03 - ThomasSpeer

    • 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-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback