Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 
0002 
0003         SUBROUTINE AR3JET(S,X1,X3,JL)
0004 C     
0005         COMMON/HIPARNT/HIPR1(100),IHPR2(50),HINT1(100),IHNT2(50)
0006         SAVE  /HIPARNT/
0007         COMMON/LUJETS/N,K(9000,5),P(9000,5),V(9000,5)
0008         SAVE  /LUJETS/
0009         COMMON/RANSEED/NSEED
0010         SAVE  /RANSEED/
0011 C     
0012         C=1./3.
0013         IF(K(JL,2).NE.21 .AND. K(JL+1,2).NE.21) C=8./27.
0014         EXP1=3
0015         EXP3=3
0016         IF(K(JL,2).NE.21) EXP1=2
0017         IF(K(JL+1,2).NE.21) EXP3=2
0018         A=0.24**2/S
0019         YMA=ALOG(.5/SQRT(A)+SQRT(.25/A-1))
0020         D=4.*C*YMA
0021         SM1=P(JL,5)**2/S
0022         SM3=P(JL+1,5)**2/S
0023         XT2M=(1.-2.*SQRT(SM1)+SM1-SM3)*(1.-2.*SQRT(SM3)-SM1+SM3)
0024         XT2M=MIN(.25,XT2M)
0025         NTRY=0
0026 1       IF(NTRY.EQ.5000) THEN
0027                 X1=.5*(2.*SQRT(SM1)+1.+SM1-SM3)
0028                 X3=.5*(2.*SQRT(SM3)+1.-SM1+SM3)
0029                 RETURN
0030         ENDIF
0031         NTRY=NTRY+1
0032      
0033         XT2=A*(XT2M/A)**(ATL_RAN(NSEED)**(1./D))
0034      
0035         YMAX=ALOG(.5/SQRT(XT2)+SQRT(.25/XT2-1.))
0036         Y=(2.*ATL_RAN(NSEED)-1.)*YMAX
0037         X1=1.-SQRT(XT2)*EXP(Y)
0038         X3=1.-SQRT(XT2)*EXP(-Y)
0039         X2=2.-X1-X3
0040         NEG=0
0041         IF(K(JL,2).NE.21 .OR. K(JL+1,2).NE.21) THEN
0042         IF((1.-X1)*(1.-X2)*(1.-X3)-X2*SM1*(1.-X1)-X2*SM3*(1.-X3).
0043      &  LE.0..OR.X1.LE.2.*SQRT(SM1)-SM1+SM3.OR.X3.LE.2.*SQRT(SM3)
0044      &  -SM3+SM1) NEG=1
0045         X1=X1+SM1-SM3
0046         X3=X3-SM1+SM3
0047         ENDIF
0048         IF(NEG.EQ.1) GOTO 1
0049      
0050         FG=2.*YMAX*C*(X1**EXP1+X3**EXP3)/D
0051         XT2M=XT2
0052         IF(FG.LT.ATL_RAN(NSEED)) GOTO 1
0053      
0054         RETURN
0055         END