17#ifndef ROOT_MathX_GenVectorX_RotationX
18#define ROOT_MathX_GenVectorX_RotationX 1
121 template <
class CoordSystem,
class U>
132 template <
class CoordSystem,
class U>
143 template <
class CoordSystem>
157 template <
class ForeignVector>
162 return ForeignVector(rxyz.
X(), rxyz.
Y(), rxyz.
Z());
168 template <
class AVector>
242#if !defined(ROOT_MATH_SYCL) && !defined(ROOT_MATH_CUDA)
251 os <<
" RotationX(" <<
r.Angle() <<
") ";
Class describing a generic displacement vector in 3 dimensions.
Scalar X() const
Cartesian X, converting if necessary from internal coordinate system.
Scalar Y() const
Cartesian Y, converting if necessary from internal coordinate system.
Scalar Z() const
Cartesian Z, converting if necessary from internal coordinate system.
DisplacementVector3D< CoordSystem, Tag > & SetXYZ(Scalar a, Scalar b, Scalar c)
set the values of the vector from the cartesian components (x,y,z) (if the vector is held in polar or...
Class describing a generic LorentzVector in the 4D space-time, using the specified coordinate system ...
Class describing a generic position vector (point) in 3 dimensions.
Rotation class representing a 3D rotation about the X axis by the angle of rotation.
bool operator==(const RotationX &rhs) const
Equality/inequality operators.
void Rectify()
Rectify makes sure the angle is in (-pi,pi].
void SetAngle(Scalar angle)
Set given the angle.
RotationX(Scalar angle)
Construct from an angle.
Scalar SinAngle() const
Sine or Cosine of the rotation angle.
RotationX & operator*=(const RotationX &r)
Post-Multiply (on right) by another rotation : T = T*R.
LorentzVector< CoordSystem > operator()(const LorentzVector< CoordSystem > &v) const
Rotation operation on a Lorentz vector in any 4D coordinate system.
void GetComponents(Scalar &angle) const
void GetAngle(Scalar &angle) const
Get the angle.
RotationX operator*(const RotationX &r) const
Multiply (combine) two rotations.
ForeignVector operator()(const ForeignVector &v) const
Rotation operation on an arbitrary vector v.
bool operator!=(const RotationX &rhs) const
DisplacementVector3D< CoordSystem, U > operator()(const DisplacementVector3D< CoordSystem, U > &v) const
Rotation operation on a cartesian vector.
PositionVector3D< CoordSystem, U > operator()(const PositionVector3D< CoordSystem, U > &v) const
Rotation operation on a position vector in any coordinate system.
void Invert()
Invert a rotation in place.
void SetComponents(Scalar angle)
AVector operator*(const AVector &v) const
Overload operator * for rotation on a vector.
RotationX()
Default constructor (identity rotation).
Scalar Angle() const
Angle of rotation.
RotationX Inverse() const
Return inverse of a rotation.
double dist(Rotation3D const &r1, Rotation3D const &r2)
Scalar math_floor(Scalar x)
Scalar math_cos(Scalar x)
AxisAngle::Scalar Distance(const AxisAngle &r1, const R &r2)
Distance between two rotations.
std::ostream & operator<<(std::ostream &os, const AxisAngle &a)
Stream Output and Input.
Scalar math_atan2(Scalar x, Scalar y)
Scalar math_fabs(Scalar x)
Scalar math_sin(Scalar x)
namespace associated R package for ROOT.