Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:15:42

0001 
0002 
0003 C
0004 C*******************************************************************
0005 C       make  boost and rotation to entries from IMIN to IMAX
0006 C*******************************************************************
0007         SUBROUTINE ATROBO(THE,PHI,BEX,BEY,BEZ,IMIN,IMAX,IERROR)
0008         COMMON/LUJETS/N,K(9000,5),P(9000,5),V(9000,5)
0009         SAVE  /LUJETS/
0010         DIMENSION ROT(3,3),PV(3)
0011         DOUBLE PRECISION DP(4),DBEX,DBEY,DBEZ,DGA,DGA2,DBEP,DGABEP
0012         IERROR=0
0013      
0014         IF(IMIN.LE.0 .OR. IMAX.GT.N .OR. IMIN.GT.IMAX) RETURN
0015 
0016         IF(THE**2+PHI**2.GT.1E-20) THEN
0017 C...ROTATE (TYPICALLY FROM Z AXIS TO DIRECTION THETA,PHI)
0018            ROT(1,1)=COS(THE)*COS(PHI)
0019            ROT(1,2)=-SIN(PHI)
0020            ROT(1,3)=SIN(THE)*COS(PHI)
0021            ROT(2,1)=COS(THE)*SIN(PHI)
0022            ROT(2,2)=COS(PHI)
0023            ROT(2,3)=SIN(THE)*SIN(PHI)
0024            ROT(3,1)=-SIN(THE)
0025            ROT(3,2)=0.
0026            ROT(3,3)=COS(THE)
0027            DO 120 I=IMIN,IMAX
0028 C**************    IF(MOD(K(I,1)/10000,10).GE.6) GOTO 120
0029               DO 100 J=1,3
0030  100             PV(J)=P(I,J)
0031                  DO 110 J=1,3
0032  110                P(I,J)=ROT(J,1)*PV(1)+ROT(J,2)*PV(2)
0033      &                     +ROT(J,3)*PV(3)
0034  120             CONTINUE
0035         ENDIF
0036      
0037         IF(BEX**2+BEY**2+BEZ**2.GT.1E-20) THEN
0038 C...LORENTZ BOOST (TYPICALLY FROM REST TO MOMENTUM/ENERGY=BETA)
0039                 DBEX=BEX
0040                 DBEY=BEY
0041                 DBEZ=BEZ
0042                 DGA2=1D0-DBEX**2-DBEY**2-DBEZ**2
0043                 IF(DGA2.LE.0D0) THEN
0044                         IERROR=1
0045                         RETURN
0046                 ENDIF
0047                 DGA=1D0/DSQRT(DGA2)
0048                 DO 140 I=IMIN,IMAX
0049 C*************     IF(MOD(K(I,1)/10000,10).GE.6) GOTO 140
0050                    DO 130 J=1,4
0051 130                DP(J)=P(I,J)
0052                    DBEP=DBEX*DP(1)+DBEY*DP(2)+DBEZ*DP(3)
0053                    DGABEP=DGA*(DGA*DBEP/(1D0+DGA)+DP(4))
0054                    P(I,1)=DP(1)+DGABEP*DBEX
0055                    P(I,2)=DP(2)+DGABEP*DBEY
0056                    P(I,3)=DP(3)+DGABEP*DBEZ
0057                    P(I,4)=DGA*(DP(4)+DBEP)
0058 140             CONTINUE
0059         ENDIF
0060      
0061         RETURN
0062         END