CMS 3D CMS Logo

Public Types | Public Member Functions | Private Attributes

CurvilinearState Class Reference

#include <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 Vector &v, Scalar z, Scalar pzsign)
 CurvilinearState ()
 CurvilinearState (const Vector3D &pos, const Vector3D &p, Scalar ch)
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 21 of file CurvilinearState.h.


Member Typedef Documentation

typedef double CurvilinearState::Scalar

Definition at line 24 of file CurvilinearState.h.

Definition at line 27 of file CurvilinearState.h.

Definition at line 25 of file CurvilinearState.h.

Definition at line 26 of file CurvilinearState.h.


Constructor & Destructor Documentation

CurvilinearState::CurvilinearState ( ) [inline]

Definition at line 29 of file CurvilinearState.h.

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

Definition at line 31 of file CurvilinearState.h.

                                                              : 
    par_(v), z_(z), pzSign_(pzsign) {}
CurvilinearState::CurvilinearState ( const Vector3D pos,
const Vector3D p,
Scalar  ch 
) [inline]

Definition at line 34 of file CurvilinearState.h.

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

Member Function Documentation

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

Definition at line 55 of file CurvilinearState.h.

{ return par_.second().z()>0 ? 1 : -1;}
const Vector3D CurvilinearState::momentum ( ) const [inline]

Definition at line 42 of file CurvilinearState.h.

References AlCaHLTBitMon_ParallelJobs::p, and mathSSE::sqrt().

                                  {
    Scalar p = 1./fabs(par_.second().z());
    if ( p>1.e9 )  p = 1.e9;
    Scalar dxdz = par_.second().x();
    Scalar dydz = par_.second().y();
    Scalar dz = pzSign_/sqrt(1. + dxdz*dxdz + dydz*dydz);
    Scalar dx = dz*dxdz;
    Scalar dy = dz*dydz;
    return Vector3D(dx*p, dy*p, dz*p);
  }
const Vector& CurvilinearState::parameters ( void  ) const [inline]

Definition at line 53 of file CurvilinearState.h.

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

{ return par_;}
const Vector3D CurvilinearState::position ( void  ) const [inline]

Definition at line 38 of file CurvilinearState.h.

                                  { 
    return Vector3D(par_.first().x(),par_.first().y(),z_);
  }
double CurvilinearState::pzSign ( ) const [inline]

Definition at line 59 of file CurvilinearState.h.

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

{return pzSign_;}
Scalar CurvilinearState::z ( ) const [inline]

Definition at line 57 of file CurvilinearState.h.

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

{return z_;}

Member Data Documentation

Definition at line 63 of file CurvilinearState.h.

sign of local pz

Definition at line 65 of file CurvilinearState.h.

Definition at line 64 of file CurvilinearState.h.