16 #ifndef ROOT_Math_GenVector_Translation3D 17 #define ROOT_Math_GenVector_Translation3D 1 29 #include <type_traits> 50 template <
typename T =
double>
81 template<
class CoordSystem,
class Tag>
83 fVect(Vector(v.X(),v.Y(),v.Z()))
94 template <
class CoordSystem,
class Tag>
158 template<
class CoordSystem,
class Tag >
165 template <
class CoordSystem,
class Tag>
175 template<
class CoordSystem,
class Tag >
182 template <
class CoordSystem,
class Tag>
191 template<
class CoordSystem,
class Tag1,
class Tag2 >
201 template <
class CoordSystem,
class Tag1,
class Tag2>
212 template <
class CoordSystem>
220 template <
class CoordSystem>
232 const Vector
n = plane.
Normal();
237 return PLANE(
operator()(n),
operator()(p));
292 std::ostream &operator<<(std::ostream &os, const Translation3D<T> &t)
298 t.GetComponents(m, m + 3);
299 return os <<
"\n" << m[0] <<
" " << m[1] <<
" " << m[2] <<
"\n";
Class describing a generic LorentzVector in the 4D space-time, using the specified coordinate system ...
DisplacementVector3D< Cartesian3D< T >, DefaultCoordinateSystemTag > Vector
bool operator==(const Translation3D< T > &rhs) const
Equality/inequality operators.
DisplacementVector3D< CoordSystem, Tag > & SetCoordinates(const Scalar src[])
Set internal data based on a C-style array of 3 Scalar numbers.
Translation3D< T > Inverse() const
Return the inverse of the transformation.
Scalar HesseDistance() const
Return the Hesse Distance (distance from the origin) of the plane or the d coefficient expressed in n...
Translation3D(T dx, T dy, T dz)
Construct from x,y,z values representing the translation.
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...
Namespace for new ROOT classes and functions.
void Invert()
Invert the transformation in place.
Vector Normal() const
Return normal vector to the plane as Cartesian DisplacementVector.
Translation3D(const PositionVector3D< CoordSystem, Tag > &p1, const PositionVector3D< CoordSystem, Tag > &p2)
Construct transformation from one coordinate system defined one point (the origin) to a new coordinat...
DisplacementVector3D< CoordSystem, Tag > operator*(const DisplacementVector3D< CoordSystem, Tag > &v) const
Transformation operation.
PositionVector3D< CoordSystem, Tag > operator()(const PositionVector3D< CoordSystem, Tag > &p) const
Transformation operation for Position Vector in any coordinate system and default tag...
Class describing a generic position vector (point) in 3 dimensions.
Translation3D(IT begin, IT end)
Construct given a pair of pointers or iterators defining the beginning and end of an array of 3 Scala...
Translation3D< T > operator*(const Translation3D< T > &t) const
multiply (combine) two transformations
Translation3D(const DisplacementVector3D< CoordSystem, Tag > &v)
Construct from any Displacement vector in ant tag and coordinate system.
void GetComponents(IT begin, IT end) const
Get the 3 components into data specified by an iterator begin and another to the end of the desired d...
Scalar X() const
Cartesian X, converting if necessary from internal coordinate system.
LorentzVector< CoordSystem > operator()(const LorentzVector< CoordSystem > &q) const
Transformation operation for a Lorentz Vector in any coordinate system A LorentzVector contains a dis...
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)
Plane3D< T > operator()(const Plane3D< T > &plane) const
Transformation on a 3D plane.
void Transform(const PositionVector3D< CoordSystem, Tag1 > &p1, PositionVector3D< CoordSystem, Tag2 > &p2) const
Transformation operation for points between different coordinate system tags.
Class describing a 3 dimensional translation.
Translation3D()
Default constructor ( zero translation )
Scalar Z() const
Cartesian Z, converting if necessary from internal coordinate system.
Class describing a generic displacement vector in 3 dimensions.
void SetXYZ(T dx, T dy, T dz)
Set the XYZ vector components from 3 scalars.
void SetComponents(IT begin, IT end)
Set the 3 components given an iterator to the start of the desired data, and another to the end (3 pa...
Scalar X() const
Cartesian X, converting if necessary from internal coordinate system.
const Vector & Vect() const
return a const reference to the underline vector representing the translation
static double p1(double t, double a, double b)
void GetComponents(T &dx, T &dy, T &dz) const
Get the components into 3 scalars.
void Transform(const DisplacementVector3D< CoordSystem, Tag1 > &v1, DisplacementVector3D< CoordSystem, Tag2 > &v2) const
Transformation operation for Displacement Vector of different coordinate systems. ...
PositionVector3D< CoordSystem, Tag > operator*(const PositionVector3D< CoordSystem, Tag > &v) const
Transformation operation.
void GetCoordinates(Scalar &a, Scalar &b, Scalar &c) const
get internal data into 3 Scalar numbers
Translation3D< T > & operator*=(const Translation3D< T > &t)
multiply (combine) with another transformation in place
Namespace for new Math classes and functions.
LorentzVector< CoordSystem > operator*(const LorentzVector< CoordSystem > &q) const
Transformation operation.
void GetComponents(IT begin) const
Get the 3 matrix components into data specified by an iterator begin.
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...
Impl::Translation3D< float > Translation3DF
Class describing a geometrical plane in 3 dimensions.
DefaultCoordinateSystemTag Default tag for identifying any coordinate system.
void SetComponents(T dx, T dy, T dz)
Set the components from 3 scalars.
bool operator!=(const Translation3D< T > &rhs) const