Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:15:44

0001     
0002 C*********************************************************************  
0003     
0004       SUBROUTINE LUXTOT(KFL,ECM,XTOT)   
0005     
0006 C...Purpose: to calculate total cross-section, including initial    
0007 C...state radiation effects.    
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 C...Status, (optimized) Q^2 scale, alpha_strong.    
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 C...QCD corrections factor in R.    
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 C...Calculate Z0 width if default value not acceptable. 
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 C...Calculate propagator and related constants for QFD case.    
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 C...Loop over different flavours: charge, velocity. 
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 C...Calculate R and sum of charges for QED or QFD case. 
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 C...Calculate cross-section, including QCD corrections. 
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 C...Virtual cross-section.  
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 C...Soft and hard radiative cross-section in QED case.  
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 C...Soft and hard radiative cross-section in QFD case.  
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 C...Total cross-section and fraction of hard photon events. 
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