File indexing completed on 2025-08-05 08:21:15
0001
0002
0003
0004
0005
0006
0007 SUBROUTINE PYRVGW(KFIN,ID1,ID2,ID3,XLAM)
0008
0009 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
0010 IMPLICIT INTEGER (I-N)
0011 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KTECHN=3000000,
0012 &KEXCIT=4000000,KDIMEN=5000000)
0013 PARAMETER (EPS=1D-4)
0014 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
0015 COMMON/PYRVNV/AB(2,16,2),RMS(0:3),RES(6,2),INTRES(6,3),IDR,IDR2
0016 & ,DCMASS,KFR(3)
0017 COMMON/PYSSMT/ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
0018 & SFMIX(16,4),ZMIXI(4,4),UMIXI(2,2),VMIXI(2,2)
0019 DOUBLE PRECISION XLIM(3,3)
0020 INTEGER KC(0:3), PYCOMP
0021 LOGICAL DCMASS, DCHECK(6)
0022 SAVE /PYDAT2/,/PYRVNV/,/PYSSMT/
0023
0024 XLAM = 0D0
0025
0026 KC(0) = PYCOMP(KFIN)
0027 KC(1) = PYCOMP(ID1)
0028 KC(2) = PYCOMP(ID2)
0029 KC(3) = PYCOMP(ID3)
0030 RMS(0) = PMAS(KC(0),1)
0031 RMS(1) = PYMRUN(ID1,PMAS(KC(1),1)**2)
0032 RMS(2) = PYMRUN(ID2,PMAS(KC(2),1)**2)
0033 RMS(3) = PYMRUN(ID3,PMAS(KC(3),1)**2)
0034
0035 XLIM(1,1)=(RMS(1)+RMS(2))**2
0036 XLIM(1,2)=(RMS(0)-RMS(3))**2
0037 XLIM(1,3)=XLIM(1,2)-XLIM(1,1)
0038 XLIM(2,1)=(RMS(2)+RMS(3))**2
0039 XLIM(2,2)=(RMS(0)-RMS(1))**2
0040 XLIM(2,3)=XLIM(2,2)-XLIM(2,1)
0041 XLIM(3,1)=(RMS(1)+RMS(3))**2
0042 XLIM(3,2)=(RMS(0)-RMS(2))**2
0043 XLIM(3,3)=XLIM(3,2)-XLIM(3,1)
0044
0045 IF (XLIM(1,3).LT.0D0.OR.XLIM(2,3).LT.0D0.OR.XLIM(3,3).LT.0D0) THEN
0046 RETURN
0047 ENDIF
0048
0049
0050 DO 110 JRES = 1,3
0051 DO 100 IMASS = 1,2
0052 IRES = 2*(JRES-1)+IMASS
0053 INTRES(IRES,1) = 0
0054 DCHECK(IRES) =.FALSE.
0055
0056 IF (((IMASS.EQ.2).AND.((IABS(KFR(JRES)).EQ.12).OR
0057 & .(IABS(KFR(JRES)).EQ.14).OR.(IABS(KFR(JRES)).EQ.16))).OR
0058 & .KFR(JRES).EQ.0) GOTO 100
0059 RES(IRES,1) = PMAS(PYCOMP(IMASS*KSUSY1+IABS(KFR(JRES))),1)
0060 RES(IRES,2) = PMAS(PYCOMP(IMASS*KSUSY1+IABS(KFR(JRES))),2)
0061 INTRES(IRES,1) = IABS(KFR(JRES))
0062 INTRES(IRES,2) = IMASS
0063 IF (KFR(JRES).LT.0) INTRES(IRES,3) = 1
0064 IF (KFR(JRES).GT.0) INTRES(IRES,3) = 0
0065 100 CONTINUE
0066 110 CONTINUE
0067
0068
0069
0070
0071
0072
0073
0074 DO 120 J=1,2
0075 IDR=J
0076 TMIX = SFMIX(INTRES(IDR,1),2*J+INTRES(IDR,3)-1)**2
0077 IF ((RMS(0).LT.(RMS(1)+RES(IDR,1)).OR.(RES(IDR,1).LT.(RMS(2)
0078 & +RMS(3)))).AND.TMIX.GT.EPS.AND.INTRES(IDR,1).NE.0) THEN
0079 DCHECK(IDR) =.TRUE.
0080 XLAM = XLAM + TMIX * PYRVI1(2,3,1)
0081 ENDIF
0082
0083 IDR=J+2
0084 TMIX = SFMIX(INTRES(IDR,1),2*J+INTRES(IDR,3)-1)**2
0085 IF ((RMS(0).LT.(RMS(2)+RES(IDR,1)).OR.(RES(IDR,1).LT.(RMS(1)
0086 & +RMS(3)))).AND.TMIX.GT.EPS.AND.INTRES(IDR,1).NE.0) THEN
0087 DCHECK(IDR) =.TRUE.
0088 XLAM = XLAM + TMIX * PYRVI1(1,3,2)
0089 ENDIF
0090
0091 IDR=J+4
0092 TMIX = SFMIX(INTRES(IDR,1),2*J+INTRES(IDR,3)-1)**2
0093 IF ((RMS(0).LT.(RMS(3)+RES(IDR,1)).OR.(RES(IDR,1).LT.(RMS(1)
0094 & +RMS(2)))).AND.TMIX.GT.EPS.AND.INTRES(IDR,1).NE.0) THEN
0095 DCHECK(IDR) =.TRUE.
0096 XLAM = XLAM + TMIX * PYRVI1(1,2,3)
0097 ENDIF
0098 120 CONTINUE
0099
0100
0101
0102 IDR=1
0103 IF (DCHECK(1).AND.DCHECK(2)) THEN
0104
0105 XLAM = XLAM + 2D0 * PYRVI2(2,3,1)
0106 & * SFMIX(INTRES(1,1),2+INTRES(1,3)-1)
0107 & * SFMIX(INTRES(2,1),4+INTRES(2,3)-1)
0108 ENDIF
0109
0110 IDR=3
0111 IF (DCHECK(3).AND.DCHECK(4)) THEN
0112 XLAM = XLAM + 2D0 * PYRVI2(1,3,2)
0113 & * SFMIX(INTRES(3,1),2+INTRES(3,3)-1)
0114 & * SFMIX(INTRES(4,1),4+INTRES(4,3)-1)
0115 ENDIF
0116
0117 IDR=5
0118 IF (DCHECK(5).AND.DCHECK(6)) THEN
0119 XLAM = XLAM + 2D0 * PYRVI2(1,2,3)
0120 & * SFMIX(INTRES(5,1),2+INTRES(5,3)-1)
0121 & * SFMIX(INTRES(6,1),4+INTRES(6,3)-1)
0122 ENDIF
0123
0124
0125
0126 PREF=-2D0
0127 IF ((KFIN-KSUSY1).EQ.24.OR.(KFIN-KSUSY1).EQ.37) PREF=2D0
0128 DO 140 IKR1 = 1,2
0129 DO 130 IKR2 = 1,2
0130 IDR = IKR1+2
0131 IDR2 = IKR2
0132 IF (DCHECK(IDR).AND.DCHECK(IDR2)) THEN
0133 XLAM = XLAM + PREF*PYRVI3(1,3,2) *
0134 & SFMIX(INTRES(IDR,1),2*IKR1+INTRES(IDR,3)-1)
0135 & *SFMIX(INTRES(IDR2,1),2*IKR2+INTRES(IDR2,3)-1)
0136 ENDIF
0137
0138 IDR = IKR1+4
0139 IDR2 = IKR2
0140 IF (DCHECK(IDR).AND.DCHECK(IDR2)) THEN
0141 XLAM = XLAM + PREF*PYRVI3(1,2,3) *
0142 & SFMIX(INTRES(IDR,1),2*IKR1+INTRES(IDR,3)-1)
0143 & *SFMIX(INTRES(IDR2,1),2*IKR2+INTRES(IDR2,3)-1)
0144 ENDIF
0145
0146 IDR = IKR1+4
0147 IDR2 = IKR2+2
0148 IF (DCHECK(IDR).AND.DCHECK(IDR2)) THEN
0149 XLAM = XLAM + PREF*PYRVI3(2,1,3) *
0150 & SFMIX(INTRES(IDR,1),2*IKR1+INTRES(IDR,3)-1)
0151 & *SFMIX(INTRES(IDR2,1),2*IKR2+INTRES(IDR2,3)-1)
0152 ENDIF
0153 130 CONTINUE
0154 140 CONTINUE
0155
0156 RETURN
0157 END