#include <AnalyticalCurvilinearJacobian.h>
Public Member Functions | |
AnalyticalCurvilinearJacobian () | |
default constructor (for tests) More... | |
AnalyticalCurvilinearJacobian (const GlobalTrajectoryParameters &globalParameters, const GlobalPoint &x, const GlobalVector &p, const double &s) | |
get Field at starting state (internally) More... | |
AnalyticalCurvilinearJacobian (const GlobalTrajectoryParameters &globalParameters, const GlobalPoint &x, const GlobalVector &p, const GlobalVector &theFieldInInverseGeV, const double &s) | |
new: give Field as a parameter More... | |
void | computeFullJacobian (const GlobalTrajectoryParameters &, const GlobalPoint &, const GlobalVector &, const GlobalVector &, const double &s) |
result for non-vanishing curvature More... | |
void | computeInfinitesimalJacobian (const GlobalTrajectoryParameters &, const GlobalPoint &, const GlobalVector &, const GlobalVector &, const double &s) |
result for non-vanishing curvature and "small" step More... | |
void | computeStraightLineJacobian (const GlobalTrajectoryParameters &, const GlobalPoint &, const GlobalVector &, const double &s) |
straight line approximation More... | |
const AlgebraicMatrix55 & | jacobian () const |
Private Attributes | |
AlgebraicMatrix55 | theJacobian |
Creating Jacobian of transformation within the curvilinear frame. The basic functionality of this class is to provide the (analytical) Jacobian matrix of the transformation within the curvilinear frame from the state defined by globalParameters to the state defined by x and p. This Jacobian can then be used to yield the corresponding error propagation. The current implementation is based on the original derivations by W. Wittek. However, due to the implicit float precision, two terms ((4,1) and (5,1)) have been modified in order to make the calculations more stable in a numerical sense.
Definition at line 21 of file AnalyticalCurvilinearJacobian.h.
|
inline |
default constructor (for tests)
Definition at line 24 of file AnalyticalCurvilinearJacobian.h.
AnalyticalCurvilinearJacobian::AnalyticalCurvilinearJacobian | ( | const GlobalTrajectoryParameters & | globalParameters, |
const GlobalPoint & | x, | ||
const GlobalVector & | p, | ||
const double & | s | ||
) |
get Field at starting state (internally)
Definition at line 7 of file AnalyticalCurvilinearJacobian.cc.
References alignCSCRings::e, h, GlobalTrajectoryParameters::magneticFieldInInverseGeV(), and GlobalTrajectoryParameters::transverseCurvature().
AnalyticalCurvilinearJacobian::AnalyticalCurvilinearJacobian | ( | const GlobalTrajectoryParameters & | globalParameters, |
const GlobalPoint & | x, | ||
const GlobalVector & | p, | ||
const GlobalVector & | theFieldInInverseGeV, | ||
const double & | s | ||
) |
new: give Field as a parameter
Definition at line 31 of file AnalyticalCurvilinearJacobian.cc.
References alignCSCRings::e, and GlobalTrajectoryParameters::transverseCurvature().
void AnalyticalCurvilinearJacobian::computeFullJacobian | ( | const GlobalTrajectoryParameters & | globalParameters, |
const GlobalPoint & | x, | ||
const GlobalVector & | p, | ||
const GlobalVector & | h, | ||
const double & | s | ||
) |
result for non-vanishing curvature
Definition at line 61 of file AnalyticalCurvilinearJacobian.cc.
References prof2calltree::cost, i, MessageLogger_cff::limit, PV3DBase< T, PVType, FrameType >::mag(), GlobalTrajectoryParameters::momentum(), p1, p2, PV3DBase< T, PVType, FrameType >::perp(), GlobalTrajectoryParameters::position(), createTree::pp, lumiQueryAPI::q, alignCSCRings::s, indexGen::s2, GlobalTrajectoryParameters::signedInverseMomentum(), mathSSE::sqrt(), theta(), Vector3DBase< T, FrameTag >::unit(), x, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
void AnalyticalCurvilinearJacobian::computeInfinitesimalJacobian | ( | const GlobalTrajectoryParameters & | globalParameters, |
const GlobalPoint & | , | ||
const GlobalVector & | p, | ||
const GlobalVector & | h, | ||
const double & | s | ||
) |
result for non-vanishing curvature and "small" step
Definition at line 253 of file AnalyticalCurvilinearJacobian.cc.
References GlobalTrajectoryParameters::momentum(), AlCaHLTBitMon_ParallelJobs::p, alignCSCRings::s, GlobalTrajectoryParameters::signedInverseMomentum(), mathSSE::sqrt(), csvLumiCalc::unit, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
void AnalyticalCurvilinearJacobian::computeStraightLineJacobian | ( | const GlobalTrajectoryParameters & | globalParameters, |
const GlobalPoint & | x, | ||
const GlobalVector & | p, | ||
const double & | s | ||
) |
straight line approximation
Definition at line 316 of file AnalyticalCurvilinearJacobian.cc.
References GlobalTrajectoryParameters::momentum(), p1, PV3DBase< T, PVType, FrameType >::perp(), alignCSCRings::s, and Vector3DBase< T, FrameTag >::unit().
|
inline |
Definition at line 55 of file AnalyticalCurvilinearJacobian.h.
References theJacobian.
Referenced by analyticalErrorPropagation(), AnalyticalTrajectoryExtrapolatorToLine::extrapolateSingleState(), TSCBLBuilderNoMaterial::operator()(), TwoBodyDecayTrajectoryState::propagateSingleState(), and TrackKinematicStatePropagator::propagateToTheTransversePCACharged().
|
private |
Definition at line 59 of file AnalyticalCurvilinearJacobian.h.
Referenced by jacobian().