#include <FrameToFrameDerivative.h>
Public Member Functions | |
AlgebraicMatrix | frameToFrameDerivative (const Alignable *object, const Alignable *composedObject) const |
AlgebraicMatrix66 | getDerivative (const align::RotationType &objectRot, const align::RotationType &composeRot, const align::GlobalPoint &objectPos, const align::GlobalPoint &composePos) const |
Private Member Functions | |
AlgebraicMatrix | derivativePosPos (const AlgebraicMatrix &RotDet, const AlgebraicMatrix &RotRot) const |
Calculates the derivative DPos/DPos. More... | |
AlgebraicMatrix | derivativePosRot (const AlgebraicMatrix &RotDet, const AlgebraicMatrix &RotRot, const AlgebraicVector &S) const |
Calculates the derivative DPos/DRot. More... | |
AlgebraicMatrix | derivativeRotRot (const AlgebraicMatrix &RotDet, const AlgebraicMatrix &RotRot) const |
Calculates the derivative DRot/DRot. More... | |
AlgebraicMatrix | getDerivative (const align::RotationType &objectRot, const align::RotationType &composeRot, const align::GlobalVector &posVec) const |
AlgebraicVector | linearEulerAngles (const AlgebraicMatrix &rotDelta) const |
Gets linear approximated euler Angles. More... | |
Static Private Member Functions | |
static AlgebraicMatrix | transform (const align::RotationType &) |
Helper to transform from RotationType to AlgebraicMatrix. More... | |
Class for calculating the jacobian d_object/d_composedObject for the rigid body parametrisation of both, i.e. the derivatives expressing the influence of u, v, w, alpha, beta, gamma of the composedObject on u, v, w, alpha, beta, gamma of its component 'object'.
(last update by
)
Definition at line 20 of file FrameToFrameDerivative.h.
|
private |
Calculates the derivative DPos/DPos.
Definition at line 95 of file FrameToFrameDerivative.cc.
Referenced by getDerivative().
|
private |
Calculates the derivative DPos/DRot.
Definition at line 101 of file FrameToFrameDerivative.cc.
Referenced by getDerivative().
|
private |
Calculates the derivative DRot/DRot.
Definition at line 137 of file FrameToFrameDerivative.cc.
References linearEulerAngles().
Referenced by getDerivative().
AlgebraicMatrix FrameToFrameDerivative::frameToFrameDerivative | ( | const Alignable * | object, |
const Alignable * | composedObject | ||
) | const |
Return the derivative DeltaFrame(object)/DeltaFrame(composedObject), i.e. a 6x6 matrix:
/ du/du_c du/dv_c du/dw_c du/da_c du/db_c du/dg_c | | dv/du_c dv/dv_c dv/dw_c dv/da_c dv/db_c dv/dg_c | | dw/du_c dw/dv_c dw/dw_c dw/da_c dw/db_c dw/dg_c | | da/du_c da/dv_c da/dw_c da/da_c da/db_c da/dg_c | | db/du_c db/dv_c db/dw_c db/da_c db/db_c db/dg_c | \ dg/du_c dg/dv_c dg/dw_c dg/da_c dg/db_c dg/dg_c /
where u, v, w, a, b, g are shifts and rotations of the object and u_c, v_c, w_c, a_c, b_c, g_c those of the composed object.
Definition at line 16 of file FrameToFrameDerivative.cc.
References getDerivative(), Alignable::globalPosition(), and Alignable::globalRotation().
Referenced by RigidBodyAlignmentParameters4D::derivatives(), RigidBodyAlignmentParameters::derivatives(), MillePedeMonitor::fillFrameToFrame(), ParametersToParametersDerivatives::initBowedRigid(), and ParametersToParametersDerivatives::initRigidRigid().
AlgebraicMatrix66 FrameToFrameDerivative::getDerivative | ( | const align::RotationType & | objectRot, |
const align::RotationType & | composeRot, | ||
const align::GlobalPoint & | objectPos, | ||
const align::GlobalPoint & | composePos | ||
) | const |
Calculates derivatives DeltaFrame(object)/DeltaFrame(composedobject) using their positions and orientations, see method frameToFrameDerivative(..) for definition. As a new method it gets a new interface avoiding CLHEP that should anyway be replaced by SMatrix at some point...
Definition at line 24 of file FrameToFrameDerivative.cc.
Referenced by frameToFrameDerivative().
|
private |
Calculates derivatives using the orientation Matrixes and the origin difference vector
Definition at line 32 of file FrameToFrameDerivative.cc.
References funct::derivative(), derivativePosPos(), derivativePosRot(), derivativeRotRot(), transform(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
|
private |
Gets linear approximated euler Angles.
Definition at line 173 of file FrameToFrameDerivative.cc.
References gen::C.
Referenced by derivativeRotRot().
|
inlinestaticprivate |
Helper to transform from RotationType to AlgebraicMatrix.
Definition at line 72 of file FrameToFrameDerivative.h.
References dttmaxenums::R, TkRotation< T >::xx(), TkRotation< T >::xy(), TkRotation< T >::xz(), TkRotation< T >::yx(), TkRotation< T >::yy(), TkRotation< T >::yz(), TkRotation< T >::zx(), TkRotation< T >::zy(), and TkRotation< T >::zz().
Referenced by getDerivative().