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 
6 //#include "TrackingTools/TrajectoryState/interface/ProxyBase.h"
12 
13 #define SMATRIX_USE_CONSTEXPR
14 #include "Math/SMatrix.h"
15 
17 #include <vector>
18 
37 template <unsigned int N>
39 
40 public:
41 
42  typedef ROOT::Math::SVector<double,N> AlgebraicVectorN;
43  typedef ROOT::Math::SVector<double,N-2> AlgebraicVectorM;
44  typedef ROOT::Math::SMatrix<double,N,3,ROOT::Math::MatRepStd<double,N,3> > AlgebraicMatrixN3;
45  typedef ROOT::Math::SMatrix<double,N,N-2,ROOT::Math::MatRepStd<double,N,N-2> > AlgebraicMatrixNM;
46  typedef ROOT::Math::SMatrix<double,N-2,3,ROOT::Math::MatRepStd<double,N-2,3> > AlgebraicMatrixM3;
47  typedef ROOT::Math::SMatrix<double,N,N,ROOT::Math::MatRepSym<double,N> > AlgebraicSymMatrixNN;
48  typedef ROOT::Math::SMatrix<double,N-2,N-2,ROOT::Math::MatRepSym<double,N-2> > AlgebraicSymMatrixMM;
49  typedef ROOT::Math::SMatrix<double,N+1,N+1,ROOT::Math::MatRepSym<double,N+1> > AlgebraicSymMatrixOO;
50 
52 
53  ~LinearizedTrackState() override{}
54 
60  (const GlobalPoint & newLP) const = 0;
61 
64  virtual const GlobalPoint & linearizationPoint() const = 0;
65 
69  virtual const AlgebraicVectorN & constantTerm() const = 0;
70 
74  virtual const AlgebraicMatrixN3 & positionJacobian() const = 0;
75 
79  virtual const AlgebraicMatrixNM & momentumJacobian() const = 0;
80 
83  virtual const AlgebraicVectorN & parametersFromExpansion() const = 0;
84 
88  virtual AlgebraicVectorN predictedStateParameters() const = 0;
89 
93  virtual AlgebraicVectorM predictedStateMomentumParameters() const = 0;
94 
99  virtual AlgebraicSymMatrixNN predictedStateWeight(int & error) const = 0;
100 
104  virtual AlgebraicSymMatrixMM predictedStateMomentumError() const = 0;
105 
109  virtual AlgebraicSymMatrixNN predictedStateError() const = 0;
110 
111  virtual bool hasError() const = 0;
112 
113  virtual TrackCharge charge() const = 0;
114 
117 // virtual ImpactPointMeasurement impactPointMeasurement() const = 0;
118 
119  virtual bool operator ==(LinearizedTrackState<N> & other) const = 0;
120 
124  virtual RefCountedRefittedTrackState createRefittedTrackState(
125  const GlobalPoint & vertexPosition,
126  const AlgebraicVectorM & vectorParameters,
127  const AlgebraicSymMatrixOO & covarianceMatrix) const = 0;
128 
132  virtual AlgebraicVectorN refittedParamFromEquation(
133  const RefCountedRefittedTrackState & theRefittedState) const = 0;
134 
135  virtual inline void checkParameters(AlgebraicVectorN & parameters) const
136  {}
137 
138  virtual double weightInMixture() const = 0;
139 
140  virtual std::vector< ReferenceCountingPointer<LinearizedTrackState<N> > > components()
141  const = 0;
142 
143  virtual reco::TransientTrack track() const = 0;
144 
145  virtual bool isValid() const { return true; }
146 };
147 
148 #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