CMS 3D CMS Logo

Public Types | Public Member Functions | Private Attributes

KalmanVertexTrackUpdator< N > Class Template Reference

#include <KalmanVertexTrackUpdator.h>

Inheritance diagram for KalmanVertexTrackUpdator< N >:
VertexTrackUpdator< N >

List of all members.

Public Types

typedef ROOT::Math::SMatrix
< double, 3, N-2,
ROOT::Math::MatRepStd< double,
3, N-2 > > 
AlgebraicMatrix3M
typedef ROOT::Math::SMatrix
< double, N+1, N+1,
ROOT::Math::MatRepSym< double,
N+1 > > 
AlgebraicSymMatrixOO
typedef VertexTrack< N >
::RefCountedLinearizedTrackState 
RefCountedLinearizedTrackState
typedef VertexTrack< N >
::RefCountedRefittedTrackState 
RefCountedRefittedTrackState
typedef CachingVertex< N >
::RefCountedVertexTrack 
RefCountedVertexTrack
typedef std::pair
< RefCountedRefittedTrackState,
AlgebraicSymMatrixOO
trackMatrixPair

Public Member Functions

KalmanVertexTrackUpdator< N > * clone () const
 KalmanVertexTrackUpdator ()
trackMatrixPair trackRefit (const VertexState &vertex, RefCountedLinearizedTrackState linTrackState, float weight) const
RefCountedVertexTrack update (const CachingVertex< N > &vertex, RefCountedVertexTrack track) const
virtual ~KalmanVertexTrackUpdator ()

Private Attributes

KVFHelper< N > helper
VertexTrackFactory< N > theVTFactory
KalmanVertexUpdator< N > updator

Detailed Description

template<unsigned int N>
class KalmanVertexTrackUpdator< N >

Performs the refit of the tracks with the vertex constraint, using the Kalman filter algorithms.

Definition at line 17 of file KalmanVertexTrackUpdator.h.


Member Typedef Documentation

template<unsigned int N>
typedef ROOT::Math::SMatrix<double,3,N-2,ROOT::Math::MatRepStd<double,3,N-2> > KalmanVertexTrackUpdator< N >::AlgebraicMatrix3M

Definition at line 55 of file KalmanVertexTrackUpdator.h.

template<unsigned int N>
typedef ROOT::Math::SMatrix<double,N+1,N+1,ROOT::Math::MatRepSym<double,N+1> > KalmanVertexTrackUpdator< N >::AlgebraicSymMatrixOO

Definition at line 56 of file KalmanVertexTrackUpdator.h.

Definition at line 22 of file KalmanVertexTrackUpdator.h.

Definition at line 23 of file KalmanVertexTrackUpdator.h.

Definition at line 21 of file KalmanVertexTrackUpdator.h.

template<unsigned int N>
typedef std::pair< RefCountedRefittedTrackState, AlgebraicSymMatrixOO > KalmanVertexTrackUpdator< N >::trackMatrixPair

Definition at line 57 of file KalmanVertexTrackUpdator.h.


Constructor & Destructor Documentation

template<unsigned int N>
KalmanVertexTrackUpdator< N >::KalmanVertexTrackUpdator ( ) [inline]

Default constructor

Definition at line 30 of file KalmanVertexTrackUpdator.h.

Referenced by KalmanVertexTrackUpdator< 5 >::clone().

{}
template<unsigned int N>
virtual KalmanVertexTrackUpdator< N >::~KalmanVertexTrackUpdator ( ) [inline, virtual]

Definition at line 32 of file KalmanVertexTrackUpdator.h.

{}

Member Function Documentation

template<unsigned int N>
KalmanVertexTrackUpdator<N>* KalmanVertexTrackUpdator< N >::clone ( void  ) const [inline, virtual]

Clone method

Implements VertexTrackUpdator< N >.

Definition at line 50 of file KalmanVertexTrackUpdator.h.

  {
    return new KalmanVertexTrackUpdator(*this);
  }
template<unsigned int N>
trackMatrixPair KalmanVertexTrackUpdator< N >::trackRefit ( const VertexState vertex,
RefCountedLinearizedTrackState  linTrackState,
float  weight 
) const

Refit of the track with the vertex constraint.

Parameters:
vertexThe vertex which has to be used as constraint.
trackThe track to refit.
Returns:
The refitted state with the track-to-vertex covariance.

Referenced by GsfVertexSmoother::createNewComponent().

template<unsigned int N>
CachingVertex< N >::RefCountedVertexTrack KalmanVertexTrackUpdator< N >::update ( const CachingVertex< N > &  vertex,
RefCountedVertexTrack  track 
) const

Refit of the track with the vertex constraint.

Parameters:
vertexThe vertex which has to be used as constraint.
trackThe track to refit.
Returns:
The VertexTrack containing the refitted track and the track-to-vertex covariance.

Definition at line 12 of file KalmanVertexTrackUpdator.cc.

References query::result, and CachingVertex< N >::vertexState().

{
  trackMatrixPair thePair = 
        trackRefit(vertex.vertexState(), track->linearizedTrack(), track->weight() );

  VertexState rVert = updator.positionUpdate (vertex.vertexState(), track->linearizedTrack(),
                        track->weight(), -1);

  std::pair<bool, double> result = helper.trackParameterChi2(track->linearizedTrack(), thePair.first);
  float smoothedChi2 = helper.vertexChi2(rVert, vertex.vertexState()) + result.second;

  return theVTFactory.vertexTrack(track->linearizedTrack(),
        vertex.vertexState(), thePair.first, smoothedChi2, thePair.second,
        track->weight());
}

Member Data Documentation

template<unsigned int N>
KVFHelper<N> KalmanVertexTrackUpdator< N >::helper [private]

Definition at line 73 of file KalmanVertexTrackUpdator.h.

template<unsigned int N>
VertexTrackFactory<N> KalmanVertexTrackUpdator< N >::theVTFactory [private]

Definition at line 72 of file KalmanVertexTrackUpdator.h.

template<unsigned int N>
KalmanVertexUpdator<N> KalmanVertexTrackUpdator< N >::updator [private]

Definition at line 74 of file KalmanVertexTrackUpdator.h.