CMS 3D CMS Logo

Public Types | Public Member Functions | Private Attributes

CurvilinearTrajectoryError Class Reference

#include <CurvilinearTrajectoryError.h>

List of all members.

Public Types

enum  { dimension = 5 }
 

parameter dimension

More...
typedef math::Error< dimension >
::type 
MathCovarianceMatrix
 5 parameter covariance matrix

Public Member Functions

 CurvilinearTrajectoryError ()
 CurvilinearTrajectoryError (InvalidError)
 CurvilinearTrajectoryError (const AlgebraicSymMatrix55 &aCovarianceMatrix)
bool invalid () const
const AlgebraicSymMatrix55matrix () const
 operator const MathCovarianceMatrix & () const
 operator MathCovarianceMatrix ()
void operator*= (double factor)
bool posDef () const
bool valid () const
void zeroFieldScaling (double factor)

Private Attributes

AlgebraicSymMatrix55 theCovarianceMatrix

Detailed Description

Parametrization of the error matrix in the curvilinear frame. This frame is tangent to the track at the point of definition, with Z_T parallel to the track. X_T is in the global xy plane and points to the left when looking into the direction of the track, and Y_T forms a right-handed frame with X_T and Z_T.

The error along Z_T is therefore zero. The parameters are
sigma^2( charge / abs_momentum)
sigma^2( lambda)
sigma^2( phi)
sigma^2( x_transverse))
sigma^2( y_transverse))

Please note that lambda and phi are defined in the global frame. Lambda is the helix dip angle (pi/2 minus theta (polar angle)), while phi is the angle of inclination with the global x-axis in the transverse (global xy) plane.

Definition at line 27 of file CurvilinearTrajectoryError.h.


Member Typedef Documentation

5 parameter covariance matrix

Definition at line 33 of file CurvilinearTrajectoryError.h.


Member Enumeration Documentation

anonymous enum

parameter dimension

Enumerator:
dimension 

Definition at line 31 of file CurvilinearTrajectoryError.h.

{ dimension = 5 };

Constructor & Destructor Documentation

CurvilinearTrajectoryError::CurvilinearTrajectoryError ( ) [inline]

Definition at line 36 of file CurvilinearTrajectoryError.h.

{}
CurvilinearTrajectoryError::CurvilinearTrajectoryError ( InvalidError  ) [inline]

Definition at line 38 of file CurvilinearTrajectoryError.h.

References theCovarianceMatrix.

{theCovarianceMatrix(0,0)=-99999.e10;}
CurvilinearTrajectoryError::CurvilinearTrajectoryError ( const AlgebraicSymMatrix55 aCovarianceMatrix) [inline]

Constructing class from a full covariance matrix. The sequence of the parameters is the same as the one described above.

Definition at line 43 of file CurvilinearTrajectoryError.h.

                                                                            :
    theCovarianceMatrix(aCovarianceMatrix) { }

Member Function Documentation

bool CurvilinearTrajectoryError::invalid ( ) const [inline]

Definition at line 46 of file CurvilinearTrajectoryError.h.

References theCovarianceMatrix.

Referenced by valid().

{ return theCovarianceMatrix(0,0)<-1.e10;}
const AlgebraicSymMatrix55& CurvilinearTrajectoryError::matrix ( void  ) const [inline]
CurvilinearTrajectoryError::operator const MathCovarianceMatrix & ( ) const [inline]

Definition at line 82 of file CurvilinearTrajectoryError.h.

References theCovarianceMatrix.

{ return theCovarianceMatrix; }
CurvilinearTrajectoryError::operator MathCovarianceMatrix ( ) [inline]

Definition at line 81 of file CurvilinearTrajectoryError.h.

References theCovarianceMatrix.

{ return theCovarianceMatrix; }
void CurvilinearTrajectoryError::operator*= ( double  factor) [inline]

Enables the multiplication of the covariance matrix with the scalar "factor".

Definition at line 67 of file CurvilinearTrajectoryError.h.

References theCovarianceMatrix.

                                   {
    theCovarianceMatrix *= factor;
  }
bool CurvilinearTrajectoryError::posDef ( ) const [inline]

Definition at line 50 of file CurvilinearTrajectoryError.h.

References theCovarianceMatrix.

                      { 
    return (theCovarianceMatrix(0,0)>=0) && (theCovarianceMatrix(1,1)>=0) && 
      (theCovarianceMatrix(2,2)>=0) && (theCovarianceMatrix(3,3)>=0) && (theCovarianceMatrix(4,4)>=0);
  }
bool CurvilinearTrajectoryError::valid ( ) const [inline]
void CurvilinearTrajectoryError::zeroFieldScaling ( double  factor) [inline]

Definition at line 71 of file CurvilinearTrajectoryError.h.

References i, j, mathSSE::sqrt(), and theCovarianceMatrix.

Referenced by FreeTrajectoryState::rescaleError().

                                      {
    double root_of_factor = sqrt(factor);
    //scale the 0 indexed covariance by the factor
    for (unsigned int i=1;i!=5;++i)      theCovarianceMatrix(i,0)*=root_of_factor;

    //scale all others by the scared factor
    for (unsigned int i=1;i!=5;++i)  for (unsigned int j=i;j!=5;++j) theCovarianceMatrix(i,j)*=factor;
    //term 0,0 is not scaled at all
  }

Member Data Documentation