13 #pragma implementation
27 (
double bx,
double by,
double bz) {
28 double bp2 = bx*bx + by*by + bz*bz;
34 double gamma = 1.0 / std::sqrt(1.0 - bp2);
35 double bgamma = gamma * gamma / (1.0 + gamma);
36 mxx = 1.0 + bgamma * bx * bx;
37 myy = 1.0 + bgamma * by * by;
38 mzz = 1.0 + bgamma * bz * bz;
39 mxy =
myx = bgamma * bx * by;
40 mxz = mzx = bgamma * bx * bz;
41 myz = mzy = bgamma * by * bz;
42 mxt = mtx = gamma * bx;
43 myt = mty = gamma * by;
44 mzt = mtz = gamma * bz;
52 *
this = matrixMultiplication ( R.
rep4x4() );
59 *
this = matrixMultiplication ( B.
rep4x4() );
69 if (j == 0) {
return xx(); }
70 if (j == 1) {
return xy(); }
71 if (j == 2) {
return xz(); }
72 if (j == 3) {
return xt(); }
74 if (j == 0) {
return yx(); }
75 if (j == 1) {
return yy(); }
76 if (j == 2) {
return yz(); }
77 if (j == 3) {
return yt(); }
79 if (j == 0) {
return zx(); }
80 if (j == 1) {
return zy(); }
81 if (j == 2) {
return zz(); }
82 if (j == 3) {
return zt(); }
84 if (j == 0) {
return tx(); }
85 if (j == 1) {
return ty(); }
86 if (j == 2) {
return tz(); }
87 if (j == 3) {
return tt(); }
89 std::cerr <<
"HepLorentzRotation subscripting: bad indeces "
90 <<
"(" << i <<
"," << j <<
")\n";
100 if (
mtt<m1.
mtt)
return -1;
else if (
mtt>m1.
mtt)
return 1;
101 else if (
mtz<m1.
mtz)
return -1;
else if (
mtz>m1.
mtz)
return 1;
102 else if (
mty<m1.
mty)
return -1;
else if (
mty>m1.
mty)
return 1;
103 else if (
mtx<m1.
mtx)
return -1;
else if (
mtx>m1.
mtx)
return 1;
105 else if (
mzt<m1.
mzt)
return -1;
else if (
mzt>m1.
mzt)
return 1;
106 else if (
mzz<m1.
mzz)
return -1;
else if (
mzz>m1.
mzz)
return 1;
107 else if (
mzy<m1.
mzy)
return -1;
else if (
mzy>m1.
mzy)
return 1;
108 else if (
mzx<m1.
mzx)
return -1;
else if (
mzx>m1.
mzx)
return 1;
110 else if (
myt<m1.
myt)
return -1;
else if (
myt>m1.
myt)
return 1;
111 else if (
myz<m1.
myz)
return -1;
else if (
myz>m1.
myz)
return 1;
112 else if (
myy<m1.
myy)
return -1;
else if (
myy>m1.
myy)
return 1;
113 else if (
myx<m1.
myx)
return -1;
else if (
myx>m1.
myx)
return 1;
115 else if (
mxt<m1.
mxt)
return -1;
else if (
mxt>m1.
mxt)
return 1;
116 else if (
mxz<m1.
mxz)
return -1;
else if (
mxz>m1.
mxz)
return 1;
117 else if (
mxy<m1.
mxy)
return -1;
else if (
mxy>m1.
mxy)
return 1;
118 else if (
mxx<m1.
mxx)
return -1;
else if (
mxx>m1.
mxx)
return 1;
151 double c1 = std::cos (delta);
152 double s1 = std::sin (delta);
163 double c1 = std::cos (delta);
164 double s1 = std::sin (delta);
175 double c1 = std::cos (delta);
176 double s1 = std::sin (delta);
187 double b2 = beta*beta;
193 double g1 = 1.0/std::sqrt(1.0-b2);
205 double b2 = beta*beta;
211 double g1 = 1.0/std::sqrt(1.0-b2);
223 double b2 = beta*beta;
229 double g1 = 1.0/std::sqrt(1.0-b2);
242 std::setw(11) << std::setprecision(6) <<
xx() <<
" " <<
243 std::setw(11) << std::setprecision(6) <<
xy() <<
" " <<
244 std::setw(11) << std::setprecision(6) <<
xz() <<
" " <<
245 std::setw(11) << std::setprecision(6) <<
xt() <<
")\n"
247 std::setw(11) << std::setprecision(6) <<
yx() <<
" " <<
248 std::setw(11) << std::setprecision(6) <<
yy() <<
" " <<
249 std::setw(11) << std::setprecision(6) <<
yz() <<
" " <<
250 std::setw(11) << std::setprecision(6) <<
yt() <<
")\n"
252 std::setw(11) << std::setprecision(6) <<
zx() <<
" " <<
253 std::setw(11) << std::setprecision(6) <<
zy() <<
" " <<
254 std::setw(11) << std::setprecision(6) <<
zz() <<
" " <<
255 std::setw(11) << std::setprecision(6) <<
zt() <<
")\n"
257 std::setw(11) << std::setprecision(6) <<
tx() <<
" " <<
258 std::setw(11) << std::setprecision(6) <<
ty() <<
" " <<
259 std::setw(11) << std::setprecision(6) <<
tz() <<
" " <<
260 std::setw(11) << std::setprecision(6) <<
tt() <<
") ]\n";
HepLorentzRotation operator*(const HepRotation &r, const HepLorentzRotation <)
double operator()(int, int) const
int compare(const HepLorentzRotation &m) const
HepLorentzRotation matrixMultiplication(const HepRep4x4 &m) const
HepLorentzRotation & rotateY(double delta)
HepLorentzRotation & boostZ(double beta)
HepLorentzRotation & rotateX(double delta)
HepLorentzVector row2() const
std::ostream & print(std::ostream &os) const
HepLorentzVector row4() const
HepLorentzRotation & set(double bx, double by, double bz)
HepLorentzRotation & rotateZ(double delta)
HepLorentzRotation & boostX(double beta)
HepLorentzRotation & boostY(double beta)
HepLorentzVector row3() const
HepLorentzVector row1() const
static DLL_API const HepLorentzRotation IDENTITY