17 #ifndef ROOT_Math_GenVector_EulerAngles 18 #define ROOT_Math_GenVector_EulerAngles 1 82 template <
class OtherRotation>
88 template <
class OtherRotation>
159 assert(begin == end);
176 assert(begin == end);
240 template <
class CoordSystem,
class U>
249 template <
class CoordSystem,
class U>
260 template <
class CoordSystem>
274 template <
class ForeignVector>
279 return ForeignVector ( rxyz.
X(), rxyz.
Y(), rxyz.
Z() );
285 template <
class AVector>
337 if(
fPhi != rhs.
fPhi )
return false;
339 if(
fPsi != rhs.
fPsi )
return false;
Class describing a generic LorentzVector in the 4D space-time, using the specified coordinate system ...
double dist(Rotation3D const &r1, Rotation3D const &r2)
void SetPsi(Scalar psi)
Set Psi Euler angle // JMM 30 Jan.
EulerAngles(IT begin, IT end)
Construct given a pair of pointers or iterators defining the beginning and end of an array of three S...
EulerAngles & operator*=(const R &r)
Post-Multiply (on right) by another rotation : T = T*R.
Namespace for new ROOT classes and functions.
EulerAngles & operator=(OtherRotation const &r)
Assign from any other rotation (see gv_detail::convert )
void SetComponents(IT begin, IT end)
Set the three Euler angles given a pair of pointers or iterators defining the beginning and end of an...
Rotation class representing a 3D rotation about the Z axis by the angle of rotation.
void Rectify()
Re-adjust components place angles in canonical ranges.
EulerAngles Inverse() const
Return inverse of a rotation.
Class describing a generic position vector (point) in 3 dimensions.
EulerAngles(Scalar phi, Scalar theta, Scalar psi)
Constructor from phi, theta and psi.
Rotation class with the (3D) rotation represented by a unit quaternion (u, i, j, k).
#define R(a, b, c, d, e, f, g, h, i)
Scalar Phi() const
Return Phi Euler angle.
std::ostream & operator<<(std::ostream &os, const AxisAngle &a)
Stream Output and Input.
void Invert()
Invert a rotation in place.
void SetTheta(Scalar theta)
Set Theta Euler angle // JMM 30 Jan.
AxisAngle class describing rotation represented with direction axis (3D Vector) and an angle of rotat...
Scalar X() const
Cartesian X, converting if necessary from internal coordinate system.
Scalar Psi() const
Return Psi Euler angle.
Rotation class representing a 3D rotation about the Y axis by the angle of rotation.
void GetComponents(IT begin, IT end) const
Get the axis and then the angle into data specified by an iterator begin and another to the end of th...
Scalar Z() const
Cartesian Z, converting if necessary from internal coordinate system.
Scalar Y() const
Cartesian Y, converting if necessary from internal coordinate system.
Scalar Theta() const
Return Theta Euler angle.
Scalar E() const
return 4-th component (time, or energy for a 4-momentum vector)
DisplacementVector3D< CoordSystem, U > operator()(const DisplacementVector3D< CoordSystem, U > &v) const
Rotation operation on a displacement vector in any coordinate system and tag.
void GetComponents(IT begin) const
Get the axis and then the angle into data specified by an iterator begin.
Class describing a generic displacement vector in 3 dimensions.
Rotation class representing a 3D rotation about the X axis by the angle of rotation.
Rotation class with the (3D) rotation represented by a 3x3 orthogonal matrix.
void SetComponents(Scalar phi, Scalar theta, Scalar psi)
Set the components phi, theta, psi based on three Scalars.
bool operator!=(const EulerAngles &rhs) const
void convert(R1 const &, R2 const)
EulerAngles(const OtherRotation &r)
Create from any other supported rotation (see gv_detail::convert )
EulerAngles()
Default constructor.
void GetComponents(Scalar &phi, Scalar &theta, Scalar &psi) const
Get the components phi, theta, psi into three Scalars.
EulerAngles class describing rotation as three angles (Euler Angles).
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
void SetPhi(Scalar phi)
Set Phi Euler angle // JMM 30 Jan.
Namespace for new Math classes and functions.
Scalar Distance(const R &r) const
Distance between two rotations.
AVector operator*(const AVector &v) const
Overload operator * for rotation on a vector.
bool operator==(const EulerAngles &rhs) const
Equality/inequality operators.
::ROOT::Math::DisplacementVector3D< Cartesian3D< Scalar > > Vect() const
get the spatial components of the Vector in a DisplacementVector based on Cartesian Coordinates ...