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 public:
17 
23  CachingVertex<N> add(const CachingVertex<N>& oldVertex, const RefCountedVertexTrack track) const override;
24 
30  CachingVertex<N> remove(const CachingVertex<N>& oldVertex, const RefCountedVertexTrack track) const override;
31 
36  VertexUpdator<N>* clone() const override { return new KalmanVertexUpdator(*this); }
37 
42  CachingVertex<N> update(const CachingVertex<N>& oldVertex,
43  const RefCountedVertexTrack track,
44  float weight,
45  int sign) const;
46 
47  VertexState positionUpdate(const VertexState& oldVertex,
48  const RefCountedLinearizedTrackState linearizedTrack,
49  const float weight,
50  int sign) const;
51 
52  std::pair<bool, double> chi2Increment(const VertexState& oldVertex,
53  const VertexState& newVertexState,
54  const RefCountedLinearizedTrackState linearizedTrack,
55  float weight) const;
56 
57 private:
58  typedef ROOT::Math::SVector<double, N> AlgebraicVectorN;
59  typedef ROOT::Math::SVector<double, N - 2> AlgebraicVectorM;
60  typedef ROOT::Math::SMatrix<double, N, 3, ROOT::Math::MatRepStd<double, N, 3> > AlgebraicMatrixN3;
61  typedef ROOT::Math::SMatrix<double, N, N - 2, ROOT::Math::MatRepStd<double, N, N - 2> > AlgebraicMatrixNM;
62  typedef ROOT::Math::SMatrix<double, N - 2, 3, ROOT::Math::MatRepStd<double, N - 2, 3> > AlgebraicMatrixM3;
63  typedef ROOT::Math::SMatrix<double, N, N, ROOT::Math::MatRepSym<double, N> > AlgebraicSymMatrixNN;
64  typedef ROOT::Math::SMatrix<double, N + 1, N + 1, ROOT::Math::MatRepSym<double, N + 1> > AlgebraicSymMatrixOO;
65  typedef ROOT::Math::SMatrix<double, N + 1, N + 1, ROOT::Math::MatRepStd<double, N + 1, N + 1> > AlgebraicMatrixOO;
66  typedef ROOT::Math::SMatrix<double, N - 2, N - 2, ROOT::Math::MatRepSym<double, N - 2> > AlgebraicSymMatrixMM;
67 
69 };
70 
71 #endif
std::pair< bool, double > chi2Increment(const VertexState &oldVertex, const VertexState &newVertexState, const RefCountedLinearizedTrackState linearizedTrack, float weight) const
CachingVertex< N > add(const CachingVertex< N > &oldVertex, const RefCountedVertexTrack track) const override
ROOT::Math::SMatrix< double, N-2, 3, ROOT::Math::MatRepStd< double, N-2, 3 > > AlgebraicMatrixM3
Definition: weight.py:1
ROOT::Math::SMatrix< double, N, 3, ROOT::Math::MatRepStd< double, N, 3 > > AlgebraicMatrixN3
CachingVertex< N >::RefCountedVertexTrack RefCountedVertexTrack
ROOT::Math::SMatrix< double, N-2, N-2, ROOT::Math::MatRepSym< double, N-2 > > AlgebraicSymMatrixMM
ROOT::Math::SVector< double, N-2 > AlgebraicVectorM
ROOT::Math::SMatrix< double, N+1, N+1, ROOT::Math::MatRepSym< double, N+1 > > AlgebraicSymMatrixOO
ROOT::Math::SVector< double, N > AlgebraicVectorN
VertexTrack< N >::RefCountedLinearizedTrackState RefCountedLinearizedTrackState
VertexState positionUpdate(const VertexState &oldVertex, const RefCountedLinearizedTrackState linearizedTrack, const float weight, int sign) const
VertexUpdator< N > * clone() const override
#define N
Definition: blowfish.cc:9
ROOT::Math::SMatrix< double, N+1, N+1, ROOT::Math::MatRepStd< double, N+1, N+1 > > AlgebraicMatrixOO
CachingVertex< N > update(const CachingVertex< N > &oldVertex, const RefCountedVertexTrack track, float weight, int sign) const
ROOT::Math::SMatrix< double, N, N, ROOT::Math::MatRepSym< double, N > > AlgebraicSymMatrixNN
ROOT::Math::SMatrix< double, N, N-2, ROOT::Math::MatRepStd< double, N, N-2 > > AlgebraicMatrixNM