Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:21:08

0001  
0002 C*********************************************************************
0003  
0004 C...PY4JTW
0005 C...Auxiliary to PY4JET, to evaluate weight of configuration.
0006  
0007       FUNCTION PY4JTW(IA1,IA2,IA3,IA4)
0008  
0009 C...Double precision and integer declarations.
0010       IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0011       IMPLICIT INTEGER(I-N)
0012       INTEGER PYK,PYCHGE,PYCOMP
0013 C...Commonblocks.
0014       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
0015       SAVE /PYJETS/
0016  
0017 C...First case: when both original partons radiate.
0018 C...IA1 /= 0: N+1 -> IA1 + IA2, N+2 -> IA3 + IA4.
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 C...Second case: when one original parton radiates to three.
0034 C...IA1  = 0: N+1 -> IA2 + N+2, N+2 -> IA3 + IA4.
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 C...Total weight.
0065       PY4JTW=WT1*WT2
0066  
0067       RETURN
0068       END