153 throw VertexException(
"PerigeeLinearizedTrackState: don't know how to compare myself to non-perigee track state");
164 throw VertexException(
"PerigeeLinearizedTrackState: don't know how to compare myself to non-perigee track state");
191 std::vector< PerigeeLinearizedTrackState::RefCountedLinearizedTrackState >
194 std::vector<RefCountedLinearizedTrackState>
result; result.reserve(1);
196 const_cast<PerigeeLinearizedTrackState*>(
this)));
205 vertexPosition(0) = theRefittedState->position().x();
206 vertexPosition(1) = theRefittedState->position().y();
207 vertexPosition(2) = theRefittedState->position().z();
216 if (param(2) >
M_PI) param(2)-= 2*
M_PI;
217 if (param(2) < -
M_PI) param(2)+= 2*
M_PI;
239 double transverseCurvatureAtEP = field / ptAtEP*signTC;
244 double X = x_v - paramPt.
x() -
sin(phiAtEP) / transverseCurvatureAtEP;
245 double Y = y_v - paramPt.
y() +
cos(phiAtEP) / transverseCurvatureAtEP;
246 double SS = X*X + Y*Y;
256 double signX = (X>0.0? +1.0:-1.0);
257 phiFEP = -signTC * signX*acos(signTC*Y/S);
259 phiFEP = asin(-signTC*X/S);
261 phiFEP =
M_PI - phiFEP;
288 (X*
cos(phiAtEP) + Y*
sin(phiAtEP))/
289 (SS*transverseCurvatureAtEP*transverseCurvatureAtEP);
292 (SS*transverseCurvatureAtEP);
295 (signTC * (Y*
cos(phiAtEP) - X*
sin(phiAtEP)) / S - 1)/
296 (transverseCurvatureAtEP*transverseCurvatureAtEP);
299 (S*transverseCurvatureAtEP);
302 tan(thetaAtEP)/(transverseCurvatureAtEP*transverseCurvatureAtEP)+
306 (1 + 1/(
tan(thetaAtEP)*
tan(thetaAtEP)))/transverseCurvatureAtEP;
309 tan(thetaAtEP)/transverseCurvatureAtEP;
318 momentumAtExpansionPoint(0) = transverseCurvatureAtEP;
319 momentumAtExpansionPoint(1) = thetaAtEP;
320 momentumAtExpansionPoint(2) = phiAtEP;
344 double X = x_v - paramPt.
x();
345 double Y = y_v - paramPt.
y();
354 (X*
cos(phiAtEP) + Y*
sin(phiAtEP)) /
tan(thetaAtEP);
378 (1 + 1/(
tan(thetaAtEP)*
tan(thetaAtEP)));
389 momentumAtExpansionPoint(0) = 1 / ptAtEP;
390 momentumAtExpansionPoint(1) = thetaAtEP;
391 momentumAtExpansionPoint(2) = phiAtEP;
virtual AlgebraicVector3 predictedStateMomentumParameters() const
const AlgebraicVector5 & vector() const
const AlgebraicMatrix53 & momentumJacobian() const
virtual RefCountedLinearizedTrackState stateWithNewLinearizationPoint(const GlobalPoint &newLP) const
const PerigeeTrajectoryError & perigeeError() const
TrajectoryStateClosestToPoint trajectoryStateClosestToPoint(const AlgebraicVector3 &momentum, const GlobalPoint &referencePoint, const TrackCharge &charge, const AlgebraicSymMatrix66 &theCovarianceMatrix, const MagneticField *field) const
ROOT::Math::SVector< double, N > AlgebraicVectorN
TSCPBuilderNoMaterial builder
const FreeTrajectoryState & theState() const
virtual reco::TransientTrack track() const
virtual void checkParameters(AlgebraicVector5 ¶meters) const
Sin< T >::type sin(const T &t)
AlgebraicVector5 theConstantTerm
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
Geom::Phi< T > phi() const
AlgebraicMatrix53 theMomentumJacobian
void computeChargedJacobians() const
const MagneticField * field() const
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
bool operator==(LinearizedTrackState< 5 > &other) const
ReferenceCountingPointer< LinearizedTrackState< 5 > > RefCountedLinearizedTrackState
Geom::Theta< T > theta() const
void computeNeutralJacobians() const
GlobalVector inInverseGeV(const GlobalPoint &gp) const
Field value ad specified global point, in 1/Gev.
TrajectoryStateClosestToPoint thePredState
ROOT::Math::SMatrix< double, 5, 3, ROOT::Math::MatRepStd< double, 5, 3 > > AlgebraicMatrix53
void computeJacobians() const
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepSym< double, 3 > > AlgebraicSymMatrix33
AlgebraicVector5 theExpandedParams
const PerigeeTrajectoryParameters & perigeeParameters() const
const TrajectoryStateClosestToPoint & predictedState() const
const TrajectoryStateOnSurface theTSOS
Cos< T >::type cos(const T &t)
const AlgebraicMatrix53 & positionJacobian() const
ROOT::Math::SVector< double, 3 > AlgebraicVector3
Tan< T >::type tan(const T &t)
AlgebraicSymMatrix55 predictedStateError() const
AlgebraicSymMatrix33 predictedStateMomentumError() const
virtual bool isValid() const
ReferenceCountingPointer< RefittedTrackState< N > > RefCountedRefittedTrackState
TrackCharge charge() const
GlobalVector momentum() const
const AlgebraicSymMatrix55 & covarianceMatrix() const
const AlgebraicSymMatrix55 & weightMatrix(int &error) const
GlobalPoint position() const
AlgebraicMatrix53 thePositionJacobian
ROOT::Math::SVector< double, 5 > AlgebraicVector5
virtual AlgebraicVector5 refittedParamFromEquation(const RefCountedRefittedTrackState &theRefittedState) const
reco::TransientTrack theTrack
const AlgebraicVector5 & parametersFromExpansion() const
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