Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:26:38

0001 #ifndef _TRACKER_CARTESIANTRAJECTORYERROR_H_
0002 #define _TRACKER_CARTESIANTRAJECTORYERROR_H_
0003 
0004 #include "DataFormats/Math/interface/AlgebraicROOTObjects.h"
0005 #include "DataFormats/GeometryCommonDetAlgo/interface/GlobalError.h"
0006 
0007 /** Class containing (6x6) error matrix of a track in the global, Cartesian frame.
0008  *  This error matrix should be used with care and in particular not as an
0009  *  intermediate frame when transforming between different, 5-dimensional
0010  *  track parameter frames. The order of the quantities inside the error matrix
0011  *  is the same as for the corresponding parameter vector provided by the
0012  *  GlobalTrajectoryParameters class.
0013  */
0014 
0015 class CartesianTrajectoryError {
0016 public:
0017   // construct
0018   CartesianTrajectoryError() {}
0019 
0020   /** Constructing class from error matrix.
0021    */
0022   CartesianTrajectoryError(const AlgebraicSymMatrix66& aCovarianceMatrix) : theCovarianceMatrix(aCovarianceMatrix) {}
0023 
0024   // access
0025 
0026   /** Returning error matrix.
0027    */
0028   const AlgebraicSymMatrix66& matrix() const { return theCovarianceMatrix; }
0029 
0030   /** Enables the multiplication of the error matrix with a scalar "factor".
0031    */
0032 
0033   void operator*=(double factor) { theCovarianceMatrix *= factor; }
0034 
0035   /// Position error submatrix
0036 
0037   /** Returning (3x3) submatrix of error matrix containing information about the errors
0038    *  and correlations between the different position coordinates. 
0039    */
0040 
0041   const GlobalError position() const { return GlobalError(theCovarianceMatrix.Sub<AlgebraicSymMatrix33>(0, 0)); }
0042 
0043 private:
0044   AlgebraicSymMatrix66 theCovarianceMatrix;
0045 };
0046 
0047 #endif