#include <LorentzRotation.h>
Public Types | |
| enum | ELorentzRotationMatrixIndex { kXX = 0, kXY = 1, kXZ = 2, kXT = 3, kYX = 4, kYY = 5, kYZ = 6, kYT = 7, kZX = 8, kZY = 9, kZZ = 10, kZT = 11, kTX = 12, kTY = 13, kTZ = 14, kTT = 15 } |
| typedef double | Scalar |
Public Member Functions | |
| LorentzRotation () | |
| Default constructor (identity transformation). | |
| template<class IT > | |
| LorentzRotation (IT begin, IT end) | |
| Construct given a pair of pointers or iterators defining the beginning and end of an array of sixteen Scalars. | |
| LorentzRotation (LorentzRotation const &r) | |
| Copy constructor. | |
| LorentzRotation (Boost const &b) | |
| Construct from a pure boost. | |
| LorentzRotation (BoostX const &bx) | |
| LorentzRotation (BoostY const &by) | |
| LorentzRotation (BoostZ const &bz) | |
| LorentzRotation (Rotation3D const &r) | |
| Construct from a 3-D rotation (no space-time mixing). | |
| LorentzRotation (AxisAngle const &a) | |
| LorentzRotation (EulerAngles const &e) | |
| LorentzRotation (Quaternion const &q) | |
| LorentzRotation (RotationX const &r) | |
| LorentzRotation (RotationY const &r) | |
| LorentzRotation (RotationZ const &r) | |
| template<class ForeignMatrix > | |
| LorentzRotation (const ForeignMatrix &m) | |
| Construct from a linear algebra matrix of size at least 4x4, which must support operator()(i,j) to obtain elements (0,3) thru (3,3). | |
| template<class Foreign4Vector > | |
| LorentzRotation (const Foreign4Vector &v1, const Foreign4Vector &v2, const Foreign4Vector &v3, const Foreign4Vector &v4) | |
| Construct from four orthosymplectic vectors (which must have methods x(), y(), z() and t()) which will be used as the columns of the Lorentz rotation matrix. | |
| LorentzRotation (Scalar xx, Scalar xy, Scalar xz, Scalar xt, Scalar yx, Scalar yy, Scalar yz, Scalar yt, Scalar zx, Scalar zy, Scalar zz, Scalar zt, Scalar tx, Scalar ty, Scalar tz, Scalar tt) | |
| Raw constructor from sixteen Scalar components (without any checking). | |
| LorentzRotation & | operator= (LorentzRotation const &rhs) |
| Assign from another LorentzRotation. | |
| LorentzRotation & | operator= (Boost const &b) |
| Assign from a pure boost. | |
| LorentzRotation & | operator= (BoostX const &b) |
| LorentzRotation & | operator= (BoostY const &b) |
| LorentzRotation & | operator= (BoostZ const &b) |
| LorentzRotation & | operator= (Rotation3D const &r) |
| Assign from a 3-D rotation. | |
| LorentzRotation & | operator= (AxisAngle const &a) |
| LorentzRotation & | operator= (EulerAngles const &e) |
| LorentzRotation & | operator= (Quaternion const &q) |
| LorentzRotation & | operator= (RotationZ const &r) |
| LorentzRotation & | operator= (RotationY const &r) |
| LorentzRotation & | operator= (RotationX const &r) |
| template<class ForeignMatrix > | |
| LorentzRotation & | operator= (const ForeignMatrix &m) |
| Assign from a linear algebra matrix of size at least 4x4, which must support operator()(i,j) to obtain elements (0,3) thru (3,3). | |
| void | Rectify () |
| Re-adjust components to eliminate small deviations from a perfect orthosyplectic matrix. | |
| template<class Foreign4Vector > | |
| void | SetComponents (const Foreign4Vector &v1, const Foreign4Vector &v2, const Foreign4Vector &v3, const Foreign4Vector &v4) |
| Set components from four orthosymplectic vectors (which must have methods x(), y(), z(), and t()) which will be used as the columns of the Lorentz rotation matrix. | |
| template<class Foreign4Vector > | |
| void | GetComponents (Foreign4Vector &v1, Foreign4Vector &v2, Foreign4Vector &v3, Foreign4Vector &v4) const |
| Get components into four 4-vectors which will be the (orthosymplectic) columns of the rotation matrix. | |
| template<class IT > | |
| void | SetComponents (IT begin, IT end) |
| Set the 16 matrix components given an iterator to the start of the desired data, and another to the end (16 past start). | |
| template<class IT > | |
| void | GetComponents (IT begin, IT end) const |
| Get the 16 matrix components into data specified by an iterator begin and another to the end of the desired data (16 past start). | |
| template<class IT > | |
| void | GetComponents (IT begin) const |
| Get the 16 matrix components into data specified by an iterator begin. | |
| template<class ForeignMatrix > | |
| void | SetRotationMatrix (const ForeignMatrix &m) |
| Set components from a linear algebra matrix of size at least 4x4, which must support operator()(i,j) to obtain elements (0,0) thru (3,3). | |
| template<class ForeignMatrix > | |
| void | GetRotationMatrix (ForeignMatrix &m) const |
| Get components into a linear algebra matrix of size at least 4x4, which must support operator()(i,j) for write access to elements (0,0) thru (3,3). | |
| void | SetComponents (Scalar xx, Scalar xy, Scalar xz, Scalar xt, Scalar yx, Scalar yy, Scalar yz, Scalar yt, Scalar zx, Scalar zy, Scalar zz, Scalar zt, Scalar tx, Scalar ty, Scalar tz, Scalar tt) |
| Set the components from sixteen scalars -- UNCHECKED for orthosymplectic. | |
| void | GetComponents (Scalar &xx, Scalar &xy, Scalar &xz, Scalar &xt, Scalar &yx, Scalar &yy, Scalar &yz, Scalar &yt, Scalar &zx, Scalar &zy, Scalar &zz, Scalar &zt, Scalar &tx, Scalar &ty, Scalar &tz, Scalar &tt) const |
| Get the sixteen components into sixteen scalars. | |
| 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 rotation on a vector. | |
| void | Invert () |
| Invert a Lorentz rotation in place. | |
| LorentzRotation | Inverse () const |
| Return inverse of a rotation. | |
| LorentzRotation | operator* (const LorentzRotation &r) const |
| Multiply (combine) this Lorentz rotation by another LorentzRotation. | |
| LorentzRotation | operator* (const Boost &b) const |
| Multiply (combine) this Lorentz rotation by a pure Lorentz boost. | |
| LorentzRotation | operator* (const BoostX &b) const |
| LorentzRotation | operator* (const BoostY &b) const |
| LorentzRotation | operator* (const BoostZ &b) const |
| LorentzRotation | operator* (const Rotation3D &r) const |
| Multiply (combine) this Lorentz rotation by a 3-D Rotation. | |
| LorentzRotation | operator* (const AxisAngle &a) const |
| LorentzRotation | operator* (const EulerAngles &e) const |
| LorentzRotation | operator* (const Quaternion &q) const |
| LorentzRotation | operator* (const RotationX &rx) const |
| LorentzRotation | operator* (const RotationY &ry) const |
| LorentzRotation | operator* (const RotationZ &rz) const |
| template<class R > | |
| LorentzRotation & | operator*= (const R &r) |
| Post-Multiply (on right) by another LorentzRotation, Boost, or rotation : T = T*R. | |
| bool | operator== (const LorentzRotation &rhs) const |
| Equality/inequality operators. | |
| bool | operator!= (const LorentzRotation &rhs) const |
See also Boost, BoostX, BoostY and BoostZ for classes representing specialized Lorentz transformations. Also, the 3-D rotation classes can be considered to be special Lorentz transformations which do not mix space and time components.
Definition at line 54 of file GenVector/LorentzRotation.h.
| typedef double ROOT::Math::LorentzRotation::Scalar |
Definition at line 58 of file GenVector/LorentzRotation.h.
Definition at line 60 of file GenVector/LorentzRotation.h.
| ROOT::Math::LorentzRotation::LorentzRotation | ( | ) |
| ROOT::Math::LorentzRotation::LorentzRotation | ( | IT | begin, | |
| IT | end | |||
| ) | [inline] |
Construct given a pair of pointers or iterators defining the beginning and end of an array of sixteen Scalars.
Definition at line 79 of file GenVector/LorentzRotation.h.
References SetComponents().
| ROOT::Math::LorentzRotation::LorentzRotation | ( | LorentzRotation const & | r | ) | [inline] |
| ROOT::Math::LorentzRotation::LorentzRotation | ( | Boost const & | b | ) | [inline, explicit] |
Construct from a pure boost.
Definition at line 94 of file GenVector/LorentzRotation.h.
References ROOT::Math::Boost::GetLorentzRotation().
| ROOT::Math::LorentzRotation::LorentzRotation | ( | BoostX const & | bx | ) | [inline, explicit] |
Definition at line 95 of file GenVector/LorentzRotation.h.
References ROOT::Math::BoostX::GetLorentzRotation().
| ROOT::Math::LorentzRotation::LorentzRotation | ( | BoostY const & | by | ) | [inline, explicit] |
Definition at line 96 of file GenVector/LorentzRotation.h.
References ROOT::Math::BoostY::GetLorentzRotation().
| ROOT::Math::LorentzRotation::LorentzRotation | ( | BoostZ const & | bz | ) | [inline, explicit] |
Definition at line 97 of file GenVector/LorentzRotation.h.
References ROOT::Math::BoostZ::GetLorentzRotation().
| ROOT::Math::LorentzRotation::LorentzRotation | ( | Rotation3D const & | r | ) | [explicit] |
| ROOT::Math::LorentzRotation::LorentzRotation | ( | AxisAngle const & | a | ) | [explicit] |
| ROOT::Math::LorentzRotation::LorentzRotation | ( | EulerAngles const & | e | ) | [explicit] |
| ROOT::Math::LorentzRotation::LorentzRotation | ( | Quaternion const & | q | ) | [explicit] |
| ROOT::Math::LorentzRotation::LorentzRotation | ( | RotationX const & | r | ) | [explicit] |
| ROOT::Math::LorentzRotation::LorentzRotation | ( | RotationY const & | r | ) | [explicit] |
| ROOT::Math::LorentzRotation::LorentzRotation | ( | RotationZ const & | r | ) | [explicit] |
| ROOT::Math::LorentzRotation::LorentzRotation | ( | const ForeignMatrix & | m | ) | [inline, explicit] |
Construct from a linear algebra matrix of size at least 4x4, which must support operator()(i,j) to obtain elements (0,3) thru (3,3).
Precondition: The matrix is assumed to be orthosymplectic. NO checking or re-adjusting is performed. Note: (0,0) refers to the XX component; (3,3) refers to the TT component.
Definition at line 118 of file GenVector/LorentzRotation.h.
References SetComponents().
| ROOT::Math::LorentzRotation::LorentzRotation | ( | const Foreign4Vector & | v1, | |
| const Foreign4Vector & | v2, | |||
| const Foreign4Vector & | v3, | |||
| const Foreign4Vector & | v4 | |||
| ) | [inline] |
Construct from four orthosymplectic vectors (which must have methods x(), y(), z() and t()) which will be used as the columns of the Lorentz rotation matrix.
The orthosymplectic conditions will be checked, and values adjusted so that the result will always be a good Lorentz rotation matrix.
Definition at line 128 of file GenVector/LorentzRotation.h.
References SetComponents().
| ROOT::Math::LorentzRotation::LorentzRotation | ( | Scalar | xx, | |
| Scalar | xy, | |||
| Scalar | xz, | |||
| Scalar | xt, | |||
| Scalar | yx, | |||
| Scalar | yy, | |||
| Scalar | yz, | |||
| Scalar | yt, | |||
| Scalar | zx, | |||
| Scalar | zy, | |||
| Scalar | zz, | |||
| Scalar | zt, | |||
| Scalar | tx, | |||
| Scalar | ty, | |||
| Scalar | tz, | |||
| Scalar | tt | |||
| ) | [inline] |
Raw constructor from sixteen Scalar components (without any checking).
Definition at line 137 of file GenVector/LorentzRotation.h.
References SetComponents().
| void ROOT::Math::LorentzRotation::GetComponents | ( | IT | begin | ) | const [inline] |
Get the 16 matrix components into data specified by an iterator begin.
Definition at line 280 of file GenVector/LorentzRotation.h.
| void ROOT::Math::LorentzRotation::GetComponents | ( | IT | begin, | |
| IT | end | |||
| ) | const [inline] |
Get the 16 matrix components into data specified by an iterator begin and another to the end of the desired data (16 past start).
Definition at line 268 of file GenVector/LorentzRotation.h.
| void ROOT::Math::LorentzRotation::GetComponents | ( | Foreign4Vector & | v1, | |
| Foreign4Vector & | v2, | |||
| Foreign4Vector & | v3, | |||
| Foreign4Vector & | v4 | |||
| ) | const [inline] |
Get components into four 4-vectors which will be the (orthosymplectic) columns of the rotation matrix.
(The 4-vector class must have a constructor from 4 Scalars used as x, y, z, t)
Definition at line 240 of file GenVector/LorentzRotation.h.
References kTT, kTX, kTY, kTZ, kXT, kXX, kXY, kXZ, kYT, kYX, kYY, kYZ, kZT, kZX, kZY, and kZZ.
Referenced by ROOT::Math::operator<<().
| void ROOT::Math::LorentzRotation::GetRotationMatrix | ( | ForeignMatrix & | m | ) | const [inline] |
Get components into a linear algebra matrix of size at least 4x4, which must support operator()(i,j) for write access to elements (0,0) thru (3,3).
Definition at line 306 of file GenVector/LorentzRotation.h.
References kTT, kTX, kTY, kTZ, kXT, kXX, kXY, kXZ, kYT, kYX, kYY, kYZ, kZT, kZX, kZY, kZZ, and m.
| LorentzRotation ROOT::Math::LorentzRotation::Inverse | ( | ) | const |
| void ROOT::Math::LorentzRotation::Invert | ( | ) |
| bool ROOT::Math::LorentzRotation::operator!= | ( | const LorentzRotation & | rhs | ) | const [inline] |
| Foreign4Vector ROOT::Math::LorentzRotation::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 379 of file GenVector/LorentzRotation.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::LorentzRotation::operator() | ( | const LorentzVector< CoordSystem > & | v | ) | const [inline] |
Lorentz transformation operation on a LorentzVector in any coordinate system.
Definition at line 366 of file GenVector/LorentzRotation.h.
References operator()().
| LorentzVector< ROOT::Math::PxPyPzE4D<double> > ROOT::Math::LorentzRotation::operator() | ( | const LorentzVector< ROOT::Math::PxPyPzE4D< double > > & | v | ) | const [inline] |
| LorentzRotation ROOT::Math::LorentzRotation::operator* | ( | const RotationZ & | rz | ) | const [inline] |
Definition at line 432 of file GenVector/LorentzRotation.h.
| LorentzRotation ROOT::Math::LorentzRotation::operator* | ( | const RotationY & | ry | ) | const [inline] |
Definition at line 431 of file GenVector/LorentzRotation.h.
| LorentzRotation ROOT::Math::LorentzRotation::operator* | ( | const RotationX & | rx | ) | const [inline] |
Definition at line 430 of file GenVector/LorentzRotation.h.
| LorentzRotation ROOT::Math::LorentzRotation::operator* | ( | const Quaternion & | q | ) | const [inline] |
Definition at line 429 of file GenVector/LorentzRotation.h.
| LorentzRotation ROOT::Math::LorentzRotation::operator* | ( | const EulerAngles & | e | ) | const [inline] |
Definition at line 428 of file GenVector/LorentzRotation.h.
| LorentzRotation ROOT::Math::LorentzRotation::operator* | ( | const AxisAngle & | a | ) | const [inline] |
Definition at line 427 of file GenVector/LorentzRotation.h.
| LorentzRotation ROOT::Math::LorentzRotation::operator* | ( | const Rotation3D & | r | ) | const [inline] |
Multiply (combine) this Lorentz rotation by a 3-D Rotation.
Definition at line 426 of file GenVector/LorentzRotation.h.
| LorentzRotation ROOT::Math::LorentzRotation::operator* | ( | const BoostZ & | b | ) | const [inline] |
Definition at line 421 of file GenVector/LorentzRotation.h.
| LorentzRotation ROOT::Math::LorentzRotation::operator* | ( | const BoostY & | b | ) | const [inline] |
Definition at line 420 of file GenVector/LorentzRotation.h.
| LorentzRotation ROOT::Math::LorentzRotation::operator* | ( | const BoostX & | b | ) | const [inline] |
Definition at line 419 of file GenVector/LorentzRotation.h.
| LorentzRotation ROOT::Math::LorentzRotation::operator* | ( | const Boost & | b | ) | const [inline] |
Multiply (combine) this Lorentz rotation by a pure Lorentz boost.
Definition at line 418 of file GenVector/LorentzRotation.h.
| LorentzRotation ROOT::Math::LorentzRotation::operator* | ( | const LorentzRotation & | r | ) | const |
| A4Vector ROOT::Math::LorentzRotation::operator* | ( | const A4Vector & | v | ) | const [inline] |
Overload operator * for rotation on a vector.
Definition at line 390 of file GenVector/LorentzRotation.h.
References operator()().
| LorentzRotation& ROOT::Math::LorentzRotation::operator*= | ( | const R & | r | ) | [inline] |
Post-Multiply (on right) by another LorentzRotation, Boost, or rotation : T = T*R.
Definition at line 440 of file GenVector/LorentzRotation.h.
| LorentzRotation& ROOT::Math::LorentzRotation::operator= | ( | const ForeignMatrix & | m | ) | [inline] |
Assign from a linear algebra matrix of size at least 4x4, which must support operator()(i,j) to obtain elements (0,3) thru (3,3).
Precondition: The matrix is assumed to be orthosymplectic. NO checking or re-adjusting is performed.
Definition at line 198 of file GenVector/LorentzRotation.h.
References m, and SetComponents().
| LorentzRotation& ROOT::Math::LorentzRotation::operator= | ( | RotationX const & | r | ) | [inline] |
Definition at line 188 of file GenVector/LorentzRotation.h.
References LorentzRotation(), and operator=().
Referenced by operator=().
| LorentzRotation& ROOT::Math::LorentzRotation::operator= | ( | RotationY const & | r | ) | [inline] |
Definition at line 186 of file GenVector/LorentzRotation.h.
References LorentzRotation(), and operator=().
Referenced by operator=().
| LorentzRotation& ROOT::Math::LorentzRotation::operator= | ( | RotationZ const & | r | ) | [inline] |
Definition at line 184 of file GenVector/LorentzRotation.h.
References LorentzRotation(), and operator=().
Referenced by operator=().
| LorentzRotation& ROOT::Math::LorentzRotation::operator= | ( | Quaternion const & | q | ) | [inline] |
Definition at line 182 of file GenVector/LorentzRotation.h.
References LorentzRotation(), and operator=().
Referenced by operator=().
| LorentzRotation& ROOT::Math::LorentzRotation::operator= | ( | EulerAngles const & | e | ) | [inline] |
Definition at line 180 of file GenVector/LorentzRotation.h.
References LorentzRotation(), and operator=().
Referenced by operator=().
| LorentzRotation& ROOT::Math::LorentzRotation::operator= | ( | AxisAngle const & | a | ) | [inline] |
Definition at line 178 of file GenVector/LorentzRotation.h.
References LorentzRotation(), and operator=().
Referenced by operator=().
| LorentzRotation& ROOT::Math::LorentzRotation::operator= | ( | Rotation3D const & | r | ) | [inline] |
Assign from a 3-D rotation.
Definition at line 176 of file GenVector/LorentzRotation.h.
References LorentzRotation(), and operator=().
Referenced by operator=().
| LorentzRotation& ROOT::Math::LorentzRotation::operator= | ( | BoostZ const & | b | ) | [inline] |
Definition at line 170 of file GenVector/LorentzRotation.h.
References LorentzRotation(), and operator=().
Referenced by operator=().
| LorentzRotation& ROOT::Math::LorentzRotation::operator= | ( | BoostY const & | b | ) | [inline] |
Definition at line 168 of file GenVector/LorentzRotation.h.
References LorentzRotation(), and operator=().
Referenced by operator=().
| LorentzRotation& ROOT::Math::LorentzRotation::operator= | ( | BoostX const & | b | ) | [inline] |
Definition at line 166 of file GenVector/LorentzRotation.h.
References LorentzRotation(), and operator=().
Referenced by operator=().
| LorentzRotation& ROOT::Math::LorentzRotation::operator= | ( | Boost const & | b | ) | [inline] |
Assign from a pure boost.
Definition at line 164 of file GenVector/LorentzRotation.h.
References LorentzRotation(), and operator=().
Referenced by operator=().
| LorentzRotation& ROOT::Math::LorentzRotation::operator= | ( | LorentzRotation const & | rhs | ) | [inline] |
Assign from another LorentzRotation.
Definition at line 152 of file GenVector/LorentzRotation.h.
References SetComponents().
| bool ROOT::Math::LorentzRotation::operator== | ( | const LorentzRotation & | rhs | ) | const [inline] |
Equality/inequality operators.
Definition at line 445 of file GenVector/LorentzRotation.h.
Referenced by operator!=().
| void ROOT::Math::LorentzRotation::Rectify | ( | ) |
Re-adjust components to eliminate small deviations from a perfect orthosyplectic matrix.
Definition at line 122 of file LorentzRotation.cxx.
References kTT, kTX, kTY, kTZ, kXT, kXX, kXY, kXZ, kYT, kYX, kYY, kYZ, kZT, kZX, kZY, kZZ, ROOT::Math::sqrt(), and ROOT::Math::Throw().
Referenced by SetComponents().
| void ROOT::Math::LorentzRotation::SetComponents | ( | IT | begin, | |
| IT | end | |||
| ) | [inline] |
Set the 16 matrix components given an iterator to the start of the desired data, and another to the end (16 past start).
Definition at line 255 of file GenVector/LorentzRotation.h.
| void ROOT::Math::LorentzRotation::SetComponents | ( | const Foreign4Vector & | v1, | |
| const Foreign4Vector & | v2, | |||
| const Foreign4Vector & | v3, | |||
| const Foreign4Vector & | v4 | |||
| ) | [inline] |
Set components from four orthosymplectic vectors (which must have methods x(), y(), z(), and t()) which will be used as the columns of the Lorentz rotation matrix.
The values will be adjusted so that the result will always be a good Lorentz rotation matrix.
Definition at line 222 of file GenVector/LorentzRotation.h.
References kTT, kTX, kTY, kTZ, kXT, kXX, kXY, kXZ, kYT, kYX, kYY, kYZ, kZT, kZX, kZY, kZZ, and Rectify().
Referenced by LorentzRotation(), and operator=().
| void ROOT::Math::LorentzRotation::SetRotationMatrix | ( | const ForeignMatrix & | m | ) | [inline] |
Set components from a linear algebra matrix of size at least 4x4, which must support operator()(i,j) to obtain elements (0,0) thru (3,3).
Precondition: The matrix is assumed to be orthosymplectic. NO checking or re-adjusting is performed.
Definition at line 292 of file GenVector/LorentzRotation.h.
References kTT, kTX, kTY, kTZ, kXT, kXX, kXY, kXZ, kYT, kYX, kYY, kYZ, kZT, kZX, kZY, kZZ, and m.
1.5.9