1 #ifndef PerigeeLinearizedTrackState_H
2 #define PerigeeLinearizedTrackState_H
8 #include "Math/SMatrix.h"
136 const RefCountedRefittedTrackState & theRefittedState)
const;
142 virtual std::vector<ReferenceCountingPointer<LinearizedTrackState<5> > >
components()
const;
153 : theLinPoint(linP), theTrack(track),
154 theTSOS(tsos), theCharge(theTrack.charge()), jacobiansAvailable(
false) {}
158 void computeJacobians()
const;
161 void computeChargedJacobians()
const;
164 void computeNeutralJacobians()
const;
167 void compute3DImpactPoint()
const;
194 if unlikely(!jacobiansAvailable) computeJacobians();
195 return theConstantTerm;
204 if unlikely(!jacobiansAvailable) computeJacobians();
205 return thePositionJacobian;
214 if unlikely(!jacobiansAvailable) computeJacobians();
215 return theMomentumJacobian;
223 if unlikely(!jacobiansAvailable) computeJacobians();
234 if unlikely(!jacobiansAvailable) computeJacobians();
240 bool PerigeeLinearizedTrackState::hasError()
const
242 if unlikely(!jacobiansAvailable) computeJacobians();
243 return thePredState.hasError();
247 AlgebraicVector5 PerigeeLinearizedTrackState::predictedStateParameters()
const
249 if (!jacobiansAvailable) computeJacobians();
250 return thePredState.perigeeParameters().vector();
254 AlgebraicVector3 PerigeeLinearizedTrackState::predictedStateMomentumParameters()
const
256 if unlikely(!jacobiansAvailable) computeJacobians();
257 auto
v= thePredState.perigeeParameters().vector();
265 if unlikely(!jacobiansAvailable) computeJacobians();
266 if (!thePredState.isValid()) {
270 return thePredState.perigeeError().weightMatrix(error);
276 if unlikely(!jacobiansAvailable) computeJacobians();
277 return thePredState.perigeeError().covarianceMatrix();
283 if unlikely(!jacobiansAvailable) computeJacobians();
288 bool PerigeeLinearizedTrackState::isValid()
const
290 if unlikely(!theTSOS.isValid())
return false;
291 if unlikely(!jacobiansAvailable) computeJacobians();
292 return jacobiansAvailable;
virtual bool operator==(LinearizedTrackState< N > &other) const =0
AlgebraicMatrix53 thePositionJacobian
virtual const AlgebraicVectorN & constantTerm() const =0
AlgebraicVector5 theExpandedParams
virtual const AlgebraicMatrixNM & momentumJacobian() const =0
ReferenceCountingPointer< LinearizedTrackState< 5 > > RefCountedLinearizedTrackState
virtual ReferenceCountingPointer< LinearizedTrackState< N > > stateWithNewLinearizationPoint(const GlobalPoint &newLP) const =0
GloballyPositioned< float >::GlobalPoint GlobalPoint
const TrajectoryStateOnSurface theTSOS
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
PerigeeLinearizedTrackState(const GlobalPoint &linP, const reco::TransientTrack &track, const TrajectoryStateOnSurface &tsos)
const GlobalPoint & linearizationPoint() const
TrajectoryStateClosestToPoint thePredState
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
reco::TransientTrack theTrack
const TrajectoryStateOnSurface state() const
virtual AlgebraicVectorM predictedStateMomentumParameters() const =0
virtual const AlgebraicVectorN & parametersFromExpansion() const =0
virtual RefCountedRefittedTrackState createRefittedTrackState(const GlobalPoint &vertexPosition, const AlgebraicVectorM &vectorParameters, const AlgebraicSymMatrixOO &covarianceMatrix) const =0
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
virtual AlgebraicSymMatrixNN predictedStateError() const =0
virtual AlgebraicVectorN predictedStateParameters() const =0
virtual AlgebraicVectorN refittedParamFromEquation(const RefCountedRefittedTrackState &theRefittedState) const =0
ROOT::Math::SVector< double, 3 > AlgebraicVector3
virtual reco::TransientTrack track() const
virtual void checkParameters(AlgebraicVectorN ¶meters) const
virtual bool isValid() const
virtual double weightInMixture() const
ROOT::Math::SVector< double, 5 > AlgebraicVector5
virtual bool hasError() const =0
TrackCharge charge() const
return(e1-e2)*(e1-e2)+dp *dp
virtual std::vector< ReferenceCountingPointer< LinearizedTrackState< N > > > components() const =0
TSCPBuilderNoMaterial builder
virtual AlgebraicSymMatrixNN predictedStateWeight(int &error) const =0
virtual const AlgebraicMatrixN3 & positionJacobian() const =0
virtual AlgebraicSymMatrixMM predictedStateMomentumError() const =0
volatile std::atomic< bool > shutdown_flag false
AlgebraicVector5 theConstantTerm
Unlimited (trivial) bounds.