CMS 3D CMS Logo

KalmanVertexUpdator.h
Go to the documentation of this file.
1 #ifndef KalmanVertexUpdator_H
2 #define KalmanVertexUpdator_H
3 
6 
12 template <unsigned int N>
14 
15 public:
16 
19 
25  CachingVertex<N> add(const CachingVertex<N> & oldVertex,
26  const RefCountedVertexTrack track) const;
27 
33  CachingVertex<N> remove(const CachingVertex<N> & oldVertex,
34  const RefCountedVertexTrack track) const;
35 
41  {
42  return new KalmanVertexUpdator(* this);
43  }
44 
49  CachingVertex<N> update(const CachingVertex<N> & oldVertex,
50  const RefCountedVertexTrack track, float weight,
51  int sign ) const;
52 
53  VertexState positionUpdate (const VertexState & oldVertex,
54  const RefCountedLinearizedTrackState linearizedTrack,
55  const float weight, int sign) const;
56 
57  std::pair <bool, double> chi2Increment(const VertexState & oldVertex,
58  const VertexState & newVertexState,
59  const RefCountedLinearizedTrackState linearizedTrack,
60  float weight) const;
61 
62 private:
63 
64  typedef ROOT::Math::SVector<double,N> AlgebraicVectorN;
65  typedef ROOT::Math::SVector<double,N-2> AlgebraicVectorM;
66  typedef ROOT::Math::SMatrix<double,N,3,ROOT::Math::MatRepStd<double,N,3> > AlgebraicMatrixN3;
67  typedef ROOT::Math::SMatrix<double,N,N-2,ROOT::Math::MatRepStd<double,N,N-2> > AlgebraicMatrixNM;
68  typedef ROOT::Math::SMatrix<double,N-2,3,ROOT::Math::MatRepStd<double,N-2,3> > AlgebraicMatrixM3;
69  typedef ROOT::Math::SMatrix<double,N,N,ROOT::Math::MatRepSym<double,N> > AlgebraicSymMatrixNN;
70  typedef ROOT::Math::SMatrix<double,N+1,N+1,ROOT::Math::MatRepSym<double,N+1> > AlgebraicSymMatrixOO;
71  typedef ROOT::Math::SMatrix<double,N+1,N+1,ROOT::Math::MatRepStd<double,N+1,N+1> > AlgebraicMatrixOO;
72  typedef ROOT::Math::SMatrix<double,N-2,N-2,ROOT::Math::MatRepSym<double,N-2> > AlgebraicSymMatrixMM;
73 
75 
76 };
77 
78 #endif
std::pair< bool, double > chi2Increment(const VertexState &oldVertex, const VertexState &newVertexState, const RefCountedLinearizedTrackState linearizedTrack, float weight) const
ROOT::Math::SMatrix< double, N, N-2, ROOT::Math::MatRepStd< double, N, N-2 > > AlgebraicMatrixNM
ROOT::Math::SVector< double, N > AlgebraicVectorN
ROOT::Math::SMatrix< double, N, 3, ROOT::Math::MatRepStd< double, N, 3 > > AlgebraicMatrixN3
Definition: weight.py:1
ROOT::Math::SMatrix< double, N, N, ROOT::Math::MatRepSym< double, N > > AlgebraicSymMatrixNN
ROOT::Math::SMatrix< double, N-2, N-2, ROOT::Math::MatRepSym< double, N-2 > > AlgebraicSymMatrixMM
ROOT::Math::SMatrix< double, N+1, N+1, ROOT::Math::MatRepSym< double, N+1 > > AlgebraicSymMatrixOO
CachingVertex< N >::RefCountedVertexTrack RefCountedVertexTrack
ROOT::Math::SMatrix< double, N+1, N+1, ROOT::Math::MatRepStd< double, N+1, N+1 > > AlgebraicMatrixOO
ROOT::Math::SMatrix< double, N-2, 3, ROOT::Math::MatRepStd< double, N-2, 3 > > AlgebraicMatrixM3
VertexTrack< N >::RefCountedLinearizedTrackState RefCountedLinearizedTrackState
VertexState positionUpdate(const VertexState &oldVertex, const RefCountedLinearizedTrackState linearizedTrack, const float weight, int sign) const
#define N
Definition: blowfish.cc:9
VertexUpdator< N > * clone() const
CachingVertex< N > add(const CachingVertex< N > &oldVertex, const RefCountedVertexTrack track) const
CachingVertex< N > update(const CachingVertex< N > &oldVertex, const RefCountedVertexTrack track, float weight, int sign) const
ROOT::Math::SVector< double, N-2 > AlgebraicVectorM