File indexing completed on 2025-08-05 08:21:13
0001
0002
0003
0004
0005
0006
0007 FUNCTION PYP(I,J)
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 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0016 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
0017 SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
0018
0019 DIMENSION PSUM(4)
0020
0021
0022
0023 PYP=0D0
0024 IF(I.LT.0.OR.I.GT.MSTU(4).OR.J.LE.0) THEN
0025 ELSEIF(I.EQ.0.AND.J.LE.4) THEN
0026 DO 100 I1=1,N
0027 IF(K(I1,1).GT.0.AND.K(I1,1).LE.10) PYP=PYP+P(I1,J)
0028 100 CONTINUE
0029 ELSEIF(I.EQ.0.AND.J.EQ.5) THEN
0030 DO 120 J1=1,4
0031 PSUM(J1)=0D0
0032 DO 110 I1=1,N
0033 IF(K(I1,1).GT.0.AND.K(I1,1).LE.10) PSUM(J1)=PSUM(J1)+
0034 & P(I1,J1)
0035 110 CONTINUE
0036 120 CONTINUE
0037 PYP=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-PSUM(3)**2))
0038 ELSEIF(I.EQ.0.AND.J.EQ.6) THEN
0039 DO 130 I1=1,N
0040 IF(K(I1,1).GT.0.AND.K(I1,1).LE.10) PYP=PYP+PYCHGE(K(I1,2))/3D0
0041 130 CONTINUE
0042 ELSEIF(I.EQ.0) THEN
0043
0044
0045 ELSEIF(J.LE.5) THEN
0046 PYP=P(I,J)
0047
0048
0049 ELSEIF(J.LE.12) THEN
0050 IF(J.EQ.6) PYP=PYCHGE(K(I,2))/3D0
0051 IF(J.EQ.7.OR.J.EQ.8) PYP=P(I,1)**2+P(I,2)**2+P(I,3)**2
0052 IF(J.EQ.9.OR.J.EQ.10) PYP=P(I,1)**2+P(I,2)**2
0053 IF(J.EQ.11.OR.J.EQ.12) PYP=P(I,5)**2+P(I,1)**2+P(I,2)**2
0054 IF(J.EQ.8.OR.J.EQ.10.OR.J.EQ.12) PYP=SQRT(PYP)
0055
0056
0057 ELSEIF(J.LE.16) THEN
0058 IF(J.LE.14) PYP=PYANGL(P(I,3),SQRT(P(I,1)**2+P(I,2)**2))
0059 IF(J.GE.15) PYP=PYANGL(P(I,1),P(I,2))
0060 IF(J.EQ.14.OR.J.EQ.16) PYP=PYP*180D0/PARU(1)
0061
0062
0063 ELSEIF(J.LE.19) THEN
0064 PMR=0D0
0065 IF(J.EQ.17) PMR=P(I,5)
0066 IF(J.EQ.18) PMR=PYMASS(211)
0067 PR=MAX(1D-20,PMR**2+P(I,1)**2+P(I,2)**2)
0068 PYP=SIGN(LOG(MIN((SQRT(PR+P(I,3)**2)+ABS(P(I,3)))/SQRT(PR),
0069 & 1D20)),P(I,3))
0070
0071
0072 ELSEIF(J.LE.25) THEN
0073 IF(J.EQ.20) PYP=2D0*SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2)/PARU(21)
0074 IF(J.EQ.21) PYP=2D0*P(I,3)/PARU(21)
0075 IF(J.EQ.22) PYP=2D0*SQRT(P(I,1)**2+P(I,2)**2)/PARU(21)
0076 IF(J.EQ.23) PYP=2D0*P(I,4)/PARU(21)
0077 IF(J.EQ.24) PYP=(P(I,4)+P(I,3))/PARU(21)
0078 IF(J.EQ.25) PYP=(P(I,4)-P(I,3))/PARU(21)
0079 ENDIF
0080
0081 RETURN
0082 END