Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::ROOT_MATH_ARCH::Boost Class Reference

Lorentz boost class with the (4D) transformation represented internally by a 4x4 orthosymplectic matrix.

See also BoostX, BoostY and BoostZ for classes representing specialized Lorentz boosts. Also, the 3-D rotation classes can be considered to be special Lorentz transformations which do not mix space and time components.

See also
Physics Vectors

Definition at line 51 of file Boost.h.

Public Types

enum  EBoostMatrixIndex {
  kXX = 0 , kXY = 1 , kXZ = 2 , kXT = 3 ,
  kYY = 4 , kYZ = 5 , kYT = 6 , kZZ = 7 ,
  kZT = 8 , kTT = 9
}
 
enum  ELorentzRotationMatrixIndex {
  kLXX = 0 , kLXY = 1 , kLXZ = 2 , kLXT = 3 ,
  kLYX = 4 , kLYY = 5 , kLYZ = 6 , kLYT = 7 ,
  kLZX = 8 , kLZY = 9 , kLZZ = 10 , kLZT = 11 ,
  kLTX = 12 , kLTY = 13 , kLTZ = 14 , kLTT = 15
}
 
typedef double Scalar
 
typedef DisplacementVector3D< Cartesian3D< double >, DefaultCoordinateSystemTagXYZVector
 The beta vector for this boost.
 

Public Member Functions

 Boost ()
 Default constructor (identity transformation)
 
 Boost (Boost const &b)
 copy constructor
 
 Boost (BoostX const &bx)
 Construct from an axial boost.
 
 Boost (BoostY const &by)
 
 Boost (BoostZ const &bz)
 
template<class Avector >
 Boost (const Avector &beta)
 Construct given a beta vector (which must have methods x(), y(), z())
 
template<class IT >
 Boost (IT begin, IT end)
 Construct given a pair of pointers or iterators defining the beginning and end of an array of three Scalars to use as beta_x, _y, and _z.
 
 Boost (Scalar beta_x, Scalar beta_y, Scalar beta_z)
 Construct given a three Scalars beta_x, beta_y, and beta_z.
 
XYZVector BetaVector () const
 
template<class IT >
void GetComponents (IT begin) const
 Get given a pointer or an iterator defining the beginning of an array into which to place beta_x, beta_y, and beta_z.
 
template<class IT >
void GetComponents (IT begin, IT end) const
 Get given a pair of pointers or iterators defining the beginning and end of an array of three Scalars into which to place beta_x, beta_y, and beta_z.
 
void GetComponents (Scalar &beta_x, Scalar &beta_y, Scalar &beta_z) const
 Get components into beta_x, beta_y, and beta_z.
 
void GetLorentzRotation (Scalar r[]) const
 Get elements of internal 4x4 symmetric representation, into a data array suitable for direct use as the components of a LorentzRotation Note – 16 Scalars will be written into the array; if the array is not that large, then this will lead to undefined behavior.
 
Boost Inverse () const
 Return inverse of a boost.
 
void Invert ()
 Invert a Boost in place.
 
bool operator!= (const Boost &rhs) const
 
template<class Foreign4Vector >
Foreign4Vector operator() (const Foreign4Vector &v) const
 Lorentz transformation operation on an arbitrary 4-vector v.
 
template<class CoordSystem >
LorentzVector< CoordSystem > operator() (const LorentzVector< CoordSystem > &v) const
 Lorentz transformation operation on a LorentzVector in any coordinate system.
 
LorentzVector< PxPyPzE4D< double > > operator() (const LorentzVector< PxPyPzE4D< double > > &v) const
 Lorentz transformation operation on a Minkowski ('Cartesian') LorentzVector.
 
template<class A4Vector >
A4Vector operator* (const A4Vector &v) const
 Overload operator * for boost on a vector.
 
Boostoperator= (Boost const &rhs)
 Assignment operator.
 
Boostoperator= (BoostX const &bx)
 Assign from an axial pure boost.
 
Boostoperator= (BoostY const &by)
 
Boostoperator= (BoostZ const &bz)
 
bool operator== (const Boost &rhs) const
 Equality/inequality operators.
 
void Rectify ()
 Re-adjust components to eliminate small deviations from a perfect orthosyplectic matrix.
 
template<class Avector >
void SetComponents (const Avector &beta)
 Set components from a beta vector.
 
template<class IT >
void SetComponents (IT begin, IT end)
 Set given a pair of pointers or iterators defining the beginning and end of an array of three Scalars to use as beta_x,beta _y, and beta_z.
 
void SetComponents (Scalar beta_x, Scalar beta_y, Scalar beta_z)
 Set components from beta_x, beta_y, and beta_z.
 

Protected Member Functions

void SetIdentity ()
 

Private Attributes

Scalar fM [10]
 

#include <MathX/GenVectorX/Boost.h>

Member Typedef Documentation

◆ Scalar

◆ XYZVector

Member Enumeration Documentation

◆ EBoostMatrixIndex

Enumerator
kXX 
kXY 
kXZ 
kXT 
kYY 
kYZ 
kYT 
kZZ 
kZT 
kTT 

Definition at line 75 of file Boost.h.

◆ ELorentzRotationMatrixIndex

Enumerator
kLXX 
kLXY 
kLXZ 
kLXT 
kLYX 
kLYY 
kLYZ 
kLYT 
kLZX 
kLZY 
kLZZ 
kLZT 
kLTX 
kLTY 
kLTZ 
kLTT 

Definition at line 56 of file Boost.h.

Constructor & Destructor Documentation

◆ Boost() [1/8]

ROOT::ROOT_MATH_ARCH::Boost::Boost ( )
inline

Default constructor (identity transformation)

Definition at line 93 of file Boost.h.

◆ Boost() [2/8]

ROOT::ROOT_MATH_ARCH::Boost::Boost ( Scalar beta_x,
Scalar beta_y,
Scalar beta_z )
inline

Construct given a three Scalars beta_x, beta_y, and beta_z.

Definition at line 98 of file Boost.h.

◆ Boost() [3/8]

template<class Avector >
ROOT::ROOT_MATH_ARCH::Boost::Boost ( const Avector & beta)
inlineexplicit

Construct given a beta vector (which must have methods x(), y(), z())

Definition at line 104 of file Boost.h.

◆ Boost() [4/8]

template<class IT >
ROOT::ROOT_MATH_ARCH::Boost::Boost ( IT begin,
IT end )
inline

Construct given a pair of pointers or iterators defining the beginning and end of an array of three Scalars to use as beta_x, _y, and _z.

Definition at line 114 of file Boost.h.

◆ Boost() [5/8]

ROOT::ROOT_MATH_ARCH::Boost::Boost ( Boost const & b)
inline

copy constructor

Definition at line 122 of file Boost.h.

◆ Boost() [6/8]

ROOT::ROOT_MATH_ARCH::Boost::Boost ( BoostX const & bx)
inlineexplicit

Construct from an axial boost.

Definition at line 128 of file Boost.h.

◆ Boost() [7/8]

ROOT::ROOT_MATH_ARCH::Boost::Boost ( BoostY const & by)
inlineexplicit

Definition at line 129 of file Boost.h.

◆ Boost() [8/8]

ROOT::ROOT_MATH_ARCH::Boost::Boost ( BoostZ const & bz)
inlineexplicit

Definition at line 130 of file Boost.h.

Member Function Documentation

◆ BetaVector()

DisplacementVector3D< Cartesian3D< Boost::Scalar > > ROOT::ROOT_MATH_ARCH::Boost::BetaVector ( ) const

Definition at line 120 of file Boost.cxx.

◆ GetComponents() [1/3]

template<class IT >
void ROOT::ROOT_MATH_ARCH::Boost::GetComponents ( IT begin) const
inline

Get given a pointer or an iterator defining the beginning of an array into which to place beta_x, beta_y, and beta_z.

Definition at line 214 of file Boost.h.

◆ GetComponents() [2/3]

template<class IT >
void ROOT::ROOT_MATH_ARCH::Boost::GetComponents ( IT begin,
IT end ) const
inline

Get given a pair of pointers or iterators defining the beginning and end of an array of three Scalars into which to place beta_x, beta_y, and beta_z.

Definition at line 199 of file Boost.h.

◆ GetComponents() [3/3]

void ROOT::ROOT_MATH_ARCH::Boost::GetComponents ( Scalar & beta_x,
Scalar & beta_y,
Scalar & beta_z ) const

Get components into beta_x, beta_y, and beta_z.

Definition at line 111 of file Boost.cxx.

◆ GetLorentzRotation()

void ROOT::ROOT_MATH_ARCH::Boost::GetLorentzRotation ( Scalar r[]) const

Get elements of internal 4x4 symmetric representation, into a data array suitable for direct use as the components of a LorentzRotation Note – 16 Scalars will be written into the array; if the array is not that large, then this will lead to undefined behavior.

Definition at line 127 of file Boost.cxx.

◆ Inverse()

Boost ROOT::ROOT_MATH_ARCH::Boost::Inverse ( ) const

Return inverse of a boost.

Definition at line 189 of file Boost.cxx.

◆ Invert()

void ROOT::ROOT_MATH_ARCH::Boost::Invert ( )

Invert a Boost in place.

Definition at line 181 of file Boost.cxx.

◆ operator!=()

bool ROOT::ROOT_MATH_ARCH::Boost::operator!= ( const Boost & rhs) const
inline

Definition at line 300 of file Boost.h.

◆ operator()() [1/3]

template<class Foreign4Vector >
Foreign4Vector ROOT::ROOT_MATH_ARCH::Boost::operator() ( const Foreign4Vector & v) const
inline

Lorentz transformation operation on an arbitrary 4-vector v.

Preconditions: v must implement methods x(), y(), z(), and t() and the arbitrary vector type must have a constructor taking (x,y,z,t)

Definition at line 263 of file Boost.h.

◆ operator()() [2/3]

template<class CoordSystem >
LorentzVector< CoordSystem > ROOT::ROOT_MATH_ARCH::Boost::operator() ( const LorentzVector< CoordSystem > & v) const
inline

Lorentz transformation operation on a LorentzVector in any coordinate system.

Definition at line 250 of file Boost.h.

◆ operator()() [3/3]

LorentzVector< PxPyPzE4D< double > > ROOT::ROOT_MATH_ARCH::Boost::operator() ( const LorentzVector< PxPyPzE4D< double > > & v) const

Lorentz transformation operation on a Minkowski ('Cartesian') LorentzVector.

Definition at line 169 of file Boost.cxx.

◆ operator*()

template<class A4Vector >
A4Vector ROOT::ROOT_MATH_ARCH::Boost::operator* ( const A4Vector & v) const
inline

Overload operator * for boost on a vector.

Definition at line 274 of file Boost.h.

◆ operator=() [1/4]

Boost & ROOT::ROOT_MATH_ARCH::Boost::operator= ( Boost const & rhs)
inline

Assignment operator.

Definition at line 137 of file Boost.h.

◆ operator=() [2/4]

Boost & ROOT::ROOT_MATH_ARCH::Boost::operator= ( BoostX const & bx)
inline

Assign from an axial pure boost.

Definition at line 148 of file Boost.h.

◆ operator=() [3/4]

Boost & ROOT::ROOT_MATH_ARCH::Boost::operator= ( BoostY const & by)
inline

Definition at line 149 of file Boost.h.

◆ operator=() [4/4]

Boost & ROOT::ROOT_MATH_ARCH::Boost::operator= ( BoostZ const & bz)
inline

Definition at line 150 of file Boost.h.

◆ operator==()

bool ROOT::ROOT_MATH_ARCH::Boost::operator== ( const Boost & rhs) const
inline

Equality/inequality operators.

Definition at line 292 of file Boost.h.

◆ Rectify()

void ROOT::ROOT_MATH_ARCH::Boost::Rectify ( )

Re-adjust components to eliminate small deviations from a perfect orthosyplectic matrix.

Definition at line 148 of file Boost.cxx.

◆ SetComponents() [1/3]

template<class Avector >
void ROOT::ROOT_MATH_ARCH::Boost::SetComponents ( const Avector & beta)
inline

Set components from a beta vector.

Definition at line 174 of file Boost.h.

◆ SetComponents() [2/3]

template<class IT >
void ROOT::ROOT_MATH_ARCH::Boost::SetComponents ( IT begin,
IT end )
inline

Set given a pair of pointers or iterators defining the beginning and end of an array of three Scalars to use as beta_x,beta _y, and beta_z.

Definition at line 184 of file Boost.h.

◆ SetComponents() [3/3]

void ROOT::ROOT_MATH_ARCH::Boost::SetComponents ( Scalar beta_x,
Scalar beta_y,
Scalar beta_z )

Set components from beta_x, beta_y, and beta_z.

Definition at line 86 of file Boost.cxx.

◆ SetIdentity()

void ROOT::ROOT_MATH_ARCH::Boost::SetIdentity ( )
protected

Definition at line 71 of file Boost.cxx.

Member Data Documentation

◆ fM

Scalar ROOT::ROOT_MATH_ARCH::Boost::fM[10]
private

Definition at line 306 of file Boost.h.

  • math/experimental/genvectorx/inc/MathX/GenVectorX/Boost.h
  • math/experimental/genvectorx/src/Boost.cxx