Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 C*************************************************************
0002 
0003 
0004         SUBROUTINE ARORIE(S,X1,X3,JL)
0005 C     
0006         COMMON/HIPARNT/HIPR1(100),IHPR2(50),HINT1(100),IHNT2(50)
0007         SAVE  /HIPARNT/
0008         COMMON/LUJETS/N,K(9000,5),P(9000,5),V(9000,5)
0009         SAVE  /LUJETS/
0010         COMMON/RANSEED/NSEED
0011         SAVE  /RANSEED/
0012 C     
0013         W=SQRT(S)
0014         X2=2.-X1-X3
0015         E1=.5*X1*W
0016         E3=.5*X3*W
0017         P1=SQRT(E1**2-P(JL,5)**2)
0018         P3=SQRT(E3**2-P(JL+1,5)**2)
0019         CBET=1.
0020         IF(P1.GT.0..AND.P3.GT.0.) CBET=(P(JL,5)**2
0021      &           +P(JL+1,5)**2+2.*E1*E3-S*(1.-X2))/(2.*P1*P3)
0022         IF(ABS(CBET).GT.1.0) CBET=MAX(-1.,MIN(1.,CBET))
0023         BET=ACOS(CBET)
0024      
0025 C.....MINIMIZE PT1-SQUARED PLUS PT3-SQUARED.....
0026         IF(P1.GE.P3) THEN
0027            PSI=.5*ULANGL(P1**2+P3**2*COS(2.*BET),-P3**2*SIN(2.*BET))
0028            PT1=P1*SIN(PSI)
0029            PZ1=P1*COS(PSI)
0030            PT3=P3*SIN(PSI+BET)
0031            PZ3=P3*COS(PSI+BET)
0032         ELSE IF(P3.GT.P1) THEN
0033            PSI=.5*ULANGL(P3**2+P1**2*COS(2.*BET),-P1**2*SIN(2.*BET))
0034            PT1=P1*SIN(BET+PSI)
0035            PZ1=-P1*COS(BET+PSI)
0036            PT3=P3*SIN(PSI)
0037            PZ3=-P3*COS(PSI)
0038         ENDIF
0039      
0040         DEL=2.0*HIPR1(40)*ATL_RAN(NSEED)
0041         P(JL,4)=E1
0042         P(JL,1)=PT1*SIN(DEL)
0043         P(JL,2)=-PT1*COS(DEL)
0044         P(JL,3)=PZ1
0045         P(JL+2,4)=E3
0046         P(JL+2,1)=PT3*SIN(DEL)
0047         P(JL+2,2)=-PT3*COS(DEL)
0048         P(JL+2,3)=PZ3
0049         P(JL+1,4)=W-E1-E3
0050         P(JL+1,1)=-P(JL,1)-P(JL+2,1)
0051         P(JL+1,2)=-P(JL,2)-P(JL+2,2)
0052         P(JL+1,3)=-P(JL,3)-P(JL+2,3)
0053         RETURN
0054         END