#include <Boost.h>
Public Types | |
| 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 } |
| enum | EBoostMatrixIndex { kXX = 0, kXY = 1, kXZ = 2, kXT = 3, kYY = 4, kYZ = 5, kYT = 6, kZZ = 7, kZT = 8, kTT = 9 } |
| typedef double | Scalar |
| typedef DisplacementVector3D < Cartesian3D< double > , DefaultCoordinateSystemTag > | XYZVector |
| The beta vector for this boost. | |
Public Member Functions | |
| Boost () | |
| Default constructor (identity transformation). | |
| Boost (Scalar beta_x, Scalar beta_y, Scalar beta_z) | |
| Construct given a three Scalars beta_x, beta_y, and beta_z. | |
| 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 (Boost const &b) | |
| copy constructor | |
| Boost (BoostX const &bx) | |
| Construct from an axial boost. | |
| Boost (BoostY const &by) | |
| Boost (BoostZ const &bz) | |
| Boost & | operator= (Boost const &rhs) |
| Assignment operator. | |
| Boost & | operator= (BoostX const &bx) |
| Assign from an axial pure boost. | |
| Boost & | operator= (BoostY const &by) |
| Boost & | operator= (BoostZ const &bz) |
| void | Rectify () |
| Re-adjust components to eliminate small deviations from a perfect orthosyplectic matrix. | |
| void | SetComponents (Scalar beta_x, Scalar beta_y, Scalar beta_z) |
| Set components from 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. | |
| 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. | |
| 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. | |
| 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. | |
| XYZVector | BetaVector () const |
| 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. | |
| LorentzVector < ROOT::Math::PxPyPzE4D < double > > | operator() (const LorentzVector< ROOT::Math::PxPyPzE4D< double > > &v) const |
| Lorentz transformation operation on a Minkowski ('Cartesian') LorentzVector. | |
| template<class CoordSystem > | |
| LorentzVector< CoordSystem > | operator() (const LorentzVector< CoordSystem > &v) const |
| Lorentz transformation operation on a LorentzVector in any coordinate system. | |
| template<class Foreign4Vector > | |
| Foreign4Vector | operator() (const Foreign4Vector &v) const |
| Lorentz transformation operation on an arbitrary 4-vector v. | |
| template<class A4Vector > | |
| A4Vector | operator* (const A4Vector &v) const |
| Overload operator * for boost on a vector. | |
| void | Invert () |
| Invert a Boost in place. | |
| Boost | Inverse () const |
| Return inverse of a boost. | |
| bool | operator== (const Boost &rhs) const |
| Equality/inequality operators. | |
| bool | operator!= (const Boost &rhs) const |
Protected Member Functions | |
| void | SetIdentity () |
A variable names bgamma appears in several places in this file.
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.
A few words of elaboration are needed to make its meaning clear. On page 69 of Misner, Thorne and Wheeler, (Exercise 2.7) the elements of the matrix for a general Lorentz boost are given as
where the n^i are unit vectors in the direction of the three spatial axes. Using the definitions,
, then, for example,
By definition,
so that
or
If we insert this into the expression for
, we get
or, finally
The expression
is what we call bgamma in the code below.
Definition at line 46 of file GenVector/Boost.h.
| typedef double ROOT::Math::Boost::Scalar |
Definition at line 50 of file GenVector/Boost.h.
| typedef DisplacementVector3D<Cartesian3D<double>, DefaultCoordinateSystemTag > ROOT::Math::Boost::XYZVector |
Definition at line 59 of file GenVector/Boost.h.
Definition at line 52 of file GenVector/Boost.h.
| ROOT::Math::Boost::Boost | ( | ) | [inline] |
Default constructor (identity transformation).
Definition at line 71 of file GenVector/Boost.h.
References SetIdentity().
Referenced by operator=().
Construct given a three Scalars beta_x, beta_y, and beta_z.
Definition at line 76 of file GenVector/Boost.h.
References SetComponents().
| ROOT::Math::Boost::Boost | ( | const Avector & | beta | ) | [inline, explicit] |
Construct given a beta vector (which must have methods x(), y(), z()).
Definition at line 84 of file GenVector/Boost.h.
References SetComponents().
| ROOT::Math::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 91 of file GenVector/Boost.h.
References SetComponents().
| ROOT::Math::Boost::Boost | ( | Boost const & | b | ) | [inline] |
| ROOT::Math::Boost::Boost | ( | BoostX const & | bx | ) | [inline, explicit] |
Construct from an axial boost.
Definition at line 104 of file GenVector/Boost.h.
References ROOT::Math::BoostX::BetaVector(), and SetComponents().
| ROOT::Math::Boost::Boost | ( | BoostY const & | by | ) | [inline, explicit] |
Definition at line 105 of file GenVector/Boost.h.
References ROOT::Math::BoostY::BetaVector(), and SetComponents().
| ROOT::Math::Boost::Boost | ( | BoostZ const & | bz | ) | [inline, explicit] |
Definition at line 106 of file GenVector/Boost.h.
References ROOT::Math::BoostZ::BetaVector(), and SetComponents().
| DisplacementVector3D< Cartesian3D< Boost::Scalar > > ROOT::Math::Boost::BetaVector | ( | ) | const |
| void ROOT::Math::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 186 of file GenVector/Boost.h.
References GetComponents().
| void ROOT::Math::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 175 of file GenVector/Boost.h.
References GetComponents().
| void ROOT::Math::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 115 of file Boost.cxx.
References kLTT, kLTX, kLTY, kLTZ, kLXT, kLXX, kLXY, kLXZ, kLYT, kLYX, kLYY, kLYZ, kLZT, kLZX, kLZY, kLZZ, kTT, kXT, kXX, kXY, kXZ, kYT, kYY, kYZ, kZT, and kZZ.
Referenced by ROOT::Math::LorentzRotation::LorentzRotation(), and ROOT::Math::operator<<().
| Boost ROOT::Math::Boost::Inverse | ( | ) | const |
| void ROOT::Math::Boost::Invert | ( | ) |
| bool ROOT::Math::Boost::operator!= | ( | const Boost & | rhs | ) | const [inline] |
| Foreign4Vector ROOT::Math::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 237 of file GenVector/Boost.h.
References operator()(), ROOT::Math::LorentzVector< CoordSystem >::T(), ROOT::Math::LorentzVector< CoordSystem >::X(), ROOT::Math::LorentzVector< CoordSystem >::Y(), and ROOT::Math::LorentzVector< CoordSystem >::Z().
| LorentzVector<CoordSystem> ROOT::Math::Boost::operator() | ( | const LorentzVector< CoordSystem > & | v | ) | const [inline] |
Lorentz transformation operation on a LorentzVector in any coordinate system.
Definition at line 224 of file GenVector/Boost.h.
References operator()().
| LorentzVector< PxPyPzE4D< double > > ROOT::Math::Boost::operator() | ( | const LorentzVector< ROOT::Math::PxPyPzE4D< double > > & | v | ) | const |
| A4Vector ROOT::Math::Boost::operator* | ( | const A4Vector & | v | ) | const [inline] |
Overload operator * for boost on a vector.
Definition at line 248 of file GenVector/Boost.h.
References operator()().
Definition at line 129 of file GenVector/Boost.h.
References Boost(), and operator=().
Referenced by operator=().
Definition at line 127 of file GenVector/Boost.h.
References Boost(), and operator=().
Referenced by operator=().
Assign from an axial pure boost.
Definition at line 125 of file GenVector/Boost.h.
References Boost(), and operator=().
Referenced by operator=().
| bool ROOT::Math::Boost::operator== | ( | const Boost & | rhs | ) | const [inline] |
Equality/inequality operators.
Definition at line 266 of file GenVector/Boost.h.
Referenced by operator!=().
| void ROOT::Math::Boost::Rectify | ( | ) |
Re-adjust components to eliminate small deviations from a perfect orthosyplectic matrix.
Definition at line 123 of file Boost.cxx.
References ROOT::Math::beta(), kTT, kXT, kYT, kZT, ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::mag2(), ROOT::Math::DisplacementVector3D< CoordSystem, Tag >::R(), SetComponents(), and ROOT::Math::Throw().
| void ROOT::Math::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 164 of file GenVector/Boost.h.
References SetComponents().
| void ROOT::Math::Boost::SetComponents | ( | const Avector & | beta | ) | [inline] |
Set components from a beta vector.
Definition at line 156 of file GenVector/Boost.h.
References SetComponents().
Referenced by SetComponents().
Set components from beta_x, beta_y, and beta_z.
Definition at line 76 of file Boost.cxx.
References ROOT::Math::Cephes::gamma(), kTT, kXT, kXX, kXY, kXZ, kYT, kYY, kYZ, kZT, kZZ, ROOT::Math::sqrt(), and ROOT::Math::Throw().
Referenced by Boost(), Rectify(), and SetComponents().
| void ROOT::Math::Boost::SetIdentity | ( | ) | [protected] |
1.5.9