CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
LinearizedTrackState.h
Go to the documentation of this file.
1 #ifndef LinearizedTrackState_H
2 #define LinearizedTrackState_H
3 
4 //#include "CommonReco/CommonVertex/interface/ImpactPointMeasurement.h"
5 
10 
11 #define SMATRIX_USE_CONSTEXPR
12 #include "Math/SMatrix.h"
13 
15 #include <vector>
16 
35 template <unsigned int N>
37 public:
38  typedef ROOT::Math::SVector<double, N> AlgebraicVectorN;
39  typedef ROOT::Math::SVector<double, N - 2> AlgebraicVectorM;
40  typedef ROOT::Math::SMatrix<double, N, 3, ROOT::Math::MatRepStd<double, N, 3> > AlgebraicMatrixN3;
41  typedef ROOT::Math::SMatrix<double, N, N - 2, ROOT::Math::MatRepStd<double, N, N - 2> > AlgebraicMatrixNM;
42  typedef ROOT::Math::SMatrix<double, N - 2, 3, ROOT::Math::MatRepStd<double, N - 2, 3> > AlgebraicMatrixM3;
43  typedef ROOT::Math::SMatrix<double, N, N, ROOT::Math::MatRepSym<double, N> > AlgebraicSymMatrixNN;
44  typedef ROOT::Math::SMatrix<double, N - 2, N - 2, ROOT::Math::MatRepSym<double, N - 2> > AlgebraicSymMatrixMM;
45  typedef ROOT::Math::SMatrix<double, N + 1, N + 1, ROOT::Math::MatRepSym<double, N + 1> > AlgebraicSymMatrixOO;
46 
48 
49  ~LinearizedTrackState() override {}
50 
56  const GlobalPoint& newLP) const = 0;
57 
60  virtual const GlobalPoint& linearizationPoint() const = 0;
61 
65  virtual const AlgebraicVectorN& constantTerm() const = 0;
66 
70  virtual const AlgebraicMatrixN3& positionJacobian() const = 0;
71 
75  virtual const AlgebraicMatrixNM& momentumJacobian() const = 0;
76 
79  virtual const AlgebraicVectorN& parametersFromExpansion() const = 0;
80 
84  virtual AlgebraicVectorN predictedStateParameters() const = 0;
85 
90 
95  virtual AlgebraicSymMatrixNN predictedStateWeight(int& error) const = 0;
96 
101 
105  virtual AlgebraicSymMatrixNN predictedStateError() const = 0;
106 
107  virtual bool hasError() const = 0;
108 
109  virtual TrackCharge charge() const = 0;
110 
113  // virtual ImpactPointMeasurement impactPointMeasurement() const = 0;
114 
115  virtual bool operator==(LinearizedTrackState<N>& other) const = 0;
116 
121  const AlgebraicVectorM& vectorParameters,
122  const AlgebraicSymMatrixOO& covarianceMatrix) const = 0;
123 
127  virtual AlgebraicVectorN refittedParamFromEquation(const RefCountedRefittedTrackState& theRefittedState) const = 0;
128 
129  virtual inline void checkParameters(AlgebraicVectorN& parameters) const {}
130 
131  virtual double weightInMixture() const = 0;
132 
133  virtual std::vector<ReferenceCountingPointer<LinearizedTrackState<N> > > components() const = 0;
134 
135  virtual reco::TransientTrack track() const = 0;
136 
137  virtual bool isValid() const { return true; }
138 };
139 
140 #endif
virtual bool operator==(LinearizedTrackState< N > &other) const =0
virtual const AlgebraicVectorN & constantTerm() const =0
ROOT::Math::SMatrix< double, N+1, N+1, ROOT::Math::MatRepSym< double, N+1 > > AlgebraicSymMatrixOO
ROOT::Math::SVector< double, N > AlgebraicVectorN
virtual const AlgebraicMatrixNM & momentumJacobian() const =0
virtual ReferenceCountingPointer< LinearizedTrackState< N > > stateWithNewLinearizationPoint(const GlobalPoint &newLP) const =0
ROOT::Math::SMatrix< double, N, 3, ROOT::Math::MatRepStd< double, N, 3 > > AlgebraicMatrixN3
ROOT::Math::SVector< double, N-2 > AlgebraicVectorM
virtual AlgebraicVectorM predictedStateMomentumParameters() const =0
virtual const AlgebraicVectorN & parametersFromExpansion() const =0
int TrackCharge
Definition: TrackCharge.h:4
virtual RefCountedRefittedTrackState createRefittedTrackState(const GlobalPoint &vertexPosition, const AlgebraicVectorM &vectorParameters, const AlgebraicSymMatrixOO &covarianceMatrix) const =0
virtual AlgebraicSymMatrixNN predictedStateError() const =0
ROOT::Math::SMatrix< double, N-2, N-2, ROOT::Math::MatRepSym< double, N-2 > > AlgebraicSymMatrixMM
virtual AlgebraicVectorN predictedStateParameters() const =0
virtual AlgebraicVectorN refittedParamFromEquation(const RefCountedRefittedTrackState &theRefittedState) const =0
virtual const GlobalPoint & linearizationPoint() const =0
ROOT::Math::SMatrix< double, N-2, 3, ROOT::Math::MatRepStd< double, N-2, 3 > > AlgebraicMatrixM3
ReferenceCountingPointer< RefittedTrackState< N > > RefCountedRefittedTrackState
virtual double weightInMixture() const =0
virtual void checkParameters(AlgebraicVectorN &parameters) const
virtual bool isValid() const
virtual std::vector< ReferenceCountingPointer< LinearizedTrackState< N > > > components() const =0
#define N
Definition: blowfish.cc:9
ROOT::Math::SMatrix< double, N, N, ROOT::Math::MatRepSym< double, N > > AlgebraicSymMatrixNN
virtual bool hasError() const =0
virtual AlgebraicSymMatrixNN predictedStateWeight(int &error) const =0
virtual const AlgebraicMatrixN3 & positionJacobian() const =0
virtual AlgebraicSymMatrixMM predictedStateMomentumError() const =0
virtual TrackCharge charge() const =0
ROOT::Math::SMatrix< double, N, N-2, ROOT::Math::MatRepStd< double, N, N-2 > > AlgebraicMatrixNM
virtual reco::TransientTrack track() const =0