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 
17 
18 class Alignable;
19 
21 {
22  public:
23 
36 
38  const Alignable* composedObject) const;
39 
46  const align::RotationType &composeRot,
47  const align::GlobalPoint &objectPos,
48  const align::GlobalPoint &composePos) const;
49 
50  private:
52  inline static AlgebraicMatrix transform(const align::RotationType&);
53 
56  const align::RotationType &composeRot,
57  const align::GlobalVector &posVec) const;
58 
60  AlgebraicVector linearEulerAngles(const AlgebraicMatrix &rotDelta) const;
61 
64  const AlgebraicMatrix &RotRot) const;
65 
68  const AlgebraicMatrix &RotRot,
69  const AlgebraicVector &S) const;
70 
73  const AlgebraicMatrix &RotRot) const;
74 
75 };
76 
78 {
79  AlgebraicMatrix R(3, 3);
80 
81  R(1, 1) = rot.xx(); R(1, 2) = rot.xy(); R(1, 3) = rot.xz();
82  R(2, 1) = rot.yx(); R(2, 2) = rot.yy(); R(2, 3) = rot.yz();
83  R(3, 1) = rot.zx(); R(3, 2) = rot.zy(); R(3, 3) = rot.zz();
84 
85  return R;
86 }
87 
88 #endif
89 
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
T yy() const
CLHEP::HepVector AlgebraicVector
AlgebraicMatrix derivativeRotRot(const AlgebraicMatrix &RotDet, const AlgebraicMatrix &RotRot) const
Calculates the derivative DRot/DRot.
double S(const TLorentzVector &, const TLorentzVector &)
Definition: Particle.cc:99
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.