![]() |
![]() |
#include <TrackPropagation/RungeKutta/interface/RKCurvilinearDistance.h>
Public Types | |
typedef T | Scalar |
typedef RKSmallVector< T, N > | Vector |
Public Member Functions | |
Basic3DVector< Scalar > | momentum (const Vector &v) const |
virtual Scalar | operator() (const Vector &a, const Vector &b, const Scalar &s) const |
T | sqr (const T &t) const |
virtual | ~RKCurvilinearDistance () |
Definition at line 8 of file RKCurvilinearDistance.h.
typedef T RKCurvilinearDistance< T, N >::Scalar |
typedef RKSmallVector<T,N> RKCurvilinearDistance< T, N >::Vector |
virtual RKCurvilinearDistance< T, N >::~RKCurvilinearDistance | ( | ) | [inline, virtual] |
Basic3DVector<Scalar> RKCurvilinearDistance< T, N >::momentum | ( | const Vector & | v | ) | const [inline] |
Definition at line 23 of file RKCurvilinearDistance.h.
References funct::abs(), k, p, RKCurvilinearDistance< T, N >::sqr(), funct::sqrt(), and v.
Referenced by RKCurvilinearDistance< T, N >::operator()().
00023 { 00024 Scalar k = sqrt(1 + sqr(v(2)) + sqr(v(3))); 00025 Scalar p = std::abs(1 / v(4)); 00026 Scalar pz = p/k; 00027 return Basic3DVector<Scalar>( v(2)*pz, v(3)*pz, pz); 00028 }
virtual Scalar RKCurvilinearDistance< T, N >::operator() | ( | const Vector & | a, | |
const Vector & | b, | |||
const Scalar & | s | |||
) | const [inline, virtual] |
Implements RKDistance< T, N >.
Definition at line 16 of file RKCurvilinearDistance.h.
References a, b, muonGeometry::mag(), Basic3DVector< T >::mag(), RKCurvilinearDistance< T, N >::momentum(), RKCurvilinearDistance< T, N >::sqr(), and funct::sqrt().
00016 { 00017 Basic3DVector<Scalar> amom = momentum(a); 00018 Basic3DVector<Scalar> bmom = momentum(b); 00019 00020 return sqrt( sqr(a(0)-b(0)) + sqr(a(1)-b(1))) + (amom - bmom).mag() / bmom.mag(); 00021 }
T RKCurvilinearDistance< T, N >::sqr | ( | const T & | t | ) | const [inline] |
Definition at line 30 of file RKCurvilinearDistance.h.
Referenced by RKCurvilinearDistance< T, N >::momentum(), and RKCurvilinearDistance< T, N >::operator()().