File indexing completed on 2025-08-05 08:21:08
0001
0002
0003
0004
0005
0006
0007 FUNCTION PY4JTW(IA1,IA2,IA3,IA4)
0008
0009
0010 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0011 IMPLICIT INTEGER(I-N)
0012 INTEGER PYK,PYCHGE,PYCOMP
0013
0014 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
0015 SAVE /PYJETS/
0016
0017
0018
0019 IF(IA1.NE.0) THEN
0020 DO 100 J=1,4
0021 P(N+1,J)=P(IA1,J)+P(IA2,J)
0022 P(N+2,J)=P(IA3,J)+P(IA4,J)
0023 100 CONTINUE
0024 P(N+1,5)=SQRT(MAX(0D0,P(N+1,4)**2-P(N+1,1)**2-P(N+1,2)**2-
0025 & P(N+1,3)**2))
0026 P(N+2,5)=SQRT(MAX(0D0,P(N+2,4)**2-P(N+2,1)**2-P(N+2,2)**2-
0027 & P(N+2,3)**2))
0028 Z1=P(IA1,4)/P(N+1,4)
0029 WT1=(4D0/3D0)*((1D0+Z1**2)/(1D0-Z1))/(P(N+1,5)**2-P(IA1,5)**2)
0030 Z2=P(IA3,4)/P(N+2,4)
0031 WT2=(4D0/3D0)*((1D0+Z2**2)/(1D0-Z2))/(P(N+2,5)**2-P(IA3,5)**2)
0032
0033
0034
0035 ELSE
0036 DO 110 J=1,4
0037 P(N+2,J)=P(IA3,J)+P(IA4,J)
0038 P(N+1,J)=P(N+2,J)+P(IA2,J)
0039 110 CONTINUE
0040 P(N+1,5)=SQRT(MAX(0D0,P(N+1,4)**2-P(N+1,1)**2-P(N+1,2)**2-
0041 & P(N+1,3)**2))
0042 P(N+2,5)=SQRT(MAX(0D0,P(N+2,4)**2-P(N+2,1)**2-P(N+2,2)**2-
0043 & P(N+2,3)**2))
0044 IF(K(IA2,2).EQ.21) THEN
0045 Z1=P(N+2,4)/P(N+1,4)
0046 WT1=(4D0/3D0)*((1D0+Z1**2)/(1D0-Z1))/(P(N+1,5)**2-
0047 & P(IA3,5)**2)
0048 ELSE
0049 Z1=P(IA2,4)/P(N+1,4)
0050 WT1=(4D0/3D0)*((1D0+Z1**2)/(1D0-Z1))/(P(N+1,5)**2-
0051 & P(IA2,5)**2)
0052 ENDIF
0053 Z2=P(IA3,4)/P(N+2,4)
0054 IF(K(IA2,2).EQ.21) THEN
0055 WT2=(4D0/3D0)*((1D0+Z2**2)/(1D0-Z2))/(P(N+2,5)**2-
0056 & P(IA3,5)**2)
0057 ELSEIF(K(IA3,2).EQ.21) THEN
0058 WT2=3D0*((1D0-Z2*(1D0-Z2))**2/(Z2*(1D0-Z2)))/P(N+2,5)**2
0059 ELSE
0060 WT2=0.5D0*(Z2**2+(1D0-Z2)**2)
0061 ENDIF
0062 ENDIF
0063
0064
0065 PY4JTW=WT1*WT2
0066
0067 RETURN
0068 END