CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
LocalTrajectoryError.h
Go to the documentation of this file.
1 #ifndef _TRACKER_LOCALTRAJECTORYERROR_H_
2 #define _TRACKER_LOCALTRAJECTORYERROR_H_
3 
6 
7 #include <boost/shared_ptr.hpp>
8 
22 public:
23  // construct
26  // destruct
28 
29  bool invalid() const { return theCovarianceMatrix(0,0)<-1.e10;}
30  bool valid() const { return !invalid();}
31 
32  // not really full check of posdef
33  bool posDef() const {
34  return (theCovarianceMatrix(0,0)>=0) && (theCovarianceMatrix(1,1)>=0) &&
35  (theCovarianceMatrix(2,2)>=0) && (theCovarianceMatrix(3,3)>=0) && (theCovarianceMatrix(4,4)>=0);
36  }
37 
38 
43  LocalTrajectoryError(const AlgebraicSymMatrix55& aCovarianceMatrix):
44  theCovarianceMatrix(aCovarianceMatrix), theWeightMatrixPtr() { }
45 
52  LocalTrajectoryError( float dx, float dy, float dxdir, float dydir,
53  float dpinv);
54 
55 // access
56 
60  const AlgebraicSymMatrix55 &matrix() const {
61  return theCovarianceMatrix;
62  }
63 
66  const AlgebraicSymMatrix55 &weightMatrix() const;
67 
68 
73  theCovarianceMatrix *= factor;
74  if ((theWeightMatrixPtr.get() != 0) && (factor != 0.0)) { (*theWeightMatrixPtr) /= factor; }
75  return *this;
76  }
77 
84  theCovarianceMatrix(4,4));
85  }
86 
87 private:
89  mutable boost::shared_ptr<AlgebraicSymMatrix55> theWeightMatrixPtr;
90 };
91 
92 #endif
LocalTrajectoryError & operator*=(double factor)
LocalTrajectoryError(InvalidError)
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
LocalError positionError() const
const AlgebraicSymMatrix55 & matrix() const
AlgebraicSymMatrix55 theCovarianceMatrix
LocalTrajectoryError(const AlgebraicSymMatrix55 &aCovarianceMatrix)
const AlgebraicSymMatrix55 & weightMatrix() const
boost::shared_ptr< AlgebraicSymMatrix55 > theWeightMatrixPtr