16 #ifndef ROOT_Math_GenVector_Transform3D 17 #define ROOT_Math_GenVector_Transform3D 1 21 #ifndef ROOT_Math_GenVector_DisplacementVector3D 25 #ifndef ROOT_Math_GenVector_PositionVector3D 29 #ifndef ROOT_Math_GenVector_Rotation3D 33 #ifndef ROOT_Math_GenVector_Translation3D 141 template <
class ARotation,
class CoordSystem,
class Tag>
153 template <
class ARotation>
210 template<
class CoordSystem,
class Tag>
241 template <
class ARotation,
class CoordSystem,
class Tag>
264 (
const Point & fr0,
const Point & fr1,
const Point & fr2,
265 const Point & to0,
const Point & to1,
const Point & to2 );
276 template<
class ForeignMatrix>
285 double yx,
double yy,
double yz,
double dy,
286 double zx,
double zy,
double zz,
double dz)
288 SetComponents (xx, xy, xz, dx, yx, yy, yz, dy, zx, zy, zz, dz);
298 template<
class ForeignMatrix>
318 for (
int i = 0; i <12; ++i) {
335 for (
int i = 0; i <12; ++i) {
347 std::copy (
fM,
fM+12, begin );
356 template<
class ForeignMatrix>
369 template<
class ForeignMatrix>
383 double yx,
double yy,
double yz,
double dy,
384 double zx,
double zy,
double zz,
double dz) {
395 double &yx,
double &yy,
double &yz,
double &dy,
396 double &zx,
double &zy,
double &zz,
double &dz)
const {
407 template<
class AnyRotation,
class V>
434 template <
class AnyRotation>
444 template <
class AnyRotation>
460 template <
class AnyVector>
494 template<
class CoordSystem >
503 template<
class CoordSystem >
512 template<
class CoordSystem,
class Tag1,
class Tag2 >
515 p2.
SetXYZ( xyzNew.
X(), xyzNew.
Y(), xyzNew.
Z() );
522 template<
class CoordSystem,
class Tag1,
class Tag2 >
525 v2.
SetXYZ( xyzNew.
X(), xyzNew.
Y(), xyzNew.
Z() );
531 template <
class CoordSystem >
551 template<
class AVector >
561 inline Transform3D &
operator *= (
const Transform3D & t);
566 inline Transform3D
operator * (
const Transform3D & t)
const;
577 Transform3D t(*
this);
588 if(
fM[0] != rhs.
fM[0] )
return false;
589 if(
fM[1] != rhs.
fM[1] )
return false;
590 if(
fM[2] != rhs.
fM[2] )
return false;
591 if(
fM[3] != rhs.
fM[3] )
return false;
592 if(
fM[4] != rhs.
fM[4] )
return false;
593 if(
fM[5] != rhs.
fM[5] )
return false;
594 if(
fM[6] != rhs.
fM[6] )
return false;
595 if(
fM[7] != rhs.
fM[7] )
return false;
596 if(
fM[8] != rhs.
fM[8] )
return false;
597 if(
fM[9] != rhs.
fM[9] )
return false;
598 if(
fM[10]!= rhs.
fM[10] )
return false;
599 if(
fM[11]!= rhs.
fM[11] )
return false;
863 std::ostream &
operator<< (std::ostream & os,
const Transform3D & t);
Class describing a geometrical plane in 3 dimensions.
Class describing a generic LorentzVector in the 4D space-time, using the specified 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...
This namespace contains pre-defined functions to be used in conjuction with TExecutor::Map and TExecu...
Rotation class representing a 3D rotation about the Z axis by the angle of rotation.
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...
Rotation class with the (3D) rotation represented by a unit quaternion (u, i, j, k).
std::ostream & operator<<(std::ostream &os, const AxisAngle &a)
Stream Output and Input.
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.
Rotation class representing a 3D rotation about the Y axis by the angle of rotation.
unsigned int r3[N_CITIES]
Scalar Z() const
Cartesian Z, converting if necessary from internal coordinate system.
Scalar Y() const
Cartesian Y, converting if necessary from internal coordinate system.
static double p2(double t, double a, double b, double c)
Scalar E() const
return 4-th component (time, or energy for a 4-momentum vector)
Scalar Z() const
Cartesian Z, converting if necessary from internal coordinate system.
Class describing a generic displacement vector in 3 dimensions.
const Vector & Vect() const
return a const reference to the underline vector representing the translation
Scalar X() const
Cartesian X, converting if necessary from internal coordinate system.
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.
static double p1(double t, double a, double b)
Class describing a 3 dimensional translation.
EulerAngles class describing rotation as three angles (Euler Angles).
Namespace for new Math classes and functions.
Scalar Y() const
Cartesian Y, converting if necessary from internal coordinate system.
PositionVector3D< 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...
DefaultCoordinateSystemTag Default tag for identifying any coordinate system.
::ROOT::Math::DisplacementVector3D< Cartesian3D< Scalar > > Vect() const
get the spatial components of the Vector in a DisplacementVector based on Cartesian Coordinates ...