CMS 3D CMS Logo

AlignTransformError.h
Go to the documentation of this file.
1 #ifndef AlignTransformError_H
2 #define AlignTransformError_H
4 
5 #include "CLHEP/Matrix/SymMatrix.h"
6 #include "CLHEP/Vector/RotationInterfaces.h"
7 
9 
14 public:
15  typedef CLHEP::HepSymMatrix SymMatrix;
16 
18  AlignTransformError(const SymMatrix& symMatrix, align::ID irawId) : m_rawId(irawId) {
19  for (unsigned int i = 0; i < m_nPars; ++i)
20  for (unsigned int j = 0; j <= i; ++j)
21  m_Parameters[i * (i + 1) / 2 + j] = symMatrix[i][j];
22  }
23 
24  SymMatrix matrix() const {
26  for (unsigned int i = 0; i < m_nPars; ++i)
27  for (unsigned int j = 0; j <= i; ++j)
28  result[i][j] = m_Parameters[i * (i + 1) / 2 + j];
29  return result;
30  }
31 
32  align::ID rawId() const { return m_rawId; }
33 
34 private:
35  static const unsigned int m_nPars = 3;
36  double m_Parameters[m_nPars * (m_nPars + 1) / 2];
38 
40 };
41 #endif //AlignTransformError_H
SymMatrix matrix() const
CLHEP::HepSymMatrix SymMatrix
uint32_t ID
Definition: Definitions.h:24
align::ID rawId() const
AlignTransformError(const SymMatrix &symMatrix, align::ID irawId)
static const unsigned int m_nPars
double m_Parameters[m_nPars *(m_nPars+1)/2]
#define COND_SERIALIZABLE
Definition: Serializable.h:39