File indexing completed on 2025-08-05 08:15:42
0001
0002
0003 SUBROUTINE AR3JET(S,X1,X3,JL)
0004
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
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