CMS 3D CMS Logo

CurvilinearState Class Reference

State for solving the equation of motion with Z as free variable. More...

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

List of all members.

Public Types

typedef double Scalar
typedef VectorDoublet
< Vector2D, Vector3D
Vector
typedef Basic2DVector< ScalarVector2D
typedef Basic3DVector< ScalarVector3D

Public Member Functions

Scalar charge () const
 CurvilinearState (const Vector3D &pos, const Vector3D &p, Scalar ch)
 CurvilinearState (const Vector &v, Scalar z, Scalar pzsign)
 CurvilinearState ()
const Vector3D momentum () const
const Vectorparameters () const
const Vector3D position () const
double pzSign () const
Scalar z () const

Private Attributes

Vector par_
Scalar pzSign_
 sign of local pz
Scalar z_


Detailed Description

State for solving the equation of motion with Z as free variable.

The dependent variables are x - x coordinate y - y coordinate dx/dz - derivative of x versus z dy/dz - derivative of y versus z q/p - charge over momentum magnitude

The coordinate system is externally defined

Definition at line 20 of file CurvilinearState.h.


Member Typedef Documentation

typedef double CurvilinearState::Scalar

Definition at line 23 of file CurvilinearState.h.

typedef VectorDoublet<Vector2D,Vector3D> CurvilinearState::Vector

Definition at line 26 of file CurvilinearState.h.

typedef Basic2DVector<Scalar> CurvilinearState::Vector2D

Definition at line 24 of file CurvilinearState.h.

typedef Basic3DVector<Scalar> CurvilinearState::Vector3D

Definition at line 25 of file CurvilinearState.h.


Constructor & Destructor Documentation

CurvilinearState::CurvilinearState (  )  [inline]

Definition at line 28 of file CurvilinearState.h.

00028 {}

CurvilinearState::CurvilinearState ( const Vector v,
Scalar  z,
Scalar  pzsign 
) [inline]

Definition at line 30 of file CurvilinearState.h.

00030                                                               : 
00031     par_(v), z_(z), pzSign_(pzsign) {}

CurvilinearState::CurvilinearState ( const Vector3D pos,
const Vector3D p,
Scalar  ch 
) [inline]

Definition at line 33 of file CurvilinearState.h.

00033                                                                        : 
00034     par_(Vector2D(pos.x(),pos.y()), Vector3D( p.x()/p.z(), p.y()/p.z(), ch/p.mag())), 
00035     z_(pos.z()), pzSign_(p.z()>0. ? 1.:-1.) {}


Member Function Documentation

Scalar CurvilinearState::charge ( void   )  const [inline]

Definition at line 54 of file CurvilinearState.h.

References par_, and VectorDoublet< V1, V2 >::second().

00054 { return par_.second().z()>0 ? 1 : -1;}

const Vector3D CurvilinearState::momentum (  )  const [inline]

Definition at line 41 of file CurvilinearState.h.

References p, par_, pzSign_, VectorDoublet< V1, V2 >::second(), and funct::sqrt().

00041                                   {
00042     Scalar p = 1./fabs(par_.second().z());
00043     if ( p>1.e9 )  p = 1.e9;
00044     Scalar dxdz = par_.second().x();
00045     Scalar dydz = par_.second().y();
00046     Scalar dz = pzSign_/sqrt(1. + dxdz*dxdz + dydz*dydz);
00047     Scalar dx = dz*dxdz;
00048     Scalar dy = dz*dydz;
00049     return Vector3D(dx*p, dy*p, dz*p);
00050   }

const Vector& CurvilinearState::parameters ( void   )  const [inline]

Definition at line 52 of file CurvilinearState.h.

References par_.

Referenced by operator *(), operator+(), operator-(), and operator/().

00052 { return par_;}

const Vector3D CurvilinearState::position ( void   )  const [inline]

Definition at line 37 of file CurvilinearState.h.

References VectorDoublet< V1, V2 >::first(), par_, and z_.

00037                                   { 
00038     return Vector3D(par_.first().x(),par_.first().y(),z_);
00039   }

double CurvilinearState::pzSign (  )  const [inline]

Definition at line 58 of file CurvilinearState.h.

References pzSign_.

Referenced by operator *(), operator+(), operator-(), and operator/().

00058 {return pzSign_;}

Scalar CurvilinearState::z ( void   )  const [inline]

Definition at line 56 of file CurvilinearState.h.

References z_.

Referenced by operator *(), operator+(), operator-(), and operator/().

00056 {return z_;}


Member Data Documentation

Vector CurvilinearState::par_ [private]

Definition at line 62 of file CurvilinearState.h.

Referenced by charge(), momentum(), parameters(), and position().

Scalar CurvilinearState::pzSign_ [private]

sign of local pz

Definition at line 64 of file CurvilinearState.h.

Referenced by momentum(), and pzSign().

Scalar CurvilinearState::z_ [private]

Definition at line 63 of file CurvilinearState.h.

Referenced by position(), and z().


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