1 #ifndef DataFormats_Math_AlgebraicROOTObjects_h_
2 #define DataFormats_Math_AlgebraicROOTObjects_h_
7 #define SMATRIX_USE_COMPUTATION
9 #define SMATRIX_USE_CONSTEXPR
13 #include <Math/SVector.h>
14 #include <Math/SMatrix.h>
35 typedef ROOT::Math::SMatrix<double,1,1,ROOT::Math::MatRepStd<double,1,1> >
AlgebraicMatrix11;
36 typedef ROOT::Math::SMatrix<double,1,2,ROOT::Math::MatRepStd<double,1,2> >
AlgebraicMatrix12;
37 typedef ROOT::Math::SMatrix<double,1,3,ROOT::Math::MatRepStd<double,1,3> >
AlgebraicMatrix13;
38 typedef ROOT::Math::SMatrix<double,1,4,ROOT::Math::MatRepStd<double,1,4> >
AlgebraicMatrix14;
39 typedef ROOT::Math::SMatrix<double,1,5,ROOT::Math::MatRepStd<double,1,5> >
AlgebraicMatrix15;
40 typedef ROOT::Math::SMatrix<double,1,6,ROOT::Math::MatRepStd<double,1,6> >
AlgebraicMatrix16;
41 typedef ROOT::Math::SMatrix<double,2,1,ROOT::Math::MatRepStd<double,2,1> >
AlgebraicMatrix21;
42 typedef ROOT::Math::SMatrix<double,2,2,ROOT::Math::MatRepStd<double,2,2> >
AlgebraicMatrix22;
43 typedef ROOT::Math::SMatrix<double,2,3,ROOT::Math::MatRepStd<double,2,3> >
AlgebraicMatrix23;
44 typedef ROOT::Math::SMatrix<double,2,4,ROOT::Math::MatRepStd<double,2,4> >
AlgebraicMatrix24;
45 typedef ROOT::Math::SMatrix<double,2,5,ROOT::Math::MatRepStd<double,2,5> >
AlgebraicMatrix25;
46 typedef ROOT::Math::SMatrix<double,2,6,ROOT::Math::MatRepStd<double,2,6> >
AlgebraicMatrix26;
47 typedef ROOT::Math::SMatrix<double,3,1,ROOT::Math::MatRepStd<double,3,1> >
AlgebraicMatrix31;
48 typedef ROOT::Math::SMatrix<double,3,2,ROOT::Math::MatRepStd<double,3,2> >
AlgebraicMatrix32;
49 typedef ROOT::Math::SMatrix<double,3,3,ROOT::Math::MatRepStd<double,3,3> >
AlgebraicMatrix33;
50 typedef ROOT::Math::SMatrix<double,3,4,ROOT::Math::MatRepStd<double,3,4> >
AlgebraicMatrix34;
51 typedef ROOT::Math::SMatrix<double,3,5,ROOT::Math::MatRepStd<double,3,5> >
AlgebraicMatrix35;
52 typedef ROOT::Math::SMatrix<double,3,6,ROOT::Math::MatRepStd<double,3,6> >
AlgebraicMatrix36;
53 typedef ROOT::Math::SMatrix<double,4,1,ROOT::Math::MatRepStd<double,4,1> >
AlgebraicMatrix41;
54 typedef ROOT::Math::SMatrix<double,4,2,ROOT::Math::MatRepStd<double,4,2> >
AlgebraicMatrix42;
55 typedef ROOT::Math::SMatrix<double,4,3,ROOT::Math::MatRepStd<double,4,3> >
AlgebraicMatrix43;
56 typedef ROOT::Math::SMatrix<double,4,4,ROOT::Math::MatRepStd<double,4,4> >
AlgebraicMatrix44;
57 typedef ROOT::Math::SMatrix<double,4,5,ROOT::Math::MatRepStd<double,4,5> >
AlgebraicMatrix45;
58 typedef ROOT::Math::SMatrix<double,4,6,ROOT::Math::MatRepStd<double,4,6> >
AlgebraicMatrix46;
59 typedef ROOT::Math::SMatrix<double,5,1,ROOT::Math::MatRepStd<double,5,1> >
AlgebraicMatrix51;
60 typedef ROOT::Math::SMatrix<double,5,2,ROOT::Math::MatRepStd<double,5,2> >
AlgebraicMatrix52;
61 typedef ROOT::Math::SMatrix<double,5,3,ROOT::Math::MatRepStd<double,5,3> >
AlgebraicMatrix53;
62 typedef ROOT::Math::SMatrix<double,5,4,ROOT::Math::MatRepStd<double,5,4> >
AlgebraicMatrix54;
63 typedef ROOT::Math::SMatrix<double,5,5,ROOT::Math::MatRepStd<double,5,5> >
AlgebraicMatrix55;
64 typedef ROOT::Math::SMatrix<double,5,6,ROOT::Math::MatRepStd<double,5,6> >
AlgebraicMatrix56;
65 typedef ROOT::Math::SMatrix<double,6,1,ROOT::Math::MatRepStd<double,6,1> >
AlgebraicMatrix61;
66 typedef ROOT::Math::SMatrix<double,6,2,ROOT::Math::MatRepStd<double,6,2> >
AlgebraicMatrix62;
67 typedef ROOT::Math::SMatrix<double,6,3,ROOT::Math::MatRepStd<double,6,3> >
AlgebraicMatrix63;
68 typedef ROOT::Math::SMatrix<double,6,4,ROOT::Math::MatRepStd<double,6,4> >
AlgebraicMatrix64;
69 typedef ROOT::Math::SMatrix<double,6,5,ROOT::Math::MatRepStd<double,6,5> >
AlgebraicMatrix65;
70 typedef ROOT::Math::SMatrix<double,6,6,ROOT::Math::MatRepStd<double,6,6> >
AlgebraicMatrix66;
75 typedef typename ROOT::Math::SVector<double,D1>
Vector;
76 typedef typename ROOT::Math::SMatrix<double,D1,D1,ROOT::Math::MatRepSym<double,D1> >
SymMatrix;
77 typedef typename ROOT::Math::SMatrix<double,D1,D2,ROOT::Math::MatRepStd<double,D1,D2> >
Matrix;
ROOT::Math::SMatrix< double, D1, D1, ROOT::Math::MatRepSym< double, D1 > > SymMatrix
ROOT::Math::SMatrix< double, 2, 2, ROOT::Math::MatRepSym< double, 2 > > AlgebraicSymMatrix22
============= When we need templated root objects
ROOT::Math::SMatrix< double, 5, 6, ROOT::Math::MatRepStd< double, 5, 6 > > AlgebraicMatrix56
ROOT::Math::SVector< double, 15 > AlgebraicVector15
ROOT::Math::SVector< double, 1 > AlgebraicVector1
ROOT::Math::SMatrix< double, 1, 2, ROOT::Math::MatRepStd< double, 1, 2 > > AlgebraicMatrix12
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepStd< double, 6, 6 > > AlgebraicMatrix66
ROOT::Math::SMatrixIdentity AlgebraicMatrixID
ROOT::Math::SMatrix< double, 3, 4, ROOT::Math::MatRepStd< double, 3, 4 > > AlgebraicMatrix34
ROOT::Math::SMatrix< double, 5, 4, ROOT::Math::MatRepStd< double, 5, 4 > > AlgebraicMatrix54
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
ROOT::Math::SMatrix< double, 5, 1, ROOT::Math::MatRepStd< double, 5, 1 > > AlgebraicMatrix51
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
ROOT::Math::SMatrix< double, 1, 6, ROOT::Math::MatRepStd< double, 1, 6 > > AlgebraicMatrix16
ROOT::Math::SMatrix< double, 6, 4, ROOT::Math::MatRepStd< double, 6, 4 > > AlgebraicMatrix64
ROOT::Math::SVector< double, 6 > AlgebraicVector6
ROOT::Math::SMatrix< double, 4, 5, ROOT::Math::MatRepStd< double, 4, 5 > > AlgebraicMatrix45
ROOT::Math::SMatrix< double, 2, 2, ROOT::Math::MatRepStd< double, 2, 2 > > AlgebraicMatrix22
ROOT::Math::SMatrix< double, 3, 2, ROOT::Math::MatRepStd< double, 3, 2 > > AlgebraicMatrix32
ROOT::Math::SMatrix< double, 6, 2, ROOT::Math::MatRepStd< double, 6, 2 > > AlgebraicMatrix62
ROOT::Math::SMatrix< double, 3, 1, ROOT::Math::MatRepStd< double, 3, 1 > > AlgebraicMatrix31
ROOT::Math::SMatrix< double, D1, D2, ROOT::Math::MatRepStd< double, D1, D2 > > Matrix
ROOT::Math::SMatrix< double, 6, 1, ROOT::Math::MatRepStd< double, 6, 1 > > AlgebraicMatrix61
ROOT::Math::SMatrix< double, 2, 1, ROOT::Math::MatRepStd< double, 2, 1 > > AlgebraicMatrix21
ROOT::Math::SMatrix< double, 4, 4, ROOT::Math::MatRepSym< double, 4 > > AlgebraicSymMatrix44
ROOT::Math::SMatrix< double, 5, 3, ROOT::Math::MatRepStd< double, 5, 3 > > AlgebraicMatrix53
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepSym< double, 3 > > AlgebraicSymMatrix33
ROOT::Math::SMatrix< double, 4, 1, ROOT::Math::MatRepStd< double, 4, 1 > > AlgebraicMatrix41
ROOT::Math::SMatrix< double, 4, 6, ROOT::Math::MatRepStd< double, 4, 6 > > AlgebraicMatrix46
ROOT::Math::SMatrix< double, 4, 2, ROOT::Math::MatRepStd< double, 4, 2 > > AlgebraicMatrix42
ROOT::Math::SMatrix< double, 1, 3, ROOT::Math::MatRepStd< double, 1, 3 > > AlgebraicMatrix13
ROOT::Math::SMatrix< double, 5, 2, ROOT::Math::MatRepStd< double, 5, 2 > > AlgebraicMatrix52
ROOT::Math::SVector< double, 3 > AlgebraicVector3
ROOT::Math::SMatrix< double, 1, 5, ROOT::Math::MatRepStd< double, 1, 5 > > AlgebraicMatrix15
ROOT::Math::SMatrix< double, 2, 3, ROOT::Math::MatRepStd< double, 2, 3 > > AlgebraicMatrix23
ROOT::Math::SMatrix< double, 1, 4, ROOT::Math::MatRepStd< double, 1, 4 > > AlgebraicMatrix14
ROOT::Math::SVector< double, D1 > Vector
ROOT::Math::SVector< double, 5 > AlgebraicVector5
ROOT::Math::SMatrix< double, 4, 3, ROOT::Math::MatRepStd< double, 4, 3 > > AlgebraicMatrix43
ROOT::Math::SMatrix< double, 6, 3, ROOT::Math::MatRepStd< double, 6, 3 > > AlgebraicMatrix63
ROOT::Math::SMatrix< double, 6, 5, ROOT::Math::MatRepStd< double, 6, 5 > > AlgebraicMatrix65
ROOT::Math::SMatrix< double, 3, 5, ROOT::Math::MatRepStd< double, 3, 5 > > AlgebraicMatrix35
ROOT::Math::SMatrix< double, 2, 4, ROOT::Math::MatRepStd< double, 2, 4 > > AlgebraicMatrix24
ROOT::Math::SMatrix< double, 2, 6, ROOT::Math::MatRepStd< double, 2, 6 > > AlgebraicMatrix26
ROOT::Math::SMatrix< double, 2, 5, ROOT::Math::MatRepStd< double, 2, 5 > > AlgebraicMatrix25
ROOT::Math::SMatrix< double, 4, 4, ROOT::Math::MatRepStd< double, 4, 4 > > AlgebraicMatrix44
ROOT::Math::SMatrix< double, 1, 1, ROOT::Math::MatRepStd< double, 1, 1 > > AlgebraicMatrix11
ROOT::Math::SVector< double, 4 > AlgebraicVector4
ROOT::Math::SMatrix< double, 3, 6, ROOT::Math::MatRepStd< double, 3, 6 > > AlgebraicMatrix36
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepStd< double, 5, 5 > > AlgebraicMatrix55
ROOT::Math::SVector< double, 2 > AlgebraicVector2
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepStd< double, 3, 3 > > AlgebraicMatrix33
ROOT::Math::SMatrix< double, 1, 1, ROOT::Math::MatRepSym< double, 1 > > AlgebraicSymMatrix11