#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... | |
virtual const AlgebraicMatrix55 & | jacobian () const |
virtual const AlgebraicMatrix | jacobian_old () const |
virtual | ~AnalyticalCurvilinearJacobian () |
Public Member Functions inherited from CurvilinearJacobian | |
CurvilinearJacobian () | |
virtual | ~CurvilinearJacobian () |
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 5 of file AnalyticalCurvilinearJacobian.cc.
References h, GlobalTrajectoryParameters::magneticFieldInInverseGeV(), GlobalTrajectoryParameters::position(), 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 28 of file AnalyticalCurvilinearJacobian.cc.
References GlobalTrajectoryParameters::transverseCurvature().
|
inlinevirtual |
Definition at line 38 of file AnalyticalCurvilinearJacobian.h.
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 funct::cos(), prof2calltree::cost, MessageLogger_cff::limit, PV3DBase< T, PVType, FrameType >::mag(), GlobalTrajectoryParameters::momentum(), p1, p2, PV3DBase< T, PVType, FrameType >::perp(), GlobalTrajectoryParameters::position(), createTree::pp, lumiQueryAPI::q, asciidump::s, indexGen::s2, GlobalTrajectoryParameters::signedInverseMomentum(), funct::sin(), 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 245 of file AnalyticalCurvilinearJacobian.cc.
References GlobalTrajectoryParameters::momentum(), L1TEmulatorMonitor_cff::p, asciidump::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 306 of file AnalyticalCurvilinearJacobian.cc.
References GlobalTrajectoryParameters::momentum(), p1, PV3DBase< T, PVType, FrameType >::perp(), asciidump::s, and Vector3DBase< T, FrameTag >::unit().
|
inlinevirtual |
Implements CurvilinearJacobian.
Definition at line 40 of file AnalyticalCurvilinearJacobian.h.
References theJacobian.
Referenced by TSCPBuilderNoMaterial::createFTSatTransverseImpactPointCharged(), TSCPBuilderNoMaterial::createFTSatTransverseImpactPointNeutral(), AnalyticalTrajectoryExtrapolatorToLine::extrapolateSingleState(), TSCBLBuilderNoMaterial::operator()(), AnalyticalPropagator::propagatedStateWithPath(), and TwoBodyDecayTrajectoryState::propagateSingleState().
|
inlinevirtual |
Implements CurvilinearJacobian.
Definition at line 41 of file AnalyticalCurvilinearJacobian.h.
References asHepMatrix(), and theJacobian.
|
private |
Definition at line 58 of file AnalyticalCurvilinearJacobian.h.
Referenced by jacobian(), and jacobian_old().