17#ifndef ROOT_MathX_GenVectorX_RotationY
18#define ROOT_MathX_GenVectorX_RotationY 1
122 template <
class CoordSystem,
class U>
133 template <
class CoordSystem,
class U>
144 template <
class CoordSystem>
158 template <
class ForeignVector>
163 return ForeignVector(rxyz.
X(), rxyz.
Y(), rxyz.
Z());
169 template <
class AVector>
248#if !defined(ROOT_MATH_SYCL) && !defined(ROOT_MATH_CUDA)
252 os <<
" RotationY(" <<
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 Y axis by the angle of rotation.
void GetComponents(Scalar &angle) const
RotationY()
Default constructor (identity rotation).
RotationY(Scalar angle)
Construct from an angle.
ForeignVector operator()(const ForeignVector &v) const
Rotation operation on an arbitrary vector v.
DisplacementVector3D< CoordSystem, U > operator()(const DisplacementVector3D< CoordSystem, U > &v) const
Rotation operation on a cartesian vector.
RotationY Inverse() const
Return inverse of a rotation.
void SetAngle(Scalar angle)
Set given the angle.
bool operator==(const RotationY &rhs) const
Equality/inequality operators.
RotationY operator*(const RotationY &r) const
Multiply (combine) two rotations.
Scalar Angle() const
Angle of rotation.
void SetComponents(Scalar angle)
void Rectify()
Rectify makes sure the angle is in (-pi,pi].
void GetAngle(Scalar &angle) const
Get the angle.
LorentzVector< CoordSystem > operator()(const LorentzVector< CoordSystem > &v) const
Rotation operation on a Lorentz vector in any 4D coordinate system.
RotationY & operator*=(const RotationY &r)
Post-Multiply (on right) by another rotation : T = T*R.
void Invert()
Invert a rotation in place.
PositionVector3D< CoordSystem, U > operator()(const PositionVector3D< CoordSystem, U > &v) const
Rotation operation on a position vector in any coordinate system.
Scalar SinAngle() const
Sine or Cosine of the rotation angle.
AVector operator*(const AVector &v) const
Overload operator * for rotation on a vector.
bool operator!=(const RotationY &rhs) const
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.