#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.
References computeFullJacobian(), computeInfinitesimalJacobian(), computeStraightLineJacobian(), AlCaHLTBitMon_ParallelJobs::p, alignCSCRings::s, and x.
AnalyticalCurvilinearJacobian::AnalyticalCurvilinearJacobian | ( | const GlobalTrajectoryParameters & | globalParameters, |
const GlobalPoint & | x, | ||
const GlobalVector & | p, | ||
const double & | s | ||
) |
get Field at starting state (internally)
Definition at line 5 of file AnalyticalCurvilinearJacobian.cc.
References computeFullJacobian(), computeStraightLineJacobian(), MillePedeFileConverter_cfg::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 27 of file AnalyticalCurvilinearJacobian.cc.
References computeFullJacobian(), computeStraightLineJacobian(), MillePedeFileConverter_cfg::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 55 of file AnalyticalCurvilinearJacobian.cc.
References PVValHelper::dx, CustomPhysics_cfi::gamma, mps_fire::i, MessageLogger_cff::limit, PV3DBase< T, PVType, FrameType >::mag(), GlobalTrajectoryParameters::momentum(), p1, p2, PV3DBase< T, PVType, FrameType >::perp(), GlobalTrajectoryParameters::position(), createTree::pp, data-class-funcs::q, alignCSCRings::s, indexGen::s2, GlobalTrajectoryParameters::signedInverseMomentum(), mathSSE::sqrt(), theJacobian, theta(), Vector3DBase< T, FrameTag >::unit(), x, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by AnalyticalCurvilinearJacobian().
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 250 of file AnalyticalCurvilinearJacobian.cc.
References parametrizedMagneticField_OAE85l_cfi::b0, testProducerWithPsetDescEmpty_cfi::b3, GlobalTrajectoryParameters::momentum(), AlCaHLTBitMon_ParallelJobs::p, alignCSCRings::s, GlobalTrajectoryParameters::signedInverseMomentum(), mathSSE::sqrt(), theJacobian, unit(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by AnalyticalCurvilinearJacobian().
void AnalyticalCurvilinearJacobian::computeStraightLineJacobian | ( | const GlobalTrajectoryParameters & | globalParameters, |
const GlobalPoint & | , | ||
const GlobalVector & | , | ||
const double & | s | ||
) |
straight line approximation
Definition at line 307 of file AnalyticalCurvilinearJacobian.cc.
References GlobalTrajectoryParameters::momentum(), p1, PV3DBase< T, PVType, FrameType >::perp(), alignCSCRings::s, theJacobian, and Vector3DBase< T, FrameTag >::unit().
Referenced by AnalyticalCurvilinearJacobian().
|
inline |
Definition at line 51 of file AnalyticalCurvilinearJacobian.h.
References theJacobian.
Referenced by analyticalErrorPropagation(), TSCPBuilderNoMaterial::createFTSatTransverseImpactPointCharged(), TSCPBuilderNoMaterial::createFTSatTransverseImpactPointNeutral(), AnalyticalTrajectoryExtrapolatorToLine::extrapolateSingleState(), TSCBLBuilderNoMaterial::operator()(), AnalyticalPropagator::propagatedStateWithPath(), TwoBodyDecayTrajectoryState::propagateSingleState(), and TrackKinematicStatePropagator::propagateToTheTransversePCACharged().
|
private |
Definition at line 54 of file AnalyticalCurvilinearJacobian.h.
Referenced by computeFullJacobian(), computeInfinitesimalJacobian(), computeStraightLineJacobian(), and jacobian().