78 Scalar bp2 = bx*bx + by*by + bz*bz;
81 "Beta Vector supplied to set Boost represents speed >= c");
85 Scalar gamma = 1.0 / std::sqrt(1.0 - bp2);
86 Scalar bgamma = gamma * gamma / (1.0 + gamma);
87 fM[
kXX] = 1.0 + bgamma * bx * bx;
88 fM[
kYY] = 1.0 + bgamma * by * by;
89 fM[
kZZ] = 1.0 + bgamma * bz * bz;
90 fM[
kXY] = bgamma * bx * by;
91 fM[
kXZ] = bgamma * bx * bz;
92 fM[
kYZ] = bgamma * by * bz;
131 "Attempt to rectify a boost with non-positive gamma");
136 if (
beta.mag2() >= 1 ) {
137 beta /= (
beta.R() * ( 1.0 + 1.0e-16 ) );
173std::ostream & operator<< (std::ostream & os,
const Boost &
b) {
177 b.GetLorentzRotation(
m);
178 os <<
"\n" <<
m[0] <<
" " <<
m[1] <<
" " <<
m[2] <<
" " <<
m[3];
179 os <<
"\n" <<
"\t" <<
" " <<
m[5] <<
" " <<
m[6] <<
" " <<
m[7];
180 os <<
"\n" <<
"\t" <<
" " <<
"\t" <<
" " <<
m[10] <<
" " <<
m[11];
181 os <<
"\n" <<
"\t" <<
" " <<
"\t" <<
" " <<
"\t" <<
" " <<
m[15] <<
"\n";
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Lorentz boost class with the (4D) transformation represented internally by a 4x4 orthosymplectic matr...
void GetLorentzRotation(Scalar r[]) const
Get elements of internal 4x4 symmetric representation, into a data array suitable for direct use as t...
void Invert()
Invert a Boost in place.
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.
LorentzVector< ROOT::Math::PxPyPzE4D< double > > operator()(const LorentzVector< ROOT::Math::PxPyPzE4D< double > > &v) const
Lorentz transformation operation on a Minkowski ('Cartesian') LorentzVector.
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.
XYZVector BetaVector() const
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...
double beta(double x, double y)
Calculates the beta function.
Namespace for new Math classes and functions.
void Throw(const char *)
function throwing exception, by creating internally a GenVector_exception only when needed
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...