Track parameter re-estimate after vertex fit

Complete: 4


After a vertex fit, the track parameters can be re-estimated at the fitted vertex, effectively using this vertex as a constraint (smoothing). It should be kept in mind that only the parameters at the vertex a re-estimated, and not the measurements along the track. These will still be those estimated during the track fit.

The complete mechanism to get the result was implemented from 1.3.0 and onwards, an has been stable in current releases. If you use version 1.2.X, smoothing can still be done, but accessing the result will be somewhat more complicated.

Current Usage

At present, only the Kalman filter allows to re-estimated the track parameters. The only thing which needs to be done is, when instantiating the KalmanVertexFitter, to set the boolean parameter to true:

KalmanVertexFitter fitter(true);
TransientVertex myVertex = fitter.vertex(vectorOfRecTracks);

All the information is then accessed via the TransientVertex. The following methods are of interest:

  • bool hasRefittedTracks () const
    Returns true if, for at least one of the original tracks, the refitted track is available.
  • std::vector< reco::TransientTrack > refittedTracks () const
    Returns all the refitted tracks available.
  • reco::TransientTrack refittedTrack (const reco::TransientTrack &track) const
    Returns the refitted track which corresponds to a particular original Track. Throws an exception if now refitted tracks are stored ot the track is not found in the list.

The refitted tracks are returned as reco::TransientTrack. These TransientTrack can be used as any other TransientTrack, but does not have a link to the original track, and does not contain the original hits, etc.

Single Track vertex constraint

It is also possible to constrain the track parameters of a single track with an already reconstructed vertex, e.g. a primary vertex, without doing a vertex-fit. The class to be used is SingleTrackVertexConstraint, which uses internall the Kalman filter:

   stvc SingleTrackVertexConstraint;
   pair<TransientTrack, float> result = stvc.constrain(theOriginalTransientTrack, vertexPosition, vertexError);

In the pair, you get the refitted TransientTrack, and the float is the smoothed track-chi2, which is also the track-vertex compatibility.

Refitting tracks by fitting the individual hits

Tracks for which the creation vertex is known, or using a beam spot constraint, can also be refitted by fitting to the individual hits. This method is somewhat slower than that described above and cannot be done on AOD. However, it is also more accurate than the single track vertex constraint method described above. This refitting method is described in SWGuideRefitterWithConstraints.

Review Status

Editor/Reviewer and date Comments
Main.speer - 15 May 2007 Page Author
Main.speer - 24 Jul 2007 Add SingleTrackVertexConstraint item
JennyWilliams - 17 Dec 2007 Added refitter with vertex item

Responsible: Main.speer (Thomas Speer)
Last reviewed by:

Edit | Attach | Watch | Print version | History: r5 < r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r5 - 2009-01-08 - 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-2023 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