CMS 3D CMS Logo

LocalErrorBaseExtended.h
Go to the documentation of this file.
1 #ifndef LocalErrorType_H
2 #define LocalErrorType_H
3 
7 //
8 // Exceptions
9 //
11 
12 template <class T, class ErrorWeightType>
14 {
15 
16 public:
18  class NullMatrix{};
19 
21 
22  LocalErrorBaseExtended(const NullMatrix &) {}
23 
25  theCartesianError[0][0] = -9999.e10f;
26  theCartesianError[0][1] = 0;
27  theCartesianError[1][1] = -9999.e10f;
28  theCartesianError[2][2] = -9999.e10f;
29  theCartesianError[1][2] = 0;
30  theCartesianError[1][3] = 0;
31  theCartesianError[2][3] = 0;
32  theCartesianError[3][3] = -9999.e10f;
33  }
34 
35  bool invalid() const { return theCartesianError[0][0] <-1.e10f;}
36  bool valid() const { return !invalid();}
37 
38 
43  LocalErrorBaseExtended(T c11, T c21, T c31, T c41,
44  T c22, T c32, T c42,
45  T c33, T c43,
46  T c44) {
47  theCartesianError(0,0)=c11;
48  theCartesianError(1,0)=c21;
49  theCartesianError(2,0)=c31;
50  theCartesianError(3,0)=c41;
51 
52  theCartesianError(1,1)=c22;
53  theCartesianError(2,1)=c32;
54  theCartesianError(3,1)=c42;
55 
56  theCartesianError(2,2)=c33;
57  theCartesianError(3,2)=c43;
58 
59  theCartesianError(3,3)=c44;
60 
61  }
62 
64  theCartesianError(err) { }
65 
67 
68  T cxx() const {
69  return theCartesianError(0,0);
70  }
71 
72  T cyx() const {
73  return theCartesianError(1,0);
74  }
75 
76  T cphixx() const {
77  return theCartesianError(2,0);
78  }
79 
80  T cphiyx() const {
81  return theCartesianError(3,0);
82  }
83 
84  T cyy() const {
85  return theCartesianError(1,1);
86  }
87 
88  T cphixy() const {
89  return theCartesianError(2,1);
90  }
91 
92  T cphiyy() const {
93  return theCartesianError(3,1);
94  }
95 
96  T cphixphix() const {
97  return theCartesianError(2,2);
98  }
99 
100  T cphiyphix() const {
101  return theCartesianError(3,2);
102  }
103 
104  T cphiyphiy() const {
105  return theCartesianError(3,3);
106  }
107 
112  const AlgebraicSymMatrix44 & matrix() const {
113  return theCartesianError;
114  }
115 
118  }
121  }
122 
123 private:
124 
126 
127 };
128 
129 #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