CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
FrameToFrameDerivative.h
Go to the documentation of this file.
1 #ifndef Alignment_CommonAlignmentParametrization_FrameToFrameDerivative_h
2 #define Alignment_CommonAlignmentParametrization_FrameToFrameDerivative_h
3 
6 
14 
15 class Alignable;
16 
18 {
19  public:
20 
23  const Alignable* composedObject) const;
24 
30  const align::RotationType &composeRot,
31  const align::GlobalPoint &objectPos,
32  const align::GlobalPoint &composePos) const;
33 
34  private:
36  inline static AlgebraicMatrix transform(const align::RotationType&);
37 
40  const align::RotationType &composeRot,
41  const align::GlobalVector &posVec) const;
42 
44  AlgebraicVector linearEulerAngles(const AlgebraicMatrix &rotDelta) const;
45 
48  const AlgebraicMatrix &RotRot) const;
49 
52  const AlgebraicMatrix &RotRot,
53  const AlgebraicVector &S) const;
54 
57  const AlgebraicMatrix &RotRot) const;
58 
59 };
60 
62 {
63  AlgebraicMatrix R(3, 3);
64 
65  R(1, 1) = rot.xx(); R(1, 2) = rot.xy(); R(1, 3) = rot.xz();
66  R(2, 1) = rot.yx(); R(2, 2) = rot.yy(); R(2, 3) = rot.yz();
67  R(3, 1) = rot.zx(); R(3, 2) = rot.zy(); R(3, 3) = rot.zz();
68 
69  return R;
70 }
71 
72 #endif
73 
T xx() const
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepStd< double, 6, 6 > > AlgebraicMatrix66
T yx() const
T zx() const
T xy() const
static AlgebraicMatrix transform(const align::RotationType &)
Helper to transform from RotationType to AlgebraicMatrix.
T zz() const
AlgebraicMatrix66 getDerivative(const align::RotationType &objectRot, const align::RotationType &composeRot, const align::GlobalPoint &objectPos, const align::GlobalPoint &composePos) const
CLHEP::HepMatrix AlgebraicMatrix
T zy() const
AlgebraicMatrix frameToFrameDerivative(const Alignable *object, const Alignable *composedObject) const
Return the derivative DeltaFrame(object)/DeltaFrame(composedobject)
T yy() const
CLHEP::HepVector AlgebraicVector
AlgebraicMatrix derivativeRotRot(const AlgebraicMatrix &RotDet, const AlgebraicMatrix &RotRot) const
Calculates the derivative DRot/DRot.
T xz() const
AlgebraicMatrix derivativePosRot(const AlgebraicMatrix &RotDet, const AlgebraicMatrix &RotRot, const AlgebraicVector &S) const
Calculates the derivative DPos/DRot.
T yz() const
AlgebraicMatrix derivativePosPos(const AlgebraicMatrix &RotDet, const AlgebraicMatrix &RotRot) const
Calculates the derivative DPos/DPos.
AlgebraicVector linearEulerAngles(const AlgebraicMatrix &rotDelta) const
Gets linear approximated euler Angles.