63   if ( std::fabs( 
uX ) < 8.*std::numeric_limits<double>::epsilon() &&
 
   64        std::fabs( 
uY ) < 8.*std::numeric_limits<double>::epsilon() &&
 
   65        std::fabs( 
uZ ) < 8.*std::numeric_limits<double>::epsilon() ) {
 
 
  116   double phi, theta, 
psi;
 
  121   theta = (std::fabs(
r[
kZZ]) <= 1.0) ? std::acos(
r[
kZZ]) :
 
  122      (
r[
kZZ]  >  0.0) ?     0            : pi;
 
  162   double maxw = std::fabs(
w[0]);
 
  164   for (
int i = 1; i < 4; ++i) {
 
  165      if (std::fabs(
w[i]) > 
maxw) {
 
  166         maxw = std::fabs(
w[i]);
 
 
  212      const double q0 = .5*std::sqrt(1+
d0);
 
  213      const double f  = .25/q0;
 
  220   } 
else if ( 
d1 >= 
d2 && 
d1 >= 
d3 ) {
 
  221      const double q1 = .5*std::sqrt(1+
d1);
 
  222      const double f  = .25/
q1;
 
  229   } 
else if ( 
d2 >= 
d3 ) {
 
  230      const double q2 = .5*std::sqrt(1+
d2);
 
  231      const double f  = .25/
q2;
 
  239      const double q3 = .5*std::sqrt(1+
d3);
 
  240      const double f  = .25/
q3;
 
 
  265   double phi,theta,
psi = 0;
 
  313   double maxw = std::fabs(
w[0]);
 
  315   for (
int i = 1; i < 4; ++i) {
 
  316      if (std::fabs(
w[i]) > 
maxw) {
 
  317         maxw = std::fabs(
w[i]);
 
 
  359   const double uX = 
u.X();
 
  360   const double uY = 
u.Y();
 
  361   const double uZ = 
u.Z();
 
 
  394   double s = std::sin (from.
Angle()/2);
 
 
  479   const double q0 = from.
U();
 
  480   const double q1 = from.
I();
 
  481   const double q2 = from.
J();
 
  482   const double q3 = from.
K();
 
  483   const double q00 = q0*q0;
 
  484   const double q01 = q0*
q1;
 
  485   const double q02 = q0*
q2;
 
  486   const double q03 = q0*
q3;
 
 
  508      const double angle = 2.0 * std::acos ( from.
U() );
 
  510         axis (from.
I(), from.
J(), from.
K());
 
  513      if ( 
u < -1 ) 
u = -1;
 
  514      const double angle = 2.0 * std::acos ( -from.
U() );
 
  516         axis (-from.
I(), -from.
J(), -from.
K());
 
 
  546   double phi,theta,
psi = 0;
 
  549                      - std::cos(theta)*std::sin(phi),
 
  552                      std::cos(
psi)*std::sin(phi) + std::sin(
psi)*std::sin(theta)*std::cos(phi),
 
  553                      std::cos(
psi)*std::cos(phi) - std::sin(
psi)*std::sin(theta)*std::sin(phi),
 
  554                      -std::sin(
psi)*std::cos(theta),
 
  556                      std::sin(
psi)*std::sin(phi) - std::cos(
psi)*std::sin(theta)*std::cos(phi),
 
  557                      std::sin(
psi)*std::cos(phi) + std::cos(
psi)*std::sin(theta)*std::sin(phi),
 
  558                      std::cos(
psi)*std::cos(theta)
 
 
  577   double phi,theta,
psi = 0;
 
  580   double sphi2   = std::sin(phi/2);
 
  581   double cphi2   = std::cos(phi/2);
 
  582   double stheta2 = std::sin(theta/2);
 
  583   double ctheta2 = std::cos(theta/2);
 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint angle
AxisAngle class describing rotation represented with direction axis (3D Vector) and an angle of rotat...
void SetComponents(IT begin, IT end)
Set the axis and then the angle given a pair of pointers or iterators defining the beginning and end ...
void Rectify()
Re-adjust components to eliminate small deviations from the axis being a unit vector and angles out o...
AxisVector Axis() const
access to rotation axis
Scalar Angle() const
access to rotation angle
EulerAngles class describing rotation as three angles (Euler Angles).
Scalar Psi() const
Return Psi Euler angle.
Scalar Theta() const
Return Theta Euler angle.
Scalar Phi() const
Return Phi Euler angle.
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 with the (3D) rotation represented by a unit quaternion (u, i, j, k).
void Rectify()
Re-adjust components to eliminate small deviations from |Q| = 1 orthonormality.
Scalar U() const
Access to the four quaternion components: U() is the coefficient of the identity Pauli matrix,...
void SetComponents(IT begin, IT end)
Set the four components given an iterator to the start of the desired data, and another to the end (4...
Rotation class with the (3D) rotation represented by a 3x3 orthogonal matrix.
void GetComponents(ForeignVector &v1, ForeignVector &v2, ForeignVector &v3) const
Get components into three vectors which will be the (orthonormal) columns of the rotation matrix.
void SetComponents(const ForeignVector &v1, const ForeignVector &v2, const ForeignVector &v3)
Set components from three orthonormal vectors (which must have methods x(), y() and z()) which will b...
Rotation class representing a 3D rotation about the X axis by the angle of rotation.
Scalar SinAngle() const
Sine or Cosine of the rotation angle.
Scalar Angle() const
Angle of rotation.
Rotation class representing a 3D rotation about the Y axis by the angle of rotation.
Scalar Angle() const
Angle of rotation.
Scalar SinAngle() const
Sine or Cosine of the rotation angle.
Rotation class with the (3D) rotation represented by angles describing first a rotation of an angle p...
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...
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.
Scalar Angle() const
Angle of rotation.
Scalar SinAngle() const
Sine or Cosine of the rotation angle.
Namespace for new Math classes and functions.
static void correctByPi(double &psi, double &phi)
void convert(R1 const &, R2 const)
Rotation3D::Scalar Scalar
constexpr Double_t PiOver2()