CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros 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 
6 //#include "TrackingTools/TrajectoryState/interface/ProxyBase.h"
12 #include "Math/SMatrix.h"
14 
16 #include <vector>
17 
36 template <unsigned int N>
38 
39 public:
40 
41  typedef ROOT::Math::SVector<double,N> AlgebraicVectorN;
42  typedef ROOT::Math::SVector<double,N-2> AlgebraicVectorM;
43  typedef ROOT::Math::SMatrix<double,N,3,ROOT::Math::MatRepStd<double,N,3> > AlgebraicMatrixN3;
44  typedef ROOT::Math::SMatrix<double,N,N-2,ROOT::Math::MatRepStd<double,N,N-2> > AlgebraicMatrixNM;
45  typedef ROOT::Math::SMatrix<double,N-2,3,ROOT::Math::MatRepStd<double,N-2,3> > AlgebraicMatrixM3;
46  typedef ROOT::Math::SMatrix<double,N,N,ROOT::Math::MatRepSym<double,N> > AlgebraicSymMatrixNN;
47  typedef ROOT::Math::SMatrix<double,N-2,N-2,ROOT::Math::MatRepSym<double,N-2> > AlgebraicSymMatrixMM;
48  typedef ROOT::Math::SMatrix<double,N+1,N+1,ROOT::Math::MatRepSym<double,N+1> > AlgebraicSymMatrixOO;
49 
51 
53 
59  (const GlobalPoint & newLP) const = 0;
60 
63  virtual const GlobalPoint & linearizationPoint() const = 0;
64 
68  virtual const AlgebraicVectorN & constantTerm() const = 0;
69 
73  virtual const AlgebraicMatrixN3 & positionJacobian() const = 0;
74 
78  virtual const AlgebraicMatrixNM & momentumJacobian() const = 0;
79 
82  virtual const AlgebraicVectorN & parametersFromExpansion() const = 0;
83 
87  virtual AlgebraicVectorN predictedStateParameters() const = 0;
88 
93 
98  virtual AlgebraicSymMatrixNN predictedStateWeight(int & error) const = 0;
99 
104 
108  virtual AlgebraicSymMatrixNN predictedStateError() const = 0;
109 
110  virtual bool hasError() const = 0;
111 
112  virtual TrackCharge charge() const = 0;
113 
116 // virtual ImpactPointMeasurement impactPointMeasurement() const = 0;
117 
118  virtual bool operator ==(LinearizedTrackState<N> & other) const = 0;
119 
124  const GlobalPoint & vertexPosition,
125  const AlgebraicVectorM & vectorParameters,
126  const AlgebraicSymMatrixOO & covarianceMatrix) const = 0;
127 
132  const RefCountedRefittedTrackState & theRefittedState) const = 0;
133 
134  virtual inline void checkParameters(AlgebraicVectorN & parameters) const
135  {}
136 
137  virtual double weightInMixture() const = 0;
138 
139  virtual std::vector< ReferenceCountingPointer<LinearizedTrackState<N> > > components()
140  const = 0;
141 
142  virtual reco::TransientTrack track() const = 0;
143 
144  virtual bool isValid() const { return true; }
145 };
146 
147 #endif
virtual bool operator==(LinearizedTrackState< N > &other) const =0
virtual const AlgebraicVectorN & constantTerm() const =0
virtual const AlgebraicMatrixNM & momentumJacobian() const =0
ROOT::Math::SVector< double, N > AlgebraicVectorN
virtual ReferenceCountingPointer< LinearizedTrackState< N > > stateWithNewLinearizationPoint(const GlobalPoint &newLP) const =0
ROOT::Math::SMatrix< double, N, N, ROOT::Math::MatRepSym< double, N > > AlgebraicSymMatrixNN
ROOT::Math::SMatrix< double, N-2, 3, ROOT::Math::MatRepStd< double, N-2, 3 > > AlgebraicMatrixM3
virtual AlgebraicVectorM predictedStateMomentumParameters() const =0
virtual const AlgebraicVectorN & parametersFromExpansion() const =0
int TrackCharge
Definition: TrackCharge.h:4
ROOT::Math::SMatrix< double, N-2, N-2, ROOT::Math::MatRepSym< double, N-2 > > AlgebraicSymMatrixMM
virtual RefCountedRefittedTrackState createRefittedTrackState(const GlobalPoint &vertexPosition, const AlgebraicVectorM &vectorParameters, const AlgebraicSymMatrixOO &covarianceMatrix) const =0
virtual AlgebraicSymMatrixNN predictedStateError() const =0
ROOT::Math::SMatrix< double, N, N-2, ROOT::Math::MatRepStd< double, N, N-2 > > AlgebraicMatrixNM
virtual AlgebraicVectorN predictedStateParameters() const =0
virtual AlgebraicVectorN refittedParamFromEquation(const RefCountedRefittedTrackState &theRefittedState) const =0
ROOT::Math::SVector< double, N-2 > AlgebraicVectorM
virtual const GlobalPoint & linearizationPoint() const =0
ReferenceCountingPointer< RefittedTrackState< N > > RefCountedRefittedTrackState
virtual double weightInMixture() const =0
virtual void checkParameters(AlgebraicVectorN &parameters) const
virtual bool isValid() const
ROOT::Math::SMatrix< double, N+1, N+1, ROOT::Math::MatRepSym< double, N+1 > > AlgebraicSymMatrixOO
virtual bool hasError() const =0
virtual std::vector< ReferenceCountingPointer< LinearizedTrackState< N > > > components() const =0
virtual AlgebraicSymMatrixNN predictedStateWeight(int &error) const =0
virtual const AlgebraicMatrixN3 & positionJacobian() const =0
ROOT::Math::SMatrix< double, N, 3, ROOT::Math::MatRepStd< double, N, 3 > > AlgebraicMatrixN3
virtual AlgebraicSymMatrixMM predictedStateMomentumError() const =0
virtual TrackCharge charge() const =0
virtual reco::TransientTrack track() const =0