89 Scalar bp2 = bx * bx + by * by + bz * bz;
91#if !defined(ROOT_MATH_SYCL) && !defined(ROOT_MATH_CUDA)
92 GenVector_Throw(
"Beta Vector supplied to set Boost represents speed >= c");
98 Scalar bgamma = gamma * gamma / (1.0 + gamma);
99 fM[
kXX] = 1.0 + bgamma * bx * bx;
100 fM[
kYY] = 1.0 + bgamma * by * by;
101 fM[
kZZ] = 1.0 + bgamma * bz * bz;
102 fM[
kXY] = bgamma * bx * by;
103 fM[
kXZ] = bgamma * bx * bz;
104 fM[
kYZ] = bgamma * by * bz;
105 fM[
kXT] = gamma * bx;
106 fM[
kYT] = gamma * by;
107 fM[
kZT] = gamma * bz;
115 bx =
fM[
kXT] * gaminv;
116 by =
fM[
kYT] * gaminv;
117 bz =
fM[
kZT] * gaminv;
156#if !defined(ROOT_MATH_SYCL) && !defined(ROOT_MATH_CUDA)
163 if (beta.mag2() >= 1) {
164 beta /= (beta.R() * (1.0 + 1.0e-16));
197#if !defined(ROOT_MATH_SYCL) && !defined(ROOT_MATH_CUDA)
205 b.GetLorentzRotation(
m);
206 os <<
"\n" <<
m[0] <<
" " <<
m[1] <<
" " <<
m[2] <<
" " <<
m[3];
208 <<
"\t" <<
" " <<
m[5] <<
" " <<
m[6] <<
" " <<
m[7];
210 <<
"\t" <<
" " <<
"\t" <<
" " <<
m[10] <<
" " <<
m[11];
212 <<
"\t" <<
" " <<
"\t" <<
" " <<
"\t" <<
" " <<
m[15] <<
"\n";
Lorentz boost class with the (4D) transformation represented internally by a 4x4 orthosymplectic matr...
LorentzVector< PxPyPzE4D< double > > operator()(const LorentzVector< PxPyPzE4D< double > > &v) const
Lorentz transformation operation on a Minkowski ('Cartesian') LorentzVector.
XYZVector BetaVector() const
Boost()
Default constructor (identity transformation).
void SetComponents(Scalar beta_x, Scalar beta_y, Scalar beta_z)
Set components from beta_x, beta_y, and beta_z.
Boost Inverse() const
Return inverse of a boost.
void GetLorentzRotation(Scalar r[]) const
Get elements of internal 4x4 symmetric representation, into a data array suitable for direct use as t...
void Rectify()
Re-adjust components to eliminate small deviations from a perfect orthosyplectic matrix.
void GetComponents(Scalar &beta_x, Scalar &beta_y, Scalar &beta_z) const
Get components into beta_x, beta_y, and beta_z.
void Invert()
Invert a Boost in place.
Class describing a generic displacement vector in 3 dimensions.
Class describing a generic LorentzVector in the 4D space-time, using the specified coordinate system ...
Class describing a 4D cartesian coordinate system (x, y, z, t coordinates) or momentum-energy vectors...
void GenVector_Throw(const char *)
function throwing exception, by creating internally a GenVector_exception only when needed
Scalar math_sqrt(Scalar x)
std::ostream & operator<<(std::ostream &os, const AxisAngle &a)
Stream Output and Input.