31 BoostX::BoostX() : fBeta(0.0), fGamma(1.0) {}
33 void BoostX::SetComponents (Scalar bx ) {
38 "Beta Vector supplied to set BoostX represents speed >= c");
42 fGamma = 1.0 / std::sqrt(1.0 - bp2);
45 void BoostX::GetComponents (Scalar& bx)
const {
50 DisplacementVector3D< Cartesian3D<BoostX::Scalar> >
51 BoostX::BetaVector()
const {
53 return DisplacementVector3D< Cartesian3D<Scalar> > ( fBeta, 0.0, 0.0 );
56 void BoostX::GetLorentzRotation (Scalar r[])
const {
58 r[kLXX] = fGamma; r[kLXY] = 0.0; r[kLXZ] = 0.0; r[kLXT] = fGamma*fBeta;
59 r[kLYX] = 0.0; r[kLYY] = 1.0; r[kLYZ] = 0.0; r[kLYT] = 0.0;
60 r[kLZX] = 0.0; r[kLZY] = 0.0; r[kLZZ] = 1.0; r[kLZT] = 0.0;
61 r[kLTX] = fGamma*fBeta; r[kLTY] = 0.0; r[kLTZ] = 0.0; r[kLTT] = fGamma;
64 void BoostX::Rectify() {
72 "Attempt to rectify a boost with non-positive gamma");
77 beta /= ( beta * ( 1.0 + 1.0e-16 ) );
79 SetComponents ( beta );
82 LorentzVector< PxPyPzE4D<double> >
83 BoostX::operator() (
const LorentzVector< PxPyPzE4D<double> > & v)
const {
87 return LorentzVector< PxPyPzE4D<double> >
88 ( fGamma*x + fGamma*fBeta*t
91 , fGamma*fBeta*x + fGamma*t );
94 void BoostX::Invert() {
99 BoostX BoostX::Inverse()
const {
108 std::ostream & operator<< (std::ostream & os,
const BoostX & b) {
109 os <<
" BoostX( beta: " << b.Beta() <<
", gamma: " << b.Gamma() <<
" ) ";