Logo ROOT  
Reference Guide
ROOT::Math::Impl::Translation3D< T > Class Template Reference

template<typename T = double>
class ROOT::Math::Impl::Translation3D< T >

Class describing a 3 dimensional translation.

It can be combined (using the operator *) with the ROOT::Math::Rotation3D classes and ROOT::Math::Transform3D to obtained combined transformations and to operate on points and vectors. Note that a the translation applied to a Vector object (DisplacementVector3D and LorentzVector classes) performes a noop, i.e. it returns the same vector. A translation can be applied only to the Point objects (PositionVector3D classes).

Definition at line 66 of file Translation3D.h.

Public Types

typedef T Scalar
 
typedef DisplacementVector3D< Cartesian3D< T >, DefaultCoordinateSystemTagVector
 

Public Member Functions

 Translation3D ()
 Default constructor ( zero translation ) More...
 
template<class CoordSystem , class Tag >
 Translation3D (const DisplacementVector3D< CoordSystem, Tag > &v)
 Construct from any Displacement vector in ant tag and coordinate system. More...
 
template<class CoordSystem , class Tag >
 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 coordinate system defined by other point (origin ) More...
 
template<class IT >
 Translation3D (IT begin, IT end)
 Construct given a pair of pointers or iterators defining the beginning and end of an array of 3 Scalars representing the z,y,z of the translation vector. More...
 
 Translation3D (T dx, T dy, T dz)
 Construct from x,y,z values representing the translation. More...
 
template<class IT >
void GetComponents (IT begin) const
 Get the 3 matrix components into data specified by an iterator begin. More...
 
template<class IT >
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 data (12 past start). More...
 
void GetComponents (T &dx, T &dy, T &dz) const
 Get the components into 3 scalars. More...
 
Translation3D< T > Inverse () const
 Return the inverse of the transformation. More...
 
void Invert ()
 Invert the transformation in place. More...
 
bool operator!= (const Translation3D< T > &rhs) const
 
template<class CoordSystem , class Tag >
DisplacementVector3D< CoordSystem, Tag > operator() (const DisplacementVector3D< CoordSystem, Tag > &v) const
 Transformation operation for Displacement Vector in any coordinate system and default tag For the Displacement Vectors no translation apply so return the vector itself. More...
 
template<class CoordSystem >
LorentzVector< CoordSystem > operator() (const LorentzVector< CoordSystem > &q) const
 Transformation operation for a Lorentz Vector in any coordinate system A LorentzVector contains a displacement vector so no translation applies as well. More...
 
Plane3D< T > operator() (const Plane3D< T > &plane) const
 Transformation on a 3D plane. More...
 
template<class CoordSystem , class Tag >
PositionVector3D< CoordSystem, Tag > operator() (const PositionVector3D< CoordSystem, Tag > &p) const
 Transformation operation for Position Vector in any coordinate system and default tag. More...
 
template<class CoordSystem , class Tag >
DisplacementVector3D< CoordSystem, Tag > operator* (const DisplacementVector3D< CoordSystem, Tag > &v) const
 Transformation operation. More...
 
template<class CoordSystem >
LorentzVector< CoordSystem > operator* (const LorentzVector< CoordSystem > &q) const
 Transformation operation. More...
 
template<class CoordSystem , class Tag >
PositionVector3D< CoordSystem, Tag > operator* (const PositionVector3D< CoordSystem, Tag > &v) const
 Transformation operation. More...
 
Translation3D< T > operator* (const Translation3D< T > &t) const
 multiply (combine) two transformations More...
 
Translation3D< T > & operator*= (const Translation3D< T > &t)
 multiply (combine) with another transformation in place More...
 
bool operator== (const Translation3D< T > &rhs) const
 Equality/inequality operators. More...
 
template<class IT >
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 past start). More...
 
void SetComponents (T dx, T dy, T dz)
 Set the components from 3 scalars. More...
 
void SetXYZ (T dx, T dy, T dz)
 Set the XYZ vector components from 3 scalars. More...
 
template<class CoordSystem , class Tag1 , class Tag2 >
void Transform (const DisplacementVector3D< CoordSystem, Tag1 > &v1, DisplacementVector3D< CoordSystem, Tag2 > &v2) const
 Transformation operation for Displacement Vector of different coordinate systems. More...
 
template<class CoordSystem , class Tag1 , class Tag2 >
void Transform (const PositionVector3D< CoordSystem, Tag1 > &p1, PositionVector3D< CoordSystem, Tag2 > &p2) const
 Transformation operation for points between different coordinate system tags. More...
 
const VectorVect () const
 return a const reference to the underline vector representing the translation More...
 

Private Attributes

Vector fVect
 

#include <Math/GenVector/Translation3D.h>

Member Typedef Documentation

◆ Scalar

template<typename T = double>
typedef T ROOT::Math::Impl::Translation3D< T >::Scalar

Definition at line 74 of file Translation3D.h.

◆ Vector

Definition at line 76 of file Translation3D.h.

Constructor & Destructor Documentation

◆ Translation3D() [1/5]

template<typename T = double>
ROOT::Math::Impl::Translation3D< T >::Translation3D ( )
inline

Default constructor ( zero translation )

Definition at line 81 of file Translation3D.h.

◆ Translation3D() [2/5]

template<typename T = double>
template<class IT >
ROOT::Math::Impl::Translation3D< T >::Translation3D ( IT  begin,
IT  end 
)
inline

Construct given a pair of pointers or iterators defining the beginning and end of an array of 3 Scalars representing the z,y,z of the translation vector.

Definition at line 88 of file Translation3D.h.

◆ Translation3D() [3/5]

template<typename T = double>
ROOT::Math::Impl::Translation3D< T >::Translation3D ( dx,
dy,
dz 
)
inline

Construct from x,y,z values representing the translation.

Definition at line 96 of file Translation3D.h.

◆ Translation3D() [4/5]

template<typename T = double>
template<class CoordSystem , class Tag >
ROOT::Math::Impl::Translation3D< T >::Translation3D ( const DisplacementVector3D< CoordSystem, Tag > &  v)
inlineexplicit

Construct from any Displacement vector in ant tag and coordinate system.

Definition at line 102 of file Translation3D.h.

◆ Translation3D() [5/5]

template<typename T = double>
template<class CoordSystem , class Tag >
ROOT::Math::Impl::Translation3D< T >::Translation3D ( const PositionVector3D< CoordSystem, Tag > &  p1,
const PositionVector3D< CoordSystem, Tag > &  p2 
)
inline

Construct transformation from one coordinate system defined one point (the origin) to a new coordinate system defined by other point (origin )

Parameters
p1point defining origin of original reference system
p2point defining origin of transformed reference system

Definition at line 115 of file Translation3D.h.

Member Function Documentation

◆ GetComponents() [1/3]

template<typename T = double>
template<class IT >
void ROOT::Math::Impl::Translation3D< T >::GetComponents ( IT  begin) const
inline

Get the 3 matrix components into data specified by an iterator begin.

Definition at line 152 of file Translation3D.h.

◆ GetComponents() [2/3]

template<typename T = double>
template<class IT >
void ROOT::Math::Impl::Translation3D< T >::GetComponents ( IT  begin,
IT  end 
) const
inline

Get the 3 components into data specified by an iterator begin and another to the end of the desired data (12 past start).

Definition at line 144 of file Translation3D.h.

◆ GetComponents() [3/3]

template<typename T = double>
void ROOT::Math::Impl::Translation3D< T >::GetComponents ( T &  dx,
T &  dy,
T &  dz 
) const
inline

Get the components into 3 scalars.

Definition at line 165 of file Translation3D.h.

◆ Inverse()

template<typename T = double>
Translation3D<T> ROOT::Math::Impl::Translation3D< T >::Inverse ( ) const
inline

Return the inverse of the transformation.

Definition at line 284 of file Translation3D.h.

◆ Invert()

template<typename T = double>
void ROOT::Math::Impl::Translation3D< T >::Invert ( )
inline

Invert the transformation in place.

Definition at line 277 of file Translation3D.h.

◆ operator!=()

template<typename T = double>
bool ROOT::Math::Impl::Translation3D< T >::operator!= ( const Translation3D< T > &  rhs) const
inline

Definition at line 295 of file Translation3D.h.

◆ operator()() [1/4]

template<typename T = double>
template<class CoordSystem , class Tag >
DisplacementVector3D<CoordSystem,Tag> ROOT::Math::Impl::Translation3D< T >::operator() ( const DisplacementVector3D< CoordSystem, Tag > &  v) const
inline

Transformation operation for Displacement Vector in any coordinate system and default tag For the Displacement Vectors no translation apply so return the vector itself.

Definition at line 196 of file Translation3D.h.

◆ operator()() [2/4]

template<typename T = double>
template<class CoordSystem >
LorentzVector<CoordSystem> ROOT::Math::Impl::Translation3D< T >::operator() ( const LorentzVector< CoordSystem > &  q) const
inline

Transformation operation for a Lorentz Vector in any coordinate system A LorentzVector contains a displacement vector so no translation applies as well.

Definition at line 233 of file Translation3D.h.

◆ operator()() [3/4]

template<typename T = double>
Plane3D<T> ROOT::Math::Impl::Translation3D< T >::operator() ( const Plane3D< T > &  plane) const
inline

Transformation on a 3D plane.

Definition at line 249 of file Translation3D.h.

◆ operator()() [4/4]

template<typename T = double>
template<class CoordSystem , class Tag >
PositionVector3D<CoordSystem,Tag> ROOT::Math::Impl::Translation3D< T >::operator() ( const PositionVector3D< CoordSystem, Tag > &  p) const
inline

Transformation operation for Position Vector in any coordinate system and default tag.

Definition at line 179 of file Translation3D.h.

◆ operator*() [1/4]

template<typename T = double>
template<class CoordSystem , class Tag >
DisplacementVector3D<CoordSystem, Tag> ROOT::Math::Impl::Translation3D< T >::operator* ( const DisplacementVector3D< CoordSystem, Tag > &  v) const
inline

Transformation operation.

Definition at line 203 of file Translation3D.h.

◆ operator*() [2/4]

template<typename T = double>
template<class CoordSystem >
LorentzVector<CoordSystem> ROOT::Math::Impl::Translation3D< T >::operator* ( const LorentzVector< CoordSystem > &  q) const
inline

Transformation operation.

Definition at line 241 of file Translation3D.h.

◆ operator*() [3/4]

template<typename T = double>
template<class CoordSystem , class Tag >
PositionVector3D<CoordSystem, Tag> ROOT::Math::Impl::Translation3D< T >::operator* ( const PositionVector3D< CoordSystem, Tag > &  v) const
inline

Transformation operation.

Definition at line 186 of file Translation3D.h.

◆ operator*() [4/4]

template<typename T = double>
Translation3D<T> ROOT::Math::Impl::Translation3D< T >::operator* ( const Translation3D< T > &  t) const
inline

multiply (combine) two transformations

Definition at line 272 of file Translation3D.h.

◆ operator*=()

template<typename T = double>
Translation3D<T>& ROOT::Math::Impl::Translation3D< T >::operator*= ( const Translation3D< T > &  t)
inline

multiply (combine) with another transformation in place

Definition at line 263 of file Translation3D.h.

◆ operator==()

template<typename T = double>
bool ROOT::Math::Impl::Translation3D< T >::operator== ( const Translation3D< T > &  rhs) const
inline

Equality/inequality operators.

Definition at line 289 of file Translation3D.h.

◆ SetComponents() [1/2]

template<typename T = double>
template<class IT >
void ROOT::Math::Impl::Translation3D< T >::SetComponents ( IT  begin,
IT  end 
)
inline

Set the 3 components given an iterator to the start of the desired data, and another to the end (3 past start).

Definition at line 135 of file Translation3D.h.

◆ SetComponents() [2/2]

template<typename T = double>
void ROOT::Math::Impl::Translation3D< T >::SetComponents ( dx,
dy,
dz 
)
inline

Set the components from 3 scalars.

Definition at line 160 of file Translation3D.h.

◆ SetXYZ()

template<typename T = double>
void ROOT::Math::Impl::Translation3D< T >::SetXYZ ( dx,
dy,
dz 
)
inline

Set the XYZ vector components from 3 scalars.

Definition at line 170 of file Translation3D.h.

◆ Transform() [1/2]

template<typename T = double>
template<class CoordSystem , class Tag1 , class Tag2 >
void ROOT::Math::Impl::Translation3D< T >::Transform ( const DisplacementVector3D< CoordSystem, Tag1 > &  v1,
DisplacementVector3D< CoordSystem, Tag2 > &  v2 
) const
inline

Transformation operation for Displacement Vector of different coordinate systems.

Definition at line 222 of file Translation3D.h.

◆ Transform() [2/2]

template<typename T = double>
template<class CoordSystem , class Tag1 , class Tag2 >
void ROOT::Math::Impl::Translation3D< T >::Transform ( const PositionVector3D< CoordSystem, Tag1 > &  p1,
PositionVector3D< CoordSystem, Tag2 > &  p2 
) const
inline

Transformation operation for points between different coordinate system tags.

Definition at line 212 of file Translation3D.h.

◆ Vect()

template<typename T = double>
const Vector& ROOT::Math::Impl::Translation3D< T >::Vect ( ) const
inline

return a const reference to the underline vector representing the translation

Definition at line 128 of file Translation3D.h.

Member Data Documentation

◆ fVect

template<typename T = double>
Vector ROOT::Math::Impl::Translation3D< T >::fVect
private

Definition at line 299 of file Translation3D.h.


The documentation for this class was generated from the following file: