CMS 3D CMS Logo

LocalErrorBaseExtended.h
Go to the documentation of this file.
1 #ifndef LocalErrorType_H
2 #define LocalErrorType_H
3 
6 //
7 // Exceptions
8 //
10 
11 template <class T, class ErrorWeightType>
13 {
14 
15 public:
17  class NullMatrix{};
18 
20 
21  LocalErrorBaseExtended(const NullMatrix &) {}
22 
24  theCartesianError[0][0] = -9999.e10f;
25  theCartesianError[0][1] = 0;
26  theCartesianError[1][1] = -9999.e10f;
27  theCartesianError[2][2] = -9999.e10f;
28  theCartesianError[1][2] = 0;
29  theCartesianError[1][3] = 0;
30  theCartesianError[2][3] = 0;
31  theCartesianError[3][3] = -9999.e10f;
32  }
33 
34  bool invalid() const { return theCartesianError[0][0] <-1.e10f;}
35  bool valid() const { return !invalid();}
36 
37 
42  LocalErrorBaseExtended(T c11, T c21, T c31, T c41,
43  T c22, T c32, T c42,
44  T c33, T c43,
45  T c44) {
46  theCartesianError(0,0)=c11;
47  theCartesianError(1,0)=c21;
48  theCartesianError(2,0)=c31;
49  theCartesianError(3,0)=c41;
50 
51  theCartesianError(1,1)=c22;
52  theCartesianError(2,1)=c32;
53  theCartesianError(3,1)=c42;
54 
55  theCartesianError(2,2)=c33;
56  theCartesianError(3,2)=c43;
57 
58  theCartesianError(3,3)=c44;
59 
60  }
61 
63  theCartesianError(err) { }
64 
66 
67  T cxx() const {
68  return theCartesianError(0,0);
69  }
70 
71  T cyx() const {
72  return theCartesianError(1,0);
73  }
74 
75  T cphixx() const {
76  return theCartesianError(2,0);
77  }
78 
79  T cphiyx() const {
80  return theCartesianError(3,0);
81  }
82 
83  T cyy() const {
84  return theCartesianError(1,1);
85  }
86 
87  T cphixy() const {
88  return theCartesianError(2,1);
89  }
90 
91  T cphiyy() const {
92  return theCartesianError(3,1);
93  }
94 
95  T cphixphix() const {
96  return theCartesianError(2,2);
97  }
98 
99  T cphiyphix() const {
100  return theCartesianError(3,2);
101  }
102 
103  T cphiyphiy() const {
104  return theCartesianError(3,3);
105  }
106 
111  const AlgebraicSymMatrix44 & matrix() const {
112  return theCartesianError;
113  }
114 
117  }
120  }
121 
122 private:
123 
125 
126 };
127 
128 #endif
AlgebraicSymMatrix44 theCartesianError
LocalErrorBaseExtended operator+(const LocalErrorBaseExtended &err) const
LocalErrorBaseExtended(const AlgebraicSymMatrix44 &err)
ROOT::Math::SMatrix< double, 4, 4, ROOT::Math::MatRepSym< double, 4 > > AlgebraicSymMatrix44
LocalErrorBaseExtended(const NullMatrix &)
LocalErrorBaseExtended(T c11, T c21, T c31, T c41, T c22, T c32, T c42, T c33, T c43, T c44)
LocalErrorBaseExtended operator-(const LocalErrorBaseExtended &err) const
const AlgebraicSymMatrix44 & matrix() const
Tag to request a null error matrix.
long double T