Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:12

0001 #ifndef KinematicParametersError_H
0002 #define KinematicParametersError_H
0003 
0004 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
0005 #include "RecoVertex/VertexPrimitives/interface/VertexException.h"
0006 #include "TrackingTools/TrajectoryParametrization/interface/CartesianTrajectoryError.h"
0007 
0008 #include "TrackingTools/AnalyticalJacobians/interface/JacobianCartesianToCurvilinear.h"
0009 #include "TrackingTools/AnalyticalJacobians/interface/JacobianCurvilinearToCartesian.h"
0010 #include "RecoVertex/KinematicFitPrimitives/interface/Matrices.h"
0011 
0012 /**
0013  * Class to store the error matrix
0014  * for (x,y,z,p_x,p_y,p_z,m)
0015  * particle parametrization
0016  *
0017  * Kirill Prokofiev January 2003
0018  */
0019 
0020 class KinematicParametersError {
0021 public:
0022   KinematicParametersError() { vl = false; }
0023 
0024   KinematicParametersError(const AlgebraicSymMatrix77& er) : theCovMatrix(er) { vl = true; }
0025 
0026   KinematicParametersError(const CartesianTrajectoryError& err, float merr) {
0027     theCovMatrix.Place_at(err.matrix(), 0, 0);
0028     theCovMatrix(6, 6) = merr * merr;
0029     vl = true;
0030   }
0031 
0032   /**
0033  * access methods
0034  */
0035 
0036   AlgebraicSymMatrix77 const& matrix() const { return theCovMatrix; }
0037 
0038   AlgebraicSymMatrix77& matrix() { return theCovMatrix; }
0039 
0040   bool isValid() const { return vl; }
0041 
0042 private:
0043   AlgebraicSymMatrix77 theCovMatrix;
0044   bool vl;
0045 };
0046 #endif