File indexing completed on 2025-08-05 08:15:44
0001
0002
0003
0004 SUBROUTINE LUXTOT(KFL,ECM,XTOT)
0005
0006
0007
0008 COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0009 SAVE /LUDAT1/
0010 COMMON/LUDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4)
0011 SAVE /LUDAT2/
0012
0013
0014 PARJ(151)=ECM
0015 MSTJ(119)=10*MSTJ(102)+KFL
0016 IF(MSTJ(111).EQ.0) THEN
0017 Q2R=ECM**2
0018 ELSEIF(MSTU(111).EQ.0) THEN
0019 PARJ(168)=MIN(1.,MAX(PARJ(128),EXP(-12.*PARU(1)/
0020 & ((33.-2.*MSTU(112))*PARU(111)))))
0021 Q2R=PARJ(168)*ECM**2
0022 ELSE
0023 PARJ(168)=MIN(1.,MAX(PARJ(128),PARU(112)/ECM,
0024 & (2.*PARU(112)/ECM)**2))
0025 Q2R=PARJ(168)*ECM**2
0026 ENDIF
0027 ALSPI=ULALPS(Q2R)/PARU(1)
0028
0029
0030 IF(MSTJ(101).EQ.0.OR.MSTJ(109).EQ.1) THEN
0031 RQCD=1.
0032 ELSEIF(IABS(MSTJ(101)).EQ.1.AND.MSTJ(109).EQ.0) THEN
0033 RQCD=1.+ALSPI
0034 ELSEIF(MSTJ(109).EQ.0) THEN
0035 RQCD=1.+ALSPI+(1.986-0.115*MSTU(118))*ALSPI**2
0036 IF(MSTJ(111).EQ.1) RQCD=MAX(1.,RQCD+(33.-2.*MSTU(112))/12.*
0037 & LOG(PARJ(168))*ALSPI**2)
0038 ELSEIF(IABS(MSTJ(101)).EQ.1) THEN
0039 RQCD=1.+(3./4.)*ALSPI
0040 ELSE
0041 RQCD=1.+(3./4.)*ALSPI-(3./32.+0.519*MSTU(118))*ALSPI**2
0042 ENDIF
0043
0044
0045 IF(MSTJ(102).GE.3) THEN
0046 RVA=3.*(3.+(4.*PARU(102)-1.)**2)+6.*RQCD*(2.+(1.-8.*PARU(102)/
0047 & 3.)**2+(4.*PARU(102)/3.-1.)**2)
0048 DO 100 KFLC=5,6
0049 VQ=1.
0050 IF(MOD(MSTJ(103),2).EQ.1) VQ=SQRT(MAX(0.,1.-(2.*ULMASS(KFLC)/
0051 & ECM)**2))
0052 IF(KFLC.EQ.5) VF=4.*PARU(102)/3.-1.
0053 IF(KFLC.EQ.6) VF=1.-8.*PARU(102)/3.
0054 100 RVA=RVA+3.*RQCD*(0.5*VQ*(3.-VQ**2)*VF**2+VQ**3)
0055 PARJ(124)=PARU(101)*PARJ(123)*RVA/(48.*PARU(102)*(1.-PARU(102)))
0056 ENDIF
0057
0058
0059 POLL=1.-PARJ(131)*PARJ(132)
0060 IF(MSTJ(102).GE.2) THEN
0061 SFF=1./(16.*PARU(102)*(1.-PARU(102)))
0062 SFW=ECM**4/((ECM**2-PARJ(123)**2)**2+(PARJ(123)*PARJ(124))**2)
0063 SFI=SFW*(1.-(PARJ(123)/ECM)**2)
0064 VE=4.*PARU(102)-1.
0065 SF1I=SFF*(VE*POLL+PARJ(132)-PARJ(131))
0066 SF1W=SFF**2*((VE**2+1.)*POLL+2.*VE*(PARJ(132)-PARJ(131)))
0067 HF1I=SFI*SF1I
0068 HF1W=SFW*SF1W
0069 ENDIF
0070
0071
0072 RTOT=0.
0073 RQQ=0.
0074 RQV=0.
0075 RVA=0.
0076 DO 110 KFLC=1,MAX(MSTJ(104),KFL)
0077 IF(KFL.GT.0.AND.KFLC.NE.KFL) GOTO 110
0078 MSTJ(93)=1
0079 PMQ=ULMASS(KFLC)
0080 IF(ECM.LT.2.*PMQ+PARJ(127)) GOTO 110
0081 QF=KCHG(KFLC,1)/3.
0082 VQ=1.
0083 IF(MOD(MSTJ(103),2).EQ.1) VQ=SQRT(1.-(2.*PMQ/ECM)**2)
0084
0085
0086 RQQ=RQQ+3.*QF**2*POLL
0087 IF(MSTJ(102).LE.1) THEN
0088 RTOT=RTOT+3.*0.5*VQ*(3.-VQ**2)*QF**2*POLL
0089 ELSE
0090 VF=SIGN(1.,QF)-4.*QF*PARU(102)
0091 RQV=RQV-6.*QF*VF*SF1I
0092 RVA=RVA+3.*(VF**2+1.)*SF1W
0093 RTOT=RTOT+3.*(0.5*VQ*(3.-VQ**2)*(QF**2*POLL-2.*QF*VF*HF1I+
0094 & VF**2*HF1W)+VQ**3*HF1W)
0095 ENDIF
0096 110 CONTINUE
0097 RSUM=RQQ
0098 IF(MSTJ(102).GE.2) RSUM=RQQ+SFI*RQV+SFW*RVA
0099
0100
0101 PARJ(141)=RQQ
0102 PARJ(142)=RTOT
0103 PARJ(143)=RTOT*RQCD
0104 PARJ(144)=PARJ(143)
0105 PARJ(145)=PARJ(141)*86.8/ECM**2
0106 PARJ(146)=PARJ(142)*86.8/ECM**2
0107 PARJ(147)=PARJ(143)*86.8/ECM**2
0108 PARJ(148)=PARJ(147)
0109 PARJ(157)=RSUM*RQCD
0110 PARJ(158)=0.
0111 PARJ(159)=0.
0112 XTOT=PARJ(147)
0113 IF(MSTJ(107).LE.0) RETURN
0114
0115
0116 XKL=PARJ(135)
0117 XKU=MIN(PARJ(136),1.-(2.*PARJ(127)/ECM)**2)
0118 ALE=2.*LOG(ECM/ULMASS(11))-1.
0119 SIGV=ALE/3.+2.*LOG(ECM**2/(ULMASS(13)*ULMASS(15)))/3.-4./3.+
0120 &1.526*LOG(ECM**2/0.932)
0121
0122
0123 IF(MSTJ(102).LE.1) THEN
0124 SIGV=1.5*ALE-0.5+PARU(1)**2/3.+2.*SIGV
0125 SIGS=ALE*(2.*LOG(XKL)-LOG(1.-XKL)-XKL)
0126 SIGH=ALE*(2.*LOG(XKU/XKL)-LOG((1.-XKU)/(1.-XKL))-(XKU-XKL))
0127
0128
0129 ELSE
0130 SZM=1.-(PARJ(123)/ECM)**2
0131 SZW=PARJ(123)*PARJ(124)/ECM**2
0132 PARJ(161)=-RQQ/RSUM
0133 PARJ(162)=-(RQQ+RQV+RVA)/RSUM
0134 PARJ(163)=(RQV*(1.-0.5*SZM-SFI)+RVA*(1.5-SZM-SFW))/RSUM
0135 PARJ(164)=(RQV*SZW**2*(1.-2.*SFW)+RVA*(2.*SFI+SZW**2-4.+3.*SZM-
0136 & SZM**2))/(SZW*RSUM)
0137 SIGV=1.5*ALE-0.5+PARU(1)**2/3.+((2.*RQQ+SFI*RQV)/RSUM)*SIGV+
0138 & (SZW*SFW*RQV/RSUM)*PARU(1)*20./9.
0139 SIGS=ALE*(2.*LOG(XKL)+PARJ(161)*LOG(1.-XKL)+PARJ(162)*XKL+
0140 & PARJ(163)*LOG(((XKL-SZM)**2+SZW**2)/(SZM**2+SZW**2))+
0141 & PARJ(164)*(ATAN((XKL-SZM)/SZW)-ATAN(-SZM/SZW)))
0142 SIGH=ALE*(2.*LOG(XKU/XKL)+PARJ(161)*LOG((1.-XKU)/(1.-XKL))+
0143 & PARJ(162)*(XKU-XKL)+PARJ(163)*LOG(((XKU-SZM)**2+SZW**2)/
0144 & ((XKL-SZM)**2+SZW**2))+PARJ(164)*(ATAN((XKU-SZM)/SZW)-
0145 & ATAN((XKL-SZM)/SZW)))
0146 ENDIF
0147
0148
0149 PARJ(160)=SIGH/(PARU(1)/PARU(101)+SIGV+SIGS+SIGH)
0150 PARJ(157)=RSUM*(1.+(PARU(101)/PARU(1))*(SIGV+SIGS+SIGH))*RQCD
0151 PARJ(144)=PARJ(157)
0152 PARJ(148)=PARJ(144)*86.8/ECM**2
0153 XTOT=PARJ(148)
0154
0155 RETURN
0156 END