CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ErrorFrameTransformer.h
Go to the documentation of this file.
1 #ifndef ErrorFrameTransformer_H
2 #define ErrorFrameTransformer_H
3 
7 
9 
11 
12  static GlobalError transform(const LocalError& le, const Surface& surf) {
13  // the GlobalError is a sym matrix, initialisation takes only
14  // 6 T because GlobalError is stored as a lower triangular matrix.
15  Scalar cxx = le.xx();
16  Scalar cxy = le.xy();
17  Scalar cyy = le.yy();
18 
20 
21  return GlobalError( r.xx()*(r.xx()*cxx+r.yx()*cxy) + r.yx()*(r.xx()*cxy+r.yx()*cyy) ,
22  r.xx()*(r.xy()*cxx+r.yy()*cxy) + r.yx()*(r.xy()*cxy+r.yy()*cyy) ,
23  r.xy()*(r.xy()*cxx+r.yy()*cxy) + r.yy()*(r.xy()*cxy+r.yy()*cyy) ,
24  r.xx()*(r.xz()*cxx+r.yz()*cxy) + r.yx()*(r.xz()*cxy+r.yz()*cyy) ,
25  r.xy()*(r.xz()*cxx+r.yz()*cxy) + r.yy()*(r.xz()*cxy+r.yz()*cyy) ,
26  r.xz()*(r.xz()*cxx+r.yz()*cxy) + r.yz()*(r.xz()*cxy+r.yz()*cyy) );
27  }
28 
29  static LocalError transform(const GlobalError& ge, const Surface& surf) {
30  Scalar cxx = ge.cxx(); Scalar cyx = ge.cyx(); Scalar cyy = ge.cyy();
31  Scalar czx = ge.czx(); Scalar czy = ge.czy(); Scalar czz = ge.czz();
32 
34 
35  Scalar l11
36  = r.xx()*(r.xx()*cxx + r.xy()*cyx + r.xz()*czx)
37  + r.xy()*(r.xx()*cyx + r.xy()*cyy + r.xz()*czy)
38  + r.xz()*(r.xx()*czx + r.xy()*czy + r.xz()*czz);
39  Scalar l12
40  = r.yx()*(r.xx()*cxx + r.xy()*cyx + r.xz()*czx)
41  + r.yy()*(r.xx()*cyx + r.xy()*cyy + r.xz()*czy)
42  + r.yz()*(r.xx()*czx + r.xy()*czy + r.xz()*czz);
43  Scalar l22
44  = r.yx()*(r.yx()*cxx + r.yy()*cyx + r.yz()*czx)
45  + r.yy()*(r.yx()*cyx + r.yy()*cyy + r.yz()*czy)
46  + r.yz()*(r.yx()*czx + r.yy()*czy + r.yz()*czz);
47 
48  return LocalError( l11, l12, l22);
49  }
50 
51 };
52 
53 #endif
T xx() const
static GlobalError transform(const LocalError &le, const Surface &surf)
float xx() const
Definition: LocalError.h:24
T yx() const
T xy() const
GlobalErrorBase< double, ErrorMatrixTag > GlobalError
Definition: GlobalError.h:11
float xy() const
Definition: LocalError.h:25
float yy() const
Definition: LocalError.h:26
T yy() const
T xz() const
const RotationType & rotation() const
static LocalError transform(const GlobalError &ge, const Surface &surf)
T yz() const