CMS 3D CMS Logo

RKCurvilinearDistance< T, N > Class Template Reference

#include <TrackPropagation/RungeKutta/interface/RKCurvilinearDistance.h>

Inheritance diagram for RKCurvilinearDistance< T, N >:

RKDistance< T, N >

List of all members.

Public Types

typedef T Scalar
typedef RKSmallVector< T, N > Vector

Public Member Functions

Basic3DVector< Scalarmomentum (const Vector &v) const
virtual Scalar operator() (const Vector &a, const Vector &b, const Scalar &s) const
sqr (const T &t) const
virtual ~RKCurvilinearDistance ()


Detailed Description

template<typename T, int N>
class RKCurvilinearDistance< T, N >

Definition at line 8 of file RKCurvilinearDistance.h.


Member Typedef Documentation

template<typename T, int N>
typedef T RKCurvilinearDistance< T, N >::Scalar

Reimplemented from RKDistance< T, N >.

Definition at line 11 of file RKCurvilinearDistance.h.

template<typename T, int N>
typedef RKSmallVector<T,N> RKCurvilinearDistance< T, N >::Vector

Reimplemented from RKDistance< T, N >.

Definition at line 12 of file RKCurvilinearDistance.h.


Constructor & Destructor Documentation

template<typename T, int N>
virtual RKCurvilinearDistance< T, N >::~RKCurvilinearDistance (  )  [inline, virtual]

Definition at line 14 of file RKCurvilinearDistance.h.

00014 {}


Member Function Documentation

template<typename T, int N>
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   }

template<typename T, int N>
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   }

template<typename T, int N>
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()().

00030 {return t*t;}


The documentation for this class was generated from the following file:
Generated on Tue Jun 9 18:30:48 2009 for CMSSW by  doxygen 1.5.4