CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Attributes
CurvilinearState Class Reference

#include <CurvilinearState.h>

Public Types

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

Public Member Functions

Scalar charge () const
 
 CurvilinearState ()
 
 CurvilinearState (const Vector &v, Scalar z, Scalar pzsign)
 
 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 More...
 
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.

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

Definition at line 30 of file CurvilinearState.h.

30  :
31  par_(v), z_(z), pzSign_(pzsign) {}
Scalar z() const
mathSSE::Vec4< T > v
Scalar pzSign_
sign of local pz
CurvilinearState::CurvilinearState ( const Vector3D pos,
const Vector3D p,
Scalar  ch 
)
inline

Definition at line 33 of file CurvilinearState.h.

33  :
34  par_(Vector2D(pos.x(),pos.y()), Vector3D( p.x()/p.z(), p.y()/p.z(), ch/p.mag())),
35  z_(pos.z()), pzSign_(p.z()>0. ? 1.:-1.) {}
Basic2DVector< Scalar > Vector2D
Basic3DVector< Scalar > Vector3D
Scalar pzSign_
sign of local pz

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().

54 { return par_.second().z()>0 ? 1 : -1;}
T z() const
Cartesian z coordinate.
const V2 & second() const
Definition: VectorDoublet.h:17
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().

41  {
42  Scalar p = 1./fabs(par_.second().z());
43  if ( p>1.e9 ) p = 1.e9;
44  Scalar dxdz = par_.second().x();
45  Scalar dydz = par_.second().y();
46  Scalar dz = pzSign_/sqrt(1. + dxdz*dxdz + dydz*dydz);
47  Scalar dx = dz*dxdz;
48  Scalar dy = dz*dydz;
49  return Vector3D(dx*p, dy*p, dz*p);
50  }
T y() const
Cartesian y coordinate.
T x() const
Cartesian x coordinate.
T z() const
Cartesian z coordinate.
T sqrt(T t)
Definition: SSEVec.h:28
Basic3DVector< Scalar > Vector3D
const V2 & second() const
Definition: VectorDoublet.h:17
Scalar pzSign_
sign of local pz
const Vector& CurvilinearState::parameters ( void  ) const
inline

Definition at line 52 of file CurvilinearState.h.

References par_.

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

52 { return par_;}
const Vector3D CurvilinearState::position ( ) const
inline

Definition at line 37 of file CurvilinearState.h.

References VectorDoublet< V1, V2 >::first(), par_, Basic2DVector< T >::x(), Basic2DVector< T >::y(), and z_.

37  {
38  return Vector3D(par_.first().x(),par_.first().y(),z_);
39  }
const V1 & first() const
Definition: VectorDoublet.h:16
Basic3DVector< Scalar > Vector3D
T y() const
Cartesian y coordinate.
T x() const
Cartesian x coordinate.
double CurvilinearState::pzSign ( ) const
inline

Definition at line 58 of file CurvilinearState.h.

References pzSign_.

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

58 {return pzSign_;}
Scalar pzSign_
sign of local pz
Scalar CurvilinearState::z ( ) const
inline

Definition at line 56 of file CurvilinearState.h.

References z_.

Referenced by operator*(), operator+(), operator-(), operator/(), and geometryXMLparser.Alignable::pos().

56 {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().