7 SUBROUTINE hirobo(THE,PHI,BEX,BEY,BEZ)
10 IMPLICIT DOUBLE PRECISION(d)
11 common/lujets/
n,
k(9000,5),
p(9000,5),
v(9000,5)
13 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
15 dimension rot(3,3),pr(3),vr(3),dp(4),dv(4)
19 IF(mstu(1).GT.0) imin=mstu(1)
21 IF(mstu(2).GT.0) imax=mstu(2)
27 IF(imin.GT.mstu(4).OR.imax.GT.mstu(4))
THEN
28 CALL
luerrm(11,
'(LUROBO:) range outside LUJETS memory')
33 IF(the**2+
phi**2.GT.1
e-20)
THEN
34 rot(1,1)=cos(the)*cos(
phi)
36 rot(1,3)=sin(the)*cos(
phi)
37 rot(2,1)=cos(the)*sin(
phi)
39 rot(2,3)=sin(the)*sin(
phi)
44 IF(
k(
i,1).LE.0) goto 130
48 120
p(
i,
j)=rot(
j,1)*pr(1)+rot(
j,2)*pr(2)+rot(
j,3)*pr(3)
53 IF(dbx**2+dby**2+dbz**2.GT.1
e-20)
THEN
54 db=sqrt(dbx**2+dby**2+dbz**2)
55 IF(db.GT.0.99999999d0)
THEN
57 CALL
luerrm(3,
'(LUROBO:) boost vector too large')
58 dbx=dbx*(0.99999999d0/db)
59 dby=dby*(0.99999999d0/db)
60 dbz=dbz*(0.99999999d0/db)
63 dga=1d0/sqrt(1d0-db**2)
65 IF(
k(
i,1).LE.0) goto 150
68 dbp=dbx*dp(1)+dby*dp(2)+dbz*dp(3)
69 dgabp=dga*(dga*dbp/(1d0+dga)+dp(4))
70 p(
i,1)=dp(1)+dgabp*dbx
71 p(
i,2)=dp(2)+dgabp*dby
72 p(
i,3)=dp(3)+dgabp*dbz
73 p(
i,4)=dga*(dp(4)+dbp)