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 20 of file CurvilinearState.h.


Member Typedef Documentation

typedef double CurvilinearState::Scalar

Definition at line 23 of file CurvilinearState.h.

Definition at line 26 of file CurvilinearState.h.

Definition at line 24 of file CurvilinearState.h.

Definition at line 25 of file CurvilinearState.h.


Constructor & Destructor Documentation

CurvilinearState::CurvilinearState ( ) [inline]

Definition at line 28 of file CurvilinearState.h.

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

Definition at line 30 of file CurvilinearState.h.

                                                              : 
    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.

                                                                       : 
    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 54 of file CurvilinearState.h.

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

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

Definition at line 41 of file CurvilinearState.h.

References L1TEmulatorMonitor_cff::p, par_, pzSign_, VectorDoublet< V1, V2 >::second(), mathSSE::sqrt(), Basic3DVector< T >::x(), Basic3DVector< T >::y(), and Basic3DVector< T >::z().

                                  {
    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 52 of file CurvilinearState.h.

References par_.

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

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

Definition at line 58 of file CurvilinearState.h.

References pzSign_.

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

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

Definition at line 56 of file CurvilinearState.h.

References z_.

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

{return z_;}

Member Data Documentation

Definition at line 62 of file CurvilinearState.h.

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

sign of local pz

Definition at line 64 of file CurvilinearState.h.

Referenced by momentum(), and pzSign().

Definition at line 63 of file CurvilinearState.h.

Referenced by position(), and z().