CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions
RKCurvilinearDistance< T, N > Class Template Reference

#include <RKCurvilinearDistance.h>

Inheritance diagram for RKCurvilinearDistance< T, N >:
RKDistance< T, N >

Public Types

typedef T Scalar
 
typedef RKSmallVector< T, NVector
 
- Public Types inherited from RKDistance< T, N >
typedef T Scalar
 
typedef RKSmallVector< T, NVector
 

Public Member Functions

Basic3DVector< Scalarmomentum (const Vector &v) const
 
Scalar operator() (const Vector &a, const Vector &b, const Scalar &s) const override
 
T sqr (const T &t) const
 
 ~RKCurvilinearDistance () override
 
- Public Member Functions inherited from RKDistance< T, N >
virtual ~RKDistance ()
 

Detailed Description

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

Definition at line 10 of file RKCurvilinearDistance.h.

Member Typedef Documentation

◆ Scalar

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

Definition at line 12 of file RKCurvilinearDistance.h.

◆ Vector

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

Definition at line 13 of file RKCurvilinearDistance.h.

Constructor & Destructor Documentation

◆ ~RKCurvilinearDistance()

template<typename T, int N>
RKCurvilinearDistance< T, N >::~RKCurvilinearDistance ( )
inlineoverride

Definition at line 15 of file RKCurvilinearDistance.h.

15 {}

Member Function Documentation

◆ momentum()

template<typename T, int N>
Basic3DVector<Scalar> RKCurvilinearDistance< T, N >::momentum ( const Vector v) const
inline

Definition at line 24 of file RKCurvilinearDistance.h.

References funct::abs(), dqmdumpme::k, AlCaHLTBitMon_ParallelJobs::p, funct::sqr(), mathSSE::sqrt(), and findQualityFiles::v.

24  {
25  Scalar k = sqrt(1 + sqr(v(2)) + sqr(v(3)));
26  Scalar p = std::abs(1 / v(4));
27  Scalar pz = p / k;
28  return Basic3DVector<Scalar>(v(2) * pz, v(3) * pz, pz);
29  }
T sqrt(T t)
Definition: SSEVec.h:23
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
T sqr(const T &t) const

◆ operator()()

template<typename T, int N>
Scalar RKCurvilinearDistance< T, N >::operator() ( const Vector a,
const Vector b,
const Scalar s 
) const
inlineoverridevirtual

Implements RKDistance< T, N >.

Definition at line 17 of file RKCurvilinearDistance.h.

References a, b, Basic3DVector< T >::mag(), mag(), funct::sqr(), and mathSSE::sqrt().

17  {
20 
21  return sqrt(sqr(a(0) - b(0)) + sqr(a(1) - b(1))) + (amom - bmom).mag() / bmom.mag();
22  }
Basic3DVector< Scalar > momentum(const Vector &v) const
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
T sqrt(T t)
Definition: SSEVec.h:23
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
T sqr(const T &t) const

◆ sqr()

template<typename T, int N>
T RKCurvilinearDistance< T, N >::sqr ( const T t) const
inline

Definition at line 31 of file RKCurvilinearDistance.h.

References submitPVValidationJobs::t.

31 { return t * t; }