28 return asSMatrix<6, 6>(this->
getDerivative(objectRot, composeRot, composePos - objectPos));
40 diffVec(1) = posVec.
x();
41 diffVec(2) = posVec.
y();
42 diffVec(3) = posVec.
z();
97 return RotDet * RotRot.T();
118 dEulerA = RotDet * (RotRot.T() * RotDa * RotRot *
S);
119 dEulerB = RotDet * (RotRot.T() * RotDb * RotRot *
S);
120 dEulerC = RotDet * (RotRot.T() * RotDc * RotRot *
S);
123 eulerDeriv[0][0] = dEulerA[0];
124 eulerDeriv[1][0] = dEulerA[1];
125 eulerDeriv[2][0] = dEulerA[2];
126 eulerDeriv[0][1] = dEulerB[0];
127 eulerDeriv[1][1] = dEulerB[1];
128 eulerDeriv[2][1] = dEulerB[2];
129 eulerDeriv[0][2] = dEulerC[0];
130 eulerDeriv[1][2] = dEulerC[1];
131 eulerDeriv[2][2] = dEulerC[2];
159 eulerDeriv[0][0] = dEulerA[0];
160 eulerDeriv[1][0] = dEulerA[1];
161 eulerDeriv[2][0] = dEulerA[2];
162 eulerDeriv[0][1] = dEulerB[0];
163 eulerDeriv[1][1] = dEulerB[1];
164 eulerDeriv[2][1] = dEulerB[2];
165 eulerDeriv[0][2] = dEulerC[0];
166 eulerDeriv[1][2] = dEulerC[1];
167 eulerDeriv[2][2] = dEulerC[2];
186 eulerAngles = eulerAB * rotDelta * aB + eulerC * rotDelta *
C;
AlgebraicVector linearEulerAngles(const AlgebraicMatrix &rotDelta) const
Gets linear approximated euler Angles.
Derivative< X, A >::type derivative(const A &_)
static AlgebraicMatrix transform(const align::RotationType &)
Helper to transform from RotationType to AlgebraicMatrix.
const PositionType & globalPosition() const
Return the global position of the object.
CLHEP::HepMatrix AlgebraicMatrix
AlgebraicMatrix66 getDerivative(const align::RotationType &objectRot, const align::RotationType &composeRot, const align::GlobalPoint &objectPos, const align::GlobalPoint &composePos) const
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepStd< double, 6, 6 > > AlgebraicMatrix66
CLHEP::HepVector AlgebraicVector
AlgebraicMatrix derivativePosRot(const AlgebraicMatrix &RotDet, const AlgebraicMatrix &RotRot, const AlgebraicVector &S) const
Calculates the derivative DPos/DRot.
const RotationType & globalRotation() const
Return the global orientation of the object.
AlgebraicMatrix derivativePosPos(const AlgebraicMatrix &RotDet, const AlgebraicMatrix &RotRot) const
Calculates the derivative DPos/DPos.
AlgebraicMatrix frameToFrameDerivative(const Alignable *object, const Alignable *composedObject) const
AlgebraicMatrix derivativeRotRot(const AlgebraicMatrix &RotDet, const AlgebraicMatrix &RotRot) const
Calculates the derivative DRot/DRot.