18 #ifndef ROOT_Math_GenVector_RotationZYX
19 #define ROOT_Math_GenVector_RotationZYX 1
21 #ifndef ROOT_Math_Math
25 #ifndef ROOT_Math_GenVector_Rotation3D
30 #ifndef ROOT_Math_GenVector_DisplacementVector3D
34 #ifndef ROOT_Math_GenVector_PositionVector3D
38 #ifndef ROOT_Math_GenVector_LorentzVector
42 #ifndef ROOT_Math_GenVector_3DConversions
113 template <
class OtherRotation>
120 template <
class OtherRotation>
223 template <
class CoordSystem,
class U>
232 template <
class CoordSystem,
class U>
243 template <
class CoordSystem>
257 template <
class ForeignVector>
262 return ForeignVector ( rxyz.
X(), rxyz.
Y(), rxyz.
Z() );
268 template <
class AVector>
320 if(
fPhi != rhs.
fPhi )
return false;
322 if(
fPsi != rhs.
fPsi )
return false;
365 #endif // ROOT_Math_GenVector_RotationZYX
void GetComponents(IT begin) const
Get the axis and then the angle into data specified by an iterator begin.
Scalar E() const
return 4-th component (time, or energy for a 4-momentum vector)
Class describing a generic LorentzVector in the 4D space-time, using the specified coordinate system ...
double dist(Rotation3D const &r1, Rotation3D const &r2)
Scalar Psi() const
Return Psi angle (X'' rotation angle)
Namespace for new ROOT classes and functions.
RotationZYX Inverse() const
Return inverse of a rotation.
::ROOT::Math::DisplacementVector3D< Cartesian3D< Scalar > > Vect() const
get the spatial components of the Vector in a DisplacementVector based on Cartesian Coordinates ...
void SetPsi(Scalar psi)
Set Psi angle (X'' rotation angle)
Rotation class representing a 3D rotation about the Z axis by the angle of rotation.
Scalar Y() const
Cartesian Y, converting if necessary from internal coordinate system.
RotationZYX & operator*=(const R &r)
Post-Multiply (on right) by another rotation : T = T*R.
void Rectify()
Re-adjust components place angles in canonical ranges.
void SetPhi(Scalar phi)
Set Phi angle (Z rotation angle)
Class describing a generic position vector (point) in 3 dimensions.
Rotation class with the (3D) rotation represented by angles describing first a rotation of an angle p...
bool operator==(const RotationZYX &rhs) const
Equality/inequality operators.
Scalar Phi() const
Return Phi angle (Z rotation angle)
Rotation class with the (3D) rotation represented by a unit quaternion (u, i, j, k).
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...
RotationZYX(IT begin, IT end)
Construct given a pair of pointers or iterators defining the beginning and end of an array of three S...
std::ostream & operator<<(std::ostream &os, const AxisAngle &a)
Stream Output and Input.
RotationZYX(const OtherRotation &r)
Construct from another supported rotation type (see gv_detail::convert )
AxisAngle class describing rotation represented with direction axis (3D Vector) and an angle of rotat...
Rotation class representing a 3D rotation about the Y axis by the angle of rotation.
bool operator!=(const RotationZYX &rhs) const
Scalar X() const
Cartesian X, converting if necessary from internal coordinate system.
Class describing a generic displacement vector in 3 dimensions.
unsigned int r1[N_CITIES]
RotationZYX()
Default constructor.
Rotation class representing a 3D rotation about the X axis by the angle of rotation.
void SetComponents(Scalar phi, Scalar theta, Scalar psi)
Set the components phi, theta, psi based on three Scalars.
Rotation class with the (3D) rotation represented by a 3x3 orthogonal matrix.
void SetTheta(Scalar theta)
Set Theta angle (Y' rotation angle)
void Invert()
Invert a rotation in place.
void convert(R1 const &, R2 const)
Scalar Z() const
Cartesian Z, converting if necessary from internal coordinate system.
EulerAngles class describing rotation as three angles (Euler Angles).
Scalar Distance(const R &r) const
Distance between two rotations.
Namespace for new Math classes and functions.
DisplacementVector3D< CoordSystem, U > operator()(const DisplacementVector3D< CoordSystem, U > &v) const
Rotation operation on a displacement vector in any coordinate system and tag.
RotationZYX(Scalar phi, Scalar theta, Scalar psi)
Constructor from phi, theta and psi.
Scalar Theta() const
Return Theta angle (Y' rotation angle)
AVector operator*(const AVector &v) const
Overload operator * for rotation on a vector.
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...
void GetComponents(Scalar &phi, Scalar &theta, Scalar &psi) const
Get the components phi, theta, psi into three Scalars.
RotationZYX & operator=(OtherRotation const &r)
Assign from another supported rotation type (see gv_detail::convert )
unsigned int r2[N_CITIES]