File indexing completed on 2025-08-05 08:21:09
0001
0002
0003
0004
0005
0006
0007
0008
0009 SUBROUTINE PYBESQ(I1,I2,NI,Q2OLD,Q2NEW)
0010
0011
0012 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0013 IMPLICIT INTEGER(I-N)
0014 INTEGER PYK,PYCHGE,PYCOMP
0015
0016 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KTECHN=3000000,
0017 &KEXCIT=4000000,KDIMEN=5000000)
0018
0019 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
0020 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0021 SAVE /PYJETS/,/PYDAT1/
0022
0023 DIMENSION DP(5)
0024 SAVE HC1
0025
0026 IF(MSTJ(55).EQ.0) THEN
0027 DQ2=Q2NEW-Q2OLD
0028 DP2=(P(I1,1)-P(I2,1))**2+(P(I1,2)-P(I2,2))**2+
0029 & (P(I1,3)-P(I2,3))**2
0030 DP12=P(I1,1)**2+P(I1,2)**2+P(I1,3)**2
0031 & -P(I2,1)**2-P(I2,2)**2-P(I2,3)**2
0032 SE=P(I1,4)+P(I2,4)
0033 DE=P(I1,4)-P(I2,4)
0034 DQ2SE=DQ2+SE**2
0035 DA=SE*DE*DP12-DP2*DQ2SE
0036 DB=DP2*DQ2SE-DP12**2
0037 HA=(DA+SQRT(MAX(DA**2+DQ2*(DQ2+SE**2-DE**2)*DB,0D0)))/(2D0*DB)
0038 DO 100 J=1,3
0039 PD=HA*(P(I1,J)-P(I2,J))
0040 P(NI+1,J)=PD
0041 P(NI+2,J)=-PD
0042 100 CONTINUE
0043 RETURN
0044 ENDIF
0045
0046 K(NI+1,1)=1
0047 K(NI+2,1)=1
0048 DO 110 J=1,5
0049 P(NI+1,J)=P(I1,J)
0050 P(NI+2,J)=P(I2,J)
0051 DP(J)=P(I1,J)+P(I2,J)
0052 110 CONTINUE
0053
0054
0055 CALL PYROBO(NI+1,NI+2,0.0D0,0.0D0,
0056 &-DP(1)/DP(4),-DP(2)/DP(4),-DP(3)/DP(4))
0057 PHI=PYANGL(P(NI+1,1),P(NI+1,2))
0058 THE=PYANGL(P(NI+1,3),SQRT(P(NI+1,1)**2+P(NI+1,2)**2))
0059 S=Q2NEW+(P(I1,5)+P(I2,5))**2
0060 PZ=0.5D0*SQRT(Q2NEW*(S-(P(I1,5)-P(I2,5))**2)/S)
0061 P(NI+1,1)=0.0D0
0062 P(NI+1,2)=0.0D0
0063 P(NI+1,3)=PZ
0064 P(NI+1,4)=SQRT(PZ**2+P(I1,5)**2)
0065 P(NI+2,1)=0.0D0
0066 P(NI+2,2)=0.0D0
0067 P(NI+2,3)=-PZ
0068 P(NI+2,4)=SQRT(PZ**2+P(I2,5)**2)
0069 DP(4)=SQRT(DP(1)**2+DP(2)**2+DP(3)**2+S)
0070 CALL PYROBO(NI+1,NI+2,THE,PHI,
0071 &DP(1)/DP(4),DP(2)/DP(4),DP(3)/DP(4))
0072
0073 DO 120 J=1,3
0074 P(NI+1,J)=P(NI+1,J)-P(I1,J)
0075 P(NI+2,J)=P(NI+2,J)-P(I2,J)
0076 120 CONTINUE
0077
0078 RETURN
0079 END