CMS 3D CMS Logo

PerigeeLinearizedTrackState.h
Go to the documentation of this file.
1 #ifndef PerigeeLinearizedTrackState_H
2 #define PerigeeLinearizedTrackState_H
3 
8 #include "Math/SMatrix.h"
10 
12 
13 
36 
37 
38 public:
39 
45 
50  RefCountedLinearizedTrackState stateWithNewLinearizationPoint
51  (const GlobalPoint & newLP) const override;
52 
53 
57  const GlobalPoint & linearizationPoint() const override { return theLinPoint; }
58 
59  reco::TransientTrack track() const override { return theTrack; }
60 
61  const TrajectoryStateOnSurface state() const { return theTSOS; }
62 
66  const AlgebraicVector5 & constantTerm() const override;
67 
71  const AlgebraicMatrix53 & positionJacobian() const override;
72 
76  const AlgebraicMatrix53 & momentumJacobian() const override;
77 
80  const AlgebraicVector5 & parametersFromExpansion() const override;
81 
87 
92 
97 
102  AlgebraicSymMatrix55 predictedStateWeight(int & error) const override;
103 
107  AlgebraicSymMatrix55 predictedStateError() const override;
108 
113 
114 // /** Method returning the impact point measurement
115 // */
116 // ImpactPointMeasurement impactPointMeasurement() const;
117 
118  TrackCharge charge() const override {return theCharge;}
119 
120  bool hasError() const override;
121 
122  bool operator ==(LinearizedTrackState<5> & other)const override;
123 
125 
130  const GlobalPoint & vertexPosition,
131  const AlgebraicVector3 & vectorParameters,
132  const AlgebraicSymMatrix66 & covarianceMatrix) const override;
133 
134 
136  const RefCountedRefittedTrackState & theRefittedState) const override;
137 
138  double weightInMixture() const override {return theTSOS.weight();}
139 
140  void inline checkParameters(AlgebraicVector5 & parameters) const override;
141 
142  std::vector<ReferenceCountingPointer<LinearizedTrackState<5> > > components() const override;
143 
144  bool isValid() const override;
145 
146 private:
147 
152  const TrajectoryStateOnSurface& tsos)
153  : theLinPoint(linP), theTrack(track),
155 
158  void computeJacobians() const;
161  void computeChargedJacobians() const;
164  void computeNeutralJacobians() const;
167  void compute3DImpactPoint() const;
168 
172 
177 
179 
181  mutable bool jacobiansAvailable;
182 
183 };
184 
185 
186 
187 
191 inline
193 {
195  return theConstantTerm;
196 }
197 
201 inline
203 {
205  return thePositionJacobian;
206 }
207 
211 inline
213 {
215  return theMomentumJacobian;
216 }
217 
220 inline
222 {
224  return theExpandedParams;
225 }
226 
231 inline
233 {
235  return thePredState;
236 }
237 
238 
239 inline
241 {
243  return thePredState.hasError();
244 }
245 
246 inline
248 {
251 }
252 
253 inline
255 {
258  return AlgebraicVector3(v[0],v[1],v[2]);
259 
260 }
261 
262 inline
264 {
266  if (!thePredState.isValid()) {
267  error = 1;
268  return AlgebraicSymMatrix55();
269  }
270  return thePredState.perigeeError().weightMatrix(error);
271 }
272 
273 inline
275 {
278 }
279 
280 inline
282 {
285 }
286 
287 inline
289 {
290  if UNLIKELY(!theTSOS.isValid()) return false;
292  return jacobiansAvailable;
293 }
294 
295 
296 
297 #endif
RefCountedRefittedTrackState createRefittedTrackState(const GlobalPoint &vertexPosition, const AlgebraicVector3 &vectorParameters, const AlgebraicSymMatrix66 &covarianceMatrix) const override
const AlgebraicVector5 & vector() const
AlgebraicVector5 refittedParamFromEquation(const RefCountedRefittedTrackState &theRefittedState) const override
const PerigeeTrajectoryError & perigeeError() const
void compute3DImpactPoint() const
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
const GlobalPoint & linearizationPoint() const override
RefCountedLinearizedTrackState stateWithNewLinearizationPoint(const GlobalPoint &newLP) const override
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
const TrajectoryStateOnSurface state() const
AlgebraicVector3 predictedStateMomentumParameters() const override
ReferenceCountingPointer< LinearizedTrackState< 5 > > RefCountedLinearizedTrackState
int TrackCharge
Definition: TrackCharge.h:4
TrajectoryStateClosestToPoint thePredState
ROOT::Math::SMatrix< double, 5, 3, ROOT::Math::MatRepStd< double, 5, 3 > > AlgebraicMatrix53
bool operator==(LinearizedTrackState< 5 > &other) const override
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepSym< double, 3 > > AlgebraicSymMatrix33
const PerigeeTrajectoryParameters & perigeeParameters() const
const TrajectoryStateClosestToPoint & predictedState() const
const TrajectoryStateOnSurface theTSOS
const AlgebraicVector5 & parametersFromExpansion() const override
AlgebraicSymMatrix33 predictedStateMomentumError() const override
ROOT::Math::SVector< double, 3 > AlgebraicVector3
std::vector< ReferenceCountingPointer< LinearizedTrackState< 5 > > > components() const override
const AlgebraicSymMatrix55 & covarianceMatrix() const
PerigeeLinearizedTrackState(const GlobalPoint &linP, const reco::TransientTrack &track, const TrajectoryStateOnSurface &tsos)
const AlgebraicSymMatrix55 & weightMatrix(int &error) const
reco::TransientTrack track() const override
AlgebraicSymMatrix55 predictedStateError() const override
const AlgebraicMatrix53 & momentumJacobian() const override
const AlgebraicVector5 & constantTerm() const override
ROOT::Math::SVector< double, 5 > AlgebraicVector5
const AlgebraicMatrix53 & positionJacobian() const override
TrackCharge charge() const override
#define UNLIKELY(x)
Definition: Likely.h:21
AlgebraicSymMatrix55 predictedStateWeight(int &error) const override
void checkParameters(AlgebraicVector5 &parameters) const override
AlgebraicVector5 predictedStateParameters() const override