CMS 3D CMS Logo

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 
38 public:
39 
40  typedef ROOT::Math::SVector<double,N> AlgebraicVectorN;
41  typedef ROOT::Math::SVector<double,N-2> AlgebraicVectorM;
42  typedef ROOT::Math::SMatrix<double,N,3,ROOT::Math::MatRepStd<double,N,3> > AlgebraicMatrixN3;
43  typedef ROOT::Math::SMatrix<double,N,N-2,ROOT::Math::MatRepStd<double,N,N-2> > AlgebraicMatrixNM;
44  typedef ROOT::Math::SMatrix<double,N-2,3,ROOT::Math::MatRepStd<double,N-2,3> > AlgebraicMatrixM3;
45  typedef ROOT::Math::SMatrix<double,N,N,ROOT::Math::MatRepSym<double,N> > AlgebraicSymMatrixNN;
46  typedef ROOT::Math::SMatrix<double,N-2,N-2,ROOT::Math::MatRepSym<double,N-2> > AlgebraicSymMatrixMM;
47  typedef ROOT::Math::SMatrix<double,N+1,N+1,ROOT::Math::MatRepSym<double,N+1> > AlgebraicSymMatrixOO;
48 
50 
51  ~LinearizedTrackState() override{}
52 
58  (const GlobalPoint & newLP) const = 0;
59 
62  virtual const GlobalPoint & linearizationPoint() const = 0;
63 
67  virtual const AlgebraicVectorN & constantTerm() const = 0;
68 
72  virtual const AlgebraicMatrixN3 & positionJacobian() const = 0;
73 
77  virtual const AlgebraicMatrixNM & momentumJacobian() const = 0;
78 
81  virtual const AlgebraicVectorN & parametersFromExpansion() const = 0;
82 
86  virtual AlgebraicVectorN predictedStateParameters() const = 0;
87 
91  virtual AlgebraicVectorM predictedStateMomentumParameters() const = 0;
92 
97  virtual AlgebraicSymMatrixNN predictedStateWeight(int & error) const = 0;
98 
102  virtual AlgebraicSymMatrixMM predictedStateMomentumError() const = 0;
103 
107  virtual AlgebraicSymMatrixNN predictedStateError() const = 0;
108 
109  virtual bool hasError() const = 0;
110 
111  virtual TrackCharge charge() const = 0;
112 
115 // virtual ImpactPointMeasurement impactPointMeasurement() const = 0;
116 
117  virtual bool operator ==(LinearizedTrackState<N> & other) const = 0;
118 
122  virtual RefCountedRefittedTrackState createRefittedTrackState(
123  const GlobalPoint & vertexPosition,
124  const AlgebraicVectorM & vectorParameters,
125  const AlgebraicSymMatrixOO & covarianceMatrix) const = 0;
126 
130  virtual AlgebraicVectorN refittedParamFromEquation(
131  const RefCountedRefittedTrackState & theRefittedState) const = 0;
132 
133  virtual inline void checkParameters(AlgebraicVectorN & parameters) const
134  {}
135 
136  virtual double weightInMixture() const = 0;
137 
138  virtual std::vector< ReferenceCountingPointer<LinearizedTrackState<N> > > components()
139  const = 0;
140 
141  virtual reco::TransientTrack track() const = 0;
142 
143  virtual bool isValid() const { return true; }
144 };
145 
146 #endif
virtual AlgebraicVectorN predictedStateParameters() const =0
virtual AlgebraicSymMatrixNN predictedStateWeight(int &error) const =0
ROOT::Math::SVector< double, N > AlgebraicVectorN
virtual TrackCharge charge() const =0
ROOT::Math::SMatrix< double, N, N, ROOT::Math::MatRepSym< double, N > > AlgebraicSymMatrixNN
virtual AlgebraicVectorM predictedStateMomentumParameters() const =0
virtual const AlgebraicMatrixN3 & positionJacobian() const =0
ROOT::Math::SMatrix< double, N-2, 3, ROOT::Math::MatRepStd< double, N-2, 3 > > AlgebraicMatrixM3
virtual double weightInMixture() const =0
virtual ReferenceCountingPointer< LinearizedTrackState< N > > stateWithNewLinearizationPoint(const GlobalPoint &newLP) const =0
int TrackCharge
Definition: TrackCharge.h:4
ROOT::Math::SMatrix< double, N-2, N-2, ROOT::Math::MatRepSym< double, N-2 > > AlgebraicSymMatrixMM
virtual reco::TransientTrack track() const =0
ROOT::Math::SMatrix< double, N, N-2, ROOT::Math::MatRepStd< double, N, N-2 > > AlgebraicMatrixNM
ROOT::Math::SVector< double, N-2 > AlgebraicVectorM
virtual const AlgebraicVectorN & parametersFromExpansion() const =0
virtual bool operator==(LinearizedTrackState< N > &other) const =0
ReferenceCountingPointer< RefittedTrackState< N > > RefCountedRefittedTrackState
virtual void checkParameters(AlgebraicVectorN &parameters) const
virtual std::vector< ReferenceCountingPointer< LinearizedTrackState< N > > > components() const =0
virtual AlgebraicSymMatrixNN predictedStateError() const =0
virtual bool isValid() const
virtual const AlgebraicMatrixNM & momentumJacobian() const =0
virtual const GlobalPoint & linearizationPoint() const =0
#define N
Definition: blowfish.cc:9
ROOT::Math::SMatrix< double, N+1, N+1, ROOT::Math::MatRepSym< double, N+1 > > AlgebraicSymMatrixOO
virtual bool hasError() const =0
virtual RefCountedRefittedTrackState createRefittedTrackState(const GlobalPoint &vertexPosition, const AlgebraicVectorM &vectorParameters, const AlgebraicSymMatrixOO &covarianceMatrix) const =0
virtual const AlgebraicVectorN & constantTerm() const =0
ROOT::Math::SMatrix< double, N, 3, ROOT::Math::MatRepStd< double, N, 3 > > AlgebraicMatrixN3
virtual AlgebraicVectorN refittedParamFromEquation(const RefCountedRefittedTrackState &theRefittedState) const =0
virtual AlgebraicSymMatrixMM predictedStateMomentumError() const =0