|
ROOT
Reference Guide |
|
Go to the documentation of this file.
17 #ifndef ROOT_Math_GenVector_LorentzRotation
18 #define ROOT_Math_GenVector_LorentzRotation 1
117 template<
class ForeignMatrix>
127 template<
class Foreign4Vector>
129 const Foreign4Vector&
v2,
130 const Foreign4Vector&
v3,
154 rhs.
fM[4], rhs.
fM[5], rhs.
fM[6], rhs.
fM[7],
155 rhs.
fM[8], rhs.
fM[9], rhs.
fM[10], rhs.
fM[11],
156 rhs.
fM[12], rhs.
fM[13], rhs.
fM[14], rhs.
fM[15] );
196 template<
class ForeignMatrix>
200 m(1,0),
m(1,1),
m(1,2),
m(1,3),
201 m(2,0),
m(2,1),
m(2,2),
m(2,3),
202 m(3,0),
m(3,1),
m(3,2),
m(3,3) );
220 template<
class Foreign4Vector>
223 const Foreign4Vector&
v2,
224 const Foreign4Vector&
v3,
225 const Foreign4Vector&
v4 ) {
238 template<
class Foreign4Vector>
243 Foreign4Vector&
v4 )
const {
256 for (
int i = 0; i <16; ++i) {
270 for (
int i = 0; i <16; ++i) {
283 std::copy (
fM+0,
fM+16, begin );
292 template<
class ForeignMatrix>
306 template<
class ForeignMatrix>
366 template <
class CoordSystem>
379 template <
class Foreign4Vector>
384 return Foreign4Vector ( r_xyzt.
X(), r_xyzt.
Y(), r_xyzt.
Z(), r_xyzt.
T() );
390 template <
class A4Vector>
448 for (
unsigned int i=0; i < 16; ++i) {
449 if(
fM[i] != rhs.
fM[i] )
return false;
bool operator==(const LorentzRotation &rhs) const
Equality/inequality operators.
void GetComponents(IT begin) const
Get the 16 matrix components into data specified by an iterator begin.
AxisAngle class describing rotation represented with direction axis (3D Vector) and an angle of rotat...
LorentzVector< ROOT::Math::PxPyPzE4D< double > > operator()(const LorentzVector< ROOT::Math::PxPyPzE4D< double > > &v) const
Lorentz transformation operation on a Minkowski ('Cartesian') LorentzVector.
void SetRotationMatrix(const ForeignMatrix &m)
Set components from a linear algebra matrix of size at least 4x4, which must support operator()(i,...
Class representing a Lorentz Boost along the Y axis, by beta.
LorentzRotation & operator=(LorentzRotation const &rhs)
Assign from another LorentzRotation.
LorentzRotation(Boost const &b)
Construct from a pure boost.
LorentzRotation & operator=(BoostY const &b)
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 d...
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 wil...
LorentzRotation & operator=(Boost const &b)
Assign from a pure boost.
Rotation class representing a 3D rotation about the Z axis by the angle of rotation.
Rotation class with the (3D) rotation represented by a 3x3 orthogonal matrix.
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.
std::ostream & operator<<(std::ostream &os, const AxisAngle &a)
Stream Output and Input.
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(),...
void GetLorentzRotation(Scalar r[]) const
Get elements of internal 4x4 symmetric representation, into a data array suitable for direct use as t...
Class representing a Lorentz Boost along the Z axis, by beta.
LorentzRotation(const ForeignMatrix &m)
Construct from a linear algebra matrix of size at least 4x4, which must support operator()(i,...
Lorentz boost class with the (4D) transformation represented internally by a 4x4 orthosymplectic matr...
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=(const ForeignMatrix &m)
Assign from a linear algebra matrix of size at least 4x4, which must support operator()(i,...
LorentzRotation & operator=(BoostX const &b)
ELorentzRotationMatrixIndex
#define R(a, b, c, d, e, f, g, h, i)
double dist(Rotation3D const &r1, Rotation3D const &r2)
LorentzRotation & operator*=(const R &r)
Post-Multiply (on right) by another LorentzRotation, Boost, or rotation : T = T*R.
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.
LorentzRotation & operator=(RotationZ const &r)
EulerAngles class describing rotation as three angles (Euler Angles).
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...
LorentzRotation(IT begin, IT end)
Construct given a pair of pointers or iterators defining the beginning and end of an array of sixteen...
LorentzRotation & operator=(EulerAngles const &e)
Rotation class representing a 3D rotation about the X axis by the angle of rotation.
bool operator!=(const LorentzRotation &rhs) const
void Invert()
Invert a Lorentz rotation in place.
typedef void((*Func_t)())
LorentzRotation & operator=(Rotation3D const &r)
Assign from a 3-D rotation.
LorentzRotation & operator=(RotationY const &r)
LorentzRotation(BoostX const &bx)
A4Vector operator*(const A4Vector &v) const
Overload operator * for rotation on a vector.
Lorentz transformation class with the (4D) transformation represented by a 4x4 orthosymplectic matrix...
void GetRotationMatrix(ForeignMatrix &m) const
Get components into a linear algebra matrix of size at least 4x4, which must support operator()(i,...
LorentzRotation & operator=(BoostZ const &b)
void GetLorentzRotation(Scalar r[]) const
Get elements of internal 4x4 symmetric representation, into a data array suitable for direct use as t...
LorentzRotation Inverse() const
Return inverse of a rotation.
void Rectify()
Re-adjust components to eliminate small deviations from a perfect orthosyplectic matrix.
LorentzRotation & operator=(Quaternion const &q)
LorentzRotation(BoostZ const &bz)
void GetLorentzRotation(Scalar r[]) const
Get elements of internal 4x4 symmetric representation, into a data array suitable for direct use as t...
Class representing a Lorentz Boost along the X axis, by beta.
LorentzRotation()
Default constructor (identity transformation)
Rotation class with the (3D) rotation represented by a unit quaternion (u, i, j, k).
LorentzRotation & operator=(RotationX const &r)
LorentzRotation(BoostY const &by)
AxisAngle::Scalar Distance(const AxisAngle &r1, const R &r2)
Distance between two rotations.
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 e...
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
Namespace for new Math classes and functions.
Class describing a 4D cartesian coordinate system (x, y, z, t coordinates) or momentum-energy vectors...
Class describing a generic LorentzVector in the 4D space-time, using the specified coordinate system ...
LorentzRotation & operator=(AxisAngle const &a)
Rotation class representing a 3D rotation about the Y axis by the angle of rotation.
LorentzRotation(LorentzRotation const &r)
Copy constructor.