File indexing completed on 2025-08-05 08:15:46
0001
0002
0003
0004 SUBROUTINE PYHIXTOT
0005
0006
0007
0008 COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0009 SAVE /LUDAT1/
0010 COMMON/PYHIPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
0011 SAVE /PYHIPARS/
0012 COMMON/PYHIINT1/MINT(400),VINT(400)
0013 SAVE /PYHIINT1/
0014 COMMON/PYHIINT5/NGEN(0:200,3),XSEC(0:200,3)
0015 SAVE /PYHIINT5/
0016 DIMENSION BCS(5,8),BCB(2,5),BCC(3)
0017
0018
0019
0020
0021 DATA ((BCS(I,J),J=1,8),I=1,5)/
0022 1 41.74, 0.66, 0.0000, 337., 0.0, 0.0, -39.3, 0.48,
0023 2 41.66, 0.60, 0.0000, 306., 0.0, 0.0, -34.6, 0.51,
0024 3 41.36, 0.63, 0.0000, 299., 7.3, 0.5, -40.4, 0.47,
0025 4 41.68, 0.63, 0.0083, 330., 0.0, 0.0, -39.0, 0.48,
0026 5 41.13, 0.59, 0.0074, 278., 10.5, 0.5, -41.2, 0.46/
0027 DATA ((BCB(I,J),J=1,5),I=1,2)/
0028 1 10.79, -0.049, 0.040, 21.5, 1.23,
0029 2 9.92, -0.027, 0.013, 18.9, 1.07/
0030 DATA BCC/2.0164346,-0.5590311,0.0376279/
0031
0032
0033 NFIT=MIN(5,MAX(1,MSTP(31)))
0034 SIGP=BCS(NFIT,1)+BCS(NFIT,2)*(-0.25*PARU(1)**2*
0035 &(1.-0.25*BCS(NFIT,3)*PARU(1)**2)+(1.+0.5*BCS(NFIT,3)*PARU(1)**2)*
0036 &(LOG(VINT(2)/BCS(NFIT,4)))**2+BCS(NFIT,3)*
0037 &(LOG(VINT(2)/BCS(NFIT,4)))**4)/
0038 &((1.-0.25*BCS(NFIT,3)*PARU(1)**2)**2+2.*BCS(NFIT,3)*
0039 &(1.+0.25*BCS(NFIT,3)*PARU(1)**2)*(LOG(VINT(2)/BCS(NFIT,4)))**2+
0040 &BCS(NFIT,3)**2*(LOG(VINT(2)/BCS(NFIT,4)))**4)+BCS(NFIT,5)*
0041 &VINT(2)**(BCS(NFIT,6)-1.)*SIN(0.5*PARU(1)*BCS(NFIT,6))
0042 SIGM=-BCS(NFIT,7)*VINT(2)**(BCS(NFIT,8)-1.)*
0043 &COS(0.5*PARU(1)*BCS(NFIT,8))
0044 REFP=BCS(NFIT,2)*PARU(1)*LOG(VINT(2)/BCS(NFIT,4))/
0045 &((1.-0.25*BCS(NFIT,3)*PARU(1)**2)**2+2.*BCS(NFIT,3)*
0046 &(1.+0.25*BCS(NFIT,3)*PARU(1)**2)+(LOG(VINT(2)/BCS(NFIT,4)))**2+
0047 &BCS(NFIT,3)**2*(LOG(VINT(2)/BCS(NFIT,4)))**4)-BCS(NFIT,5)*
0048 &VINT(2)**(BCS(NFIT,6)-1.)*COS(0.5*PARU(1)*BCS(NFIT,6))
0049 REFM=-BCS(NFIT,7)*VINT(2)**(BCS(NFIT,8)-1.)*
0050 &SIN(0.5*PARU(1)*BCS(NFIT,8))
0051 SIGMA=SIGP-ISIGN(1,MINT(11)*MINT(12))*SIGM
0052 RHO=(REFP-ISIGN(1,MINT(11)*MINT(12))*REFM)/SIGMA
0053
0054
0055 NFIT=1
0056 IF(MSTP(31).GE.4) NFIT=2
0057 BP=BCB(NFIT,1)+BCB(NFIT,2)*LOG(VINT(2))+
0058 &BCB(NFIT,3)*(LOG(VINT(2)))**2
0059 BM=BCB(NFIT,4)+BCB(NFIT,5)*LOG(VINT(2))
0060 B=BP-ISIGN(1,MINT(11)*MINT(12))*SIGM/SIGP*(BM-BP)
0061 VINT(121)=B
0062 C=-0.5*BCC(2)/BCC(3)*(1.-SQRT(MAX(0.,1.+4.*BCC(3)/BCC(2)**2*
0063 &(1.E-03*VINT(1)-BCC(1)))))
0064 VINT(122)=C
0065
0066
0067 SIGEL=SIGMA**2*(1.+RHO**2)/(16.*PARU(1)*PARU(5)*B)
0068
0069
0070 SIGSD=2.*0.68*(1.+36./VINT(2))*LOG(0.6+0.1*VINT(2))
0071
0072
0073
0074 SIGDD=SIGSD**2/(3.*SIGEL)
0075
0076
0077 SIGND=SIGMA-SIGDD-SIGSD-SIGEL
0078
0079
0080 IF(IABS(MINT(11)).EQ.211.AND.IABS(MINT(12)).EQ.211) THEN
0081 SIGMA=4./9.*SIGMA
0082 SIGDD=4./9.*SIGDD
0083 SIGSD=4./9.*SIGSD
0084 SIGEL=4./9.*SIGEL
0085 SIGND=4./9.*SIGND
0086 ELSEIF(IABS(MINT(11)).EQ.211.OR.IABS(MINT(12)).EQ.211) THEN
0087 SIGMA=2./3.*SIGMA
0088 SIGDD=2./3.*SIGDD
0089 SIGSD=2./3.*SIGSD
0090 SIGEL=2./3.*SIGEL
0091 SIGND=2./3.*SIGND
0092 ENDIF
0093
0094
0095 VINT(101)=SIGMA
0096 VINT(102)=SIGEL
0097 VINT(103)=SIGSD
0098 VINT(104)=SIGDD
0099 VINT(106)=SIGND
0100 XSEC(95,1)=SIGND
0101
0102 RETURN
0103 END