Jpp
Public Member Functions | Protected Attributes | List of all members
JDETECTOR::JModuleRotation_t Struct Reference

Auxiliary data structure for module rotation. More...

#include <JDetectorCalibration.hh>

Inheritance diagram for JDETECTOR::JModuleRotation_t:
JLANG::JObjectID JGEOMETRY3D::JQuaternion3D JLANG::JComparable< JObjectID > JLANG::JComparable< JObjectID, int > JMATH::JMath< JFirst_t, JSecond_t > JMATH::JMath< JFirst_t, JSecond_t > JMATH::JMath< JFirst_t, JSecond_t > JMATH::JMath< JFirst_t, JSecond_t > JLANG::JEquals< JFirst_t, JSecond_t >

Public Member Functions

 JModuleRotation_t ()
 Default constructor. More...
 
 JModuleRotation_t (const JObjectID &id, const JQuaternion3D &rotation)
 Constructor. More...
 
int getID () const
 Get identifier. More...
 
void setID (const int id)
 Set identifier. More...
 
bool less (const JObjectID &object) const
 Less than method. More...
 
bool less (const int id) const
 Less than method. More...
 
bool more (const int id) const
 More than method. More...
 
const JQuaternion3DgetQuaternion () const
 Get quaternion. More...
 
JQuaternion3DgetQuaternion ()
 Get quaternion. More...
 
void setQuaternion (const JQuaternion3D &quaternion)
 Set quaternion. More...
 
 operator JVector3D () const
 Type conversion operator. More...
 
 operator JVersor3D () const
 Type conversion operator. More...
 
double getA () const
 Get a value. More...
 
double getB () const
 Get b value. More...
 
double getC () const
 Get c value. More...
 
double getD () const
 Get d value. More...
 
JQuaternion3DsetIdentity ()
 Set to identity matrix. More...
 
JQuaternion3Dconjugate ()
 Conjugate quaternion. More...
 
JQuaternion3Dnegate ()
 Negate quaternion. More...
 
JQuaternion3Dadd (const JQuaternion3D &quaternion)
 Add quaternion. More...
 
JQuaternion3Dsub (const JQuaternion3D &quaternion)
 Subtract quaternion. More...
 
JQuaternion3Dmul (const double factor)
 Scale quaternion. More...
 
JQuaternion3Dmul (const JQuaternion3D &first, const JQuaternion3X &second)
 Quaternion multiplicaion. More...
 
JQuaternion3Dmul (const JQuaternion3D &first, const JQuaternion3Y &second)
 Quaternion multiplicaion. More...
 
JQuaternion3Dmul (const JQuaternion3D &first, const JQuaternion3Z &second)
 Quaternion multiplicaion. More...
 
JQuaternion3Dmul (const JQuaternion3D &first, const JQuaternion3D &second)
 Quaternion multiplicaion. More...
 
JQuaternion3Dmul (const JQuaternion3X &qx, const JQuaternion3Y &qy, const JQuaternion3Z &qz)
 Quaternion multiplicaion. More...
 
JFirst_t & mul (const JSecond_t &object)
 Multiply with object. More...
 
JQuaternion3Ddiv (const double factor)
 Scale quaternion. More...
 
void rotate (double &__x, double &__y, double &__z) const
 Rotate. More...
 
void rotate_back (double &__x, double &__y, double &__z) const
 Rotate back. More...
 
bool equals (const JQuaternion3D &quaternion, const double precision=std::numeric_limits< double >::min()) const
 Check equality. More...
 
double getLengthSquared () const
 Get length squared. More...
 
double getLength () const
 Get length. More...
 
double getDistanceSquared (const JQuaternion3D &quaternion) const
 Get squared of distance to quaternion. More...
 
double getDistance (const JQuaternion3D &quaternion) const
 Get distance to quaternion. More...
 
double getDot (const JQuaternion3D &quaternion) const
 Get dot product. More...
 

Protected Attributes

int __id
 
double __a
 
double __b
 
double __c
 
double __d
 

Detailed Description

Auxiliary data structure for module rotation.

Definition at line 184 of file JDetectorCalibration.hh.

Constructor & Destructor Documentation

◆ JModuleRotation_t() [1/2]

JDETECTOR::JModuleRotation_t::JModuleRotation_t ( )
inline

Default constructor.

Definition at line 191 of file JDetectorCalibration.hh.

192  {}

◆ JModuleRotation_t() [2/2]

JDETECTOR::JModuleRotation_t::JModuleRotation_t ( const JObjectID id,
const JQuaternion3D rotation 
)
inline

Constructor.

Parameters
idmodule identifier
rotationmodule rotation

Definition at line 201 of file JDetectorCalibration.hh.

202  :
203  JObjectID (id),
204  JQuaternion3D(rotation)
205  {}

Member Function Documentation

◆ getID()

int JLANG::JObjectID::getID ( ) const
inlineinherited

Get identifier.

Returns
identifier

Definition at line 55 of file JObjectID.hh.

56  {
57  return __id;
58  }

◆ setID()

void JLANG::JObjectID::setID ( const int  id)
inlineinherited

Set identifier.

Parameters
ididentifier

Definition at line 66 of file JObjectID.hh.

67  {
68  this->__id = id;
69  }

◆ less() [1/2]

bool JLANG::JObjectID::less ( const JObjectID object) const
inlineinherited

Less than method.

Parameters
objectobject identifier
Returns
true if this identifier less than given identifier; else false

Definition at line 78 of file JObjectID.hh.

79  {
80  return this->getID() < object.getID();
81  }

◆ less() [2/2]

bool JLANG::JObjectID::less ( const int  id) const
inlineinherited

Less than method.

Parameters
ididentifier
Returns
true if this identifier less than given identifier; else false

Definition at line 90 of file JObjectID.hh.

91  {
92  return this->getID() < id;
93  }

◆ more()

bool JLANG::JObjectID::more ( const int  id) const
inlineinherited

More than method.

Parameters
ididentifier
Returns
true if this identifier greater than given identifier; else false

Definition at line 102 of file JObjectID.hh.

103  {
104  return this->getID() > id;
105  }

◆ getQuaternion() [1/2]

const JQuaternion3D& JGEOMETRY3D::JQuaternion3D::getQuaternion ( ) const
inlineinherited

Get quaternion.

Returns
quaternion

Definition at line 330 of file JQuaternion3D.hh.

331  {
332  return static_cast<const JQuaternion3D&>(*this);
333  }

◆ getQuaternion() [2/2]

JQuaternion3D& JGEOMETRY3D::JQuaternion3D::getQuaternion ( )
inlineinherited

Get quaternion.

Returns
quaternion

Definition at line 341 of file JQuaternion3D.hh.

342  {
343  return static_cast<JQuaternion3D&>(*this);
344  }

◆ setQuaternion()

void JGEOMETRY3D::JQuaternion3D::setQuaternion ( const JQuaternion3D quaternion)
inlineinherited

Set quaternion.

Parameters
quaternionquaternion

Definition at line 352 of file JQuaternion3D.hh.

353  {
354  static_cast<JQuaternion3D&>(*this) = quaternion;
355  }

◆ operator JVector3D()

JGEOMETRY3D::JQuaternion3D::operator JVector3D ( ) const
inlineinherited

Type conversion operator.

Returns
position

Definition at line 363 of file JQuaternion3D.hh.

364  {
365  return JVector3D(this->getB(), this->getC(), this->getD());
366  }

◆ operator JVersor3D()

JGEOMETRY3D::JQuaternion3D::operator JVersor3D ( ) const
inlineinherited

Type conversion operator.

Returns
direction

Definition at line 374 of file JQuaternion3D.hh.

375  {
376  return JVersor3D(this->getB(), this->getC(), this->getD());
377  }

◆ getA()

double JGEOMETRY3D::JQuaternion3D::getA ( ) const
inlineinherited

Get a value.

Returns
a value

Definition at line 385 of file JQuaternion3D.hh.

386  {
387  return __a;
388  }

◆ getB()

double JGEOMETRY3D::JQuaternion3D::getB ( ) const
inlineinherited

Get b value.

Returns
b value

Definition at line 396 of file JQuaternion3D.hh.

397  {
398  return __b;
399  }

◆ getC()

double JGEOMETRY3D::JQuaternion3D::getC ( ) const
inlineinherited

Get c value.

Returns
c value

Definition at line 407 of file JQuaternion3D.hh.

408  {
409  return __c;
410  }

◆ getD()

double JGEOMETRY3D::JQuaternion3D::getD ( ) const
inlineinherited

Get d value.

Returns
d value

Definition at line 418 of file JQuaternion3D.hh.

419  {
420  return __d;
421  }

◆ setIdentity()

JQuaternion3D& JGEOMETRY3D::JQuaternion3D::setIdentity ( )
inlineinherited

Set to identity matrix.

Returns
this quaternion

Definition at line 429 of file JQuaternion3D.hh.

430  {
431  __a = 1.0;
432  __b = 0.0;
433  __c = 0.0;
434  __d = 0.0;
435 
436  return *this;
437  }

◆ conjugate()

JQuaternion3D& JGEOMETRY3D::JQuaternion3D::conjugate ( )
inlineinherited

Conjugate quaternion.

Returns
this quaternion

Definition at line 445 of file JQuaternion3D.hh.

446  {
447  __b = -__b;
448  __c = -__c;
449  __d = -__d;
450 
451  return *this;
452  }

◆ negate()

JQuaternion3D& JGEOMETRY3D::JQuaternion3D::negate ( )
inlineinherited

Negate quaternion.

Returns
this quaternion

Definition at line 460 of file JQuaternion3D.hh.

461  {
462  __a = -__a;
463  __b = -__b;
464  __c = -__c;
465  __d = -__d;
466 
467  return *this;
468  }

◆ add()

JQuaternion3D& JGEOMETRY3D::JQuaternion3D::add ( const JQuaternion3D quaternion)
inlineinherited

Add quaternion.

Parameters
quaternionquaternion
Returns
this quaternion

Definition at line 477 of file JQuaternion3D.hh.

478  {
479  __a += quaternion.getA();
480  __b += quaternion.getB();
481  __c += quaternion.getC();
482  __d += quaternion.getD();
483 
484  return *this;
485  }

◆ sub()

JQuaternion3D& JGEOMETRY3D::JQuaternion3D::sub ( const JQuaternion3D quaternion)
inlineinherited

Subtract quaternion.

Parameters
quaternionquaternion
Returns
this quaternion

Definition at line 494 of file JQuaternion3D.hh.

495  {
496  __a -= quaternion.getA();
497  __b -= quaternion.getB();
498  __c -= quaternion.getC();
499  __d -= quaternion.getD();
500 
501  return *this;
502  }

◆ mul() [1/7]

JQuaternion3D& JGEOMETRY3D::JQuaternion3D::mul ( const double  factor)
inlineinherited

Scale quaternion.

Parameters
factormultiplication factor
Returns
this quaternion

Definition at line 511 of file JQuaternion3D.hh.

512  {
513  __a *= factor;
514  __b *= factor;
515  __c *= factor;
516  __d *= factor;
517 
518  return *this;
519  }

◆ mul() [2/7]

JQuaternion3D& JGEOMETRY3D::JQuaternion3D::mul ( const JQuaternion3D first,
const JQuaternion3X second 
)
inlineinherited

Quaternion multiplicaion.

This method evaluates the Hamilton product (also called cross product).

Parameters
firstfirst quaternion
secondsecond quaternion
Returns
this quaternion

Definition at line 548 of file JQuaternion3D.hh.

549  {
550  __a = first.getA() * second.getA() - first.getB() * second.getB();
551  __b = first.getA() * second.getB() + first.getB() * second.getA();
552  __c = first.getC() * second.getA() + first.getD() * second.getB();
553  __d = -first.getC() * second.getB() + first.getD() * second.getA();
554 
555  return *this;
556  }

◆ mul() [3/7]

JQuaternion3D& JGEOMETRY3D::JQuaternion3D::mul ( const JQuaternion3D first,
const JQuaternion3Y second 
)
inlineinherited

Quaternion multiplicaion.

This method evaluates the Hamilton product (or cross product).

Parameters
firstfirst quaternion
secondsecond quaternion
Returns
this quaternion

Definition at line 568 of file JQuaternion3D.hh.

570  {
571  __a = first.getA() * second.getA() - first.getC() * second.getC();
572  __b = first.getB() * second.getA() - first.getD() * second.getC();
573  __c = first.getA() * second.getC() + first.getC() * second.getA();
574  __d = first.getB() * second.getC() + first.getD() * second.getA();
575 
576  return *this;
577  }

◆ mul() [4/7]

JQuaternion3D& JGEOMETRY3D::JQuaternion3D::mul ( const JQuaternion3D first,
const JQuaternion3Z second 
)
inlineinherited

Quaternion multiplicaion.

This method evaluates the Hamilton product (or cross product).

Parameters
firstfirst quaternion
secondsecond quaternion
Returns
this quaternion

Definition at line 589 of file JQuaternion3D.hh.

591  {
592  __a = first.getA() * second.getA() - first.getD() * second.getD();
593  __b = first.getB() * second.getA() + first.getC() * second.getD();
594  __c = -first.getB() * second.getD() + first.getC() * second.getA();
595  __d = first.getA() * second.getD() + first.getD() * second.getA();
596 
597  return *this;
598  }

◆ mul() [5/7]

JQuaternion3D& JGEOMETRY3D::JQuaternion3D::mul ( const JQuaternion3D first,
const JQuaternion3D second 
)
inlineinherited

Quaternion multiplicaion.

This method evaluates the Hamilton product (or cross product).

Parameters
firstfirst quaternion
secondsecond quaternion
Returns
this quaternion

Definition at line 610 of file JQuaternion3D.hh.

612  {
613  __a = first.getA() * second.getA() - first.getB() * second.getB() - first.getC() * second.getC() - first.getD() * second.getD();
614  __b = first.getA() * second.getB() + first.getB() * second.getA() + first.getC() * second.getD() - first.getD() * second.getC();
615  __c = first.getA() * second.getC() - first.getB() * second.getD() + first.getC() * second.getA() + first.getD() * second.getB();
616  __d = first.getA() * second.getD() + first.getB() * second.getC() - first.getC() * second.getB() + first.getD() * second.getA();
617 
618  return *this;
619  }

◆ mul() [6/7]

JQuaternion3D& JGEOMETRY3D::JQuaternion3D::mul ( const JQuaternion3X qx,
const JQuaternion3Y qy,
const JQuaternion3Z qz 
)
inlineinherited

Quaternion multiplicaion.

Parameters
qxrotation around x-axis
qyrotation around y-axis
qzrotation around x-axis
Returns
this quaternion

Definition at line 630 of file JQuaternion3D.hh.

633  {
634  return *this = JQuaternion3D().setIdentity().mul(qz).mul(qy).mul(qx);
635  }

◆ mul() [7/7]

template<class JFirst_t, class JSecond_t>
JFirst_t& JMATH::JMath< JFirst_t, JSecond_t >::mul ( const JSecond_t &  object)
inlineinherited

Multiply with object.

Parameters
objectobject
Returns
result object

Definition at line 273 of file JMath.hh.

274  {
275  return static_cast<JFirst_t&>(*this) = JCalculator<JFirst_t>::calculator.mul(static_cast<const JFirst_t&>(*this), object);
276  }

◆ div()

JQuaternion3D& JGEOMETRY3D::JQuaternion3D::div ( const double  factor)
inlineinherited

Scale quaternion.

Parameters
factordivision factor
Returns
this quaternion

Definition at line 528 of file JQuaternion3D.hh.

529  {
530  __a /= factor;
531  __b /= factor;
532  __c /= factor;
533  __d /= factor;
534 
535  return *this;
536  }

◆ rotate()

void JGEOMETRY3D::JQuaternion3D::rotate ( double &  __x,
double &  __y,
double &  __z 
) const
inlineinherited

Rotate.

Parameters
__xx value
__yy value
__zz value

Definition at line 645 of file JQuaternion3D.hh.

646  {
647  const double qx = 2.0 * (__c*__z - __d*__y);
648  const double qy = 2.0 * (__d*__x - __b*__z);
649  const double qz = 2.0 * (__b*__y - __c*__x);
650 
651  const double x = __x + __c*qz - __d*qy + __a*qx;
652  const double y = __y - __b*qz + __a*qy + __d*qx;
653  const double z = __z + __a*qz + __b*qy - __c*qx;
654 
655  __x = x;
656  __y = y;
657  __z = z;
658  }

◆ rotate_back()

void JGEOMETRY3D::JQuaternion3D::rotate_back ( double &  __x,
double &  __y,
double &  __z 
) const
inlineinherited

Rotate back.

Parameters
__xx value
__yy value
__zz value

Definition at line 668 of file JQuaternion3D.hh.

669  {
670  const double qx = 2.0 * (__d*__y - __c*__z);
671  const double qy = 2.0 * (__b*__z - __d*__x);
672  const double qz = 2.0 * (__c*__x - __b*__y);
673 
674  const double x = __x - __c*qz + __d*qy + __a*qx;
675  const double y = __y + __b*qz + __a*qy - __d*qx;
676  const double z = __z + __a*qz - __b*qy + __c*qx;
677 
678  __x = x;
679  __y = y;
680  __z = z;
681  }

◆ equals()

bool JGEOMETRY3D::JQuaternion3D::equals ( const JQuaternion3D quaternion,
const double  precision = std::numeric_limits<double>::min() 
) const
inlineinherited

Check equality.

Parameters
quaternionquaternion
precisionnumerical precision
Returns
true if quaternions are equal; else false

Definition at line 691 of file JQuaternion3D.hh.

693  {
694  return (fabs(getA() - quaternion.getA()) <= precision &&
695  fabs(getB() - quaternion.getB()) <= precision &&
696  fabs(getC() - quaternion.getC()) <= precision &&
697  fabs(getD() - quaternion.getD()) <= precision);
698  }

◆ getLengthSquared()

double JGEOMETRY3D::JQuaternion3D::getLengthSquared ( ) const
inlineinherited

Get length squared.

Returns
square of length

Definition at line 706 of file JQuaternion3D.hh.

707  {
708  return getA()*getA() + getB()*getB() + getC()*getC() + getD()*getD();
709  }

◆ getLength()

double JGEOMETRY3D::JQuaternion3D::getLength ( ) const
inlineinherited

Get length.

Returns
length

Definition at line 717 of file JQuaternion3D.hh.

718  {
719  return sqrt(getLengthSquared());
720  }

◆ getDistanceSquared()

double JGEOMETRY3D::JQuaternion3D::getDistanceSquared ( const JQuaternion3D quaternion) const
inlineinherited

Get squared of distance to quaternion.

Parameters
quaternionquaternion
Returns
square of distance

Definition at line 729 of file JQuaternion3D.hh.

730  {
731  return JQuaternion3D(quaternion).sub(*this).getLengthSquared();
732  }

◆ getDistance()

double JGEOMETRY3D::JQuaternion3D::getDistance ( const JQuaternion3D quaternion) const
inlineinherited

Get distance to quaternion.

Parameters
quaternionquaternion
Returns
distance

Definition at line 741 of file JQuaternion3D.hh.

742  {
743  return sqrt(getDistanceSquared(quaternion));
744  }

◆ getDot()

double JGEOMETRY3D::JQuaternion3D::getDot ( const JQuaternion3D quaternion) const
inlineinherited

Get dot product.

Parameters
quaternionquaternion
Returns
dot product

Definition at line 753 of file JQuaternion3D.hh.

754  {
755  return
756  getA() * quaternion.getA() -
757  getB() * quaternion.getB() -
758  getC() * quaternion.getC() -
759  getD() * quaternion.getD();
760  }

Member Data Documentation

◆ __id

int JLANG::JObjectID::__id
protectedinherited

Definition at line 160 of file JObjectID.hh.

◆ __a

double JGEOMETRY3D::JQuaternion3D::__a
protectedinherited

Definition at line 835 of file JQuaternion3D.hh.

◆ __b

double JGEOMETRY3D::JQuaternion3D::__b
protectedinherited

Definition at line 836 of file JQuaternion3D.hh.

◆ __c

double JGEOMETRY3D::JQuaternion3D::__c
protectedinherited

Definition at line 837 of file JQuaternion3D.hh.

◆ __d

double JGEOMETRY3D::JQuaternion3D::__d
protectedinherited

Definition at line 838 of file JQuaternion3D.hh.


The documentation for this struct was generated from the following file:
JGEOMETRY3D::JQuaternion3D::getLengthSquared
double getLengthSquared() const
Get length squared.
Definition: JQuaternion3D.hh:706
JGEOMETRY3D::JQuaternion3D::getDistanceSquared
double getDistanceSquared(const JQuaternion3D &quaternion) const
Get squared of distance to quaternion.
Definition: JQuaternion3D.hh:729
JGEOMETRY3D::JQuaternion3Z::getD
double getD() const
Get d value.
Definition: JQuaternion3D.hh:228
JGEOMETRY3D::JVersor3D
Data structure for normalised vector in three dimensions.
Definition: JVersor3D.hh:23
JGEOMETRY3D::JQuaternion3D::__a
double __a
Definition: JQuaternion3D.hh:835
JGEOMETRY3D::JQuaternion2D::getA
double getA() const
Get a value.
Definition: JQuaternion3D.hh:63
JGEOMETRY3D::JVector3D
Data structure for vector in three dimensions.
Definition: JVector3D.hh:33
JGEOMETRY3D::JQuaternion3D::JQuaternion3D
JQuaternion3D()
Default constructor.
Definition: JQuaternion3D.hh:258
JLANG::JObjectID::getID
int getID() const
Get identifier.
Definition: JObjectID.hh:55
JGEOMETRY3D::JQuaternion3D::getB
double getB() const
Get b value.
Definition: JQuaternion3D.hh:396
JGEOMETRY3D::JQuaternion3D::getD
double getD() const
Get d value.
Definition: JQuaternion3D.hh:418
JLANG::JObjectID::__id
int __id
Definition: JObjectID.hh:160
JGEOMETRY3D::JQuaternion3D::__d
double __d
Definition: JQuaternion3D.hh:838
JLANG::JObjectID::JObjectID
JObjectID()
Default constructor.
Definition: JObjectID.hh:35
JGEOMETRY3D::JQuaternion3D::getC
double getC() const
Get c value.
Definition: JQuaternion3D.hh:407
JGEOMETRY3D::JQuaternion3X::getB
double getB() const
Get b value.
Definition: JQuaternion3D.hh:156
JMATH::JCalculator
Auxiliary class for arithmetic operations on objects.
Definition: JCalculator.hh:18
JGEOMETRY3D::JQuaternion3Y::getC
double getC() const
Get c value.
Definition: JQuaternion3D.hh:192
JGEOMETRY3D::JQuaternion3D::__c
double __c
Definition: JQuaternion3D.hh:837
JGEOMETRY3D::JQuaternion3D::getA
double getA() const
Get a value.
Definition: JQuaternion3D.hh:385
JGEOMETRY3D::JQuaternion3D::__b
double __b
Definition: JQuaternion3D.hh:836