CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
51  (const GlobalPoint & newLP) const;
52 
53 
57  const GlobalPoint & linearizationPoint() const { return theLinPoint; }
58 
59  virtual reco::TransientTrack track() const { return theTrack; }
60 
61  const TrajectoryStateOnSurface state() const { return theTSOS; }
62 
66  const AlgebraicVector5 & constantTerm() const;
67 
71  const AlgebraicMatrix53 & positionJacobian() const;
72 
76  const AlgebraicMatrix53 & momentumJacobian() const;
77 
81 
87 
92 
97 
103 
108 
113 
114 // /** Method returning the impact point measurement
115 // */
116 // ImpactPointMeasurement impactPointMeasurement() const;
117 
118  TrackCharge charge() const {return theCharge;}
119 
120  bool hasError() const;
121 
122  bool operator ==(LinearizedTrackState<5> & other)const;
123 
125 
130  const GlobalPoint & vertexPosition,
131  const AlgebraicVector3 & vectorParameters,
132  const AlgebraicSymMatrix66 & covarianceMatrix) const;
133 
134 
136  const RefCountedRefittedTrackState & theRefittedState) const;
137 
138  virtual double weightInMixture() const {return theTSOS.weight();}
139 
140  virtual void inline checkParameters(AlgebraicVector5 & parameters) const;
141 
142  virtual std::vector<ReferenceCountingPointer<LinearizedTrackState<5> > > components() const;
143 
144  virtual bool isValid() const;
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
virtual AlgebraicVector3 predictedStateMomentumParameters() const
const AlgebraicVector5 & vector() const
dictionary parameters
Definition: Parameters.py:2
#define GCC11_FINAL
const AlgebraicMatrix53 & momentumJacobian() const
virtual RefCountedLinearizedTrackState stateWithNewLinearizationPoint(const GlobalPoint &newLP) const
const PerigeeTrajectoryError & perigeeError() const
void compute3DImpactPoint() const
virtual reco::TransientTrack track() const
virtual void checkParameters(AlgebraicVector5 &parameters) const
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
const TrajectoryStateOnSurface state() const
bool operator==(LinearizedTrackState< 5 > &other) const
ReferenceCountingPointer< LinearizedTrackState< 5 > > RefCountedLinearizedTrackState
#define unlikely(x)
int TrackCharge
Definition: TrackCharge.h:4
TrajectoryStateClosestToPoint thePredState
ROOT::Math::SMatrix< double, 5, 3, ROOT::Math::MatRepStd< double, 5, 3 > > AlgebraicMatrix53
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepSym< double, 3 > > AlgebraicSymMatrix33
const PerigeeTrajectoryParameters & perigeeParameters() const
const TrajectoryStateClosestToPoint & predictedState() const
const TrajectoryStateOnSurface theTSOS
const AlgebraicMatrix53 & positionJacobian() const
ROOT::Math::SVector< double, 3 > AlgebraicVector3
AlgebraicSymMatrix55 predictedStateError() const
AlgebraicSymMatrix33 predictedStateMomentumError() const
const GlobalPoint & linearizationPoint() const
ReferenceCountingPointer< RefittedTrackState< N > > RefCountedRefittedTrackState
const AlgebraicSymMatrix55 & covarianceMatrix() const
PerigeeLinearizedTrackState(const GlobalPoint &linP, const reco::TransientTrack &track, const TrajectoryStateOnSurface &tsos)
const AlgebraicSymMatrix55 & weightMatrix(int &error) const
ROOT::Math::SVector< double, 5 > AlgebraicVector5
virtual AlgebraicVector5 refittedParamFromEquation(const RefCountedRefittedTrackState &theRefittedState) const
const AlgebraicVector5 & parametersFromExpansion() const
volatile std::atomic< bool > shutdown_flag false
AlgebraicVector5 predictedStateParameters() const
virtual RefCountedRefittedTrackState createRefittedTrackState(const GlobalPoint &vertexPosition, const AlgebraicVector3 &vectorParameters, const AlgebraicSymMatrix66 &covarianceMatrix) const
virtual std::vector< ReferenceCountingPointer< LinearizedTrackState< 5 > > > components() const
AlgebraicSymMatrix55 predictedStateWeight(int &error) const
const AlgebraicVector5 & constantTerm() const