Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001     
0002 C*********************************************************************  
0003     
0004       SUBROUTINE PYHIXTOT 
0005     
0006 C...Parametrizes total, double diffractive, single diffractive and  
0007 C...elastic cross-sections for different energies and beams.    
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 C...The following data lines are coefficients needed in the 
0019 C...Block, Cahn parametrization of total cross-section and nuclear  
0020 C...slope parameter; see below. 
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 C...Total cross-section and nuclear slope parameter for pp and p-pbar   
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 C...Nuclear slope parameter B, curvature C: 
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 C...Elastic scattering cross-section (fixed by sigma-tot, rho and B).   
0067       SIGEL=SIGMA**2*(1.+RHO**2)/(16.*PARU(1)*PARU(5)*B)    
0068     
0069 C...Single diffractive scattering cross-section from Goulianos: 
0070       SIGSD=2.*0.68*(1.+36./VINT(2))*LOG(0.6+0.1*VINT(2))   
0071     
0072 C...Double diffractive scattering cross-section (essentially fixed by   
0073 C...sigma-sd and sigma-el). 
0074       SIGDD=SIGSD**2/(3.*SIGEL) 
0075     
0076 C...Total non-elastic, non-diffractive cross-section.   
0077       SIGND=SIGMA-SIGDD-SIGSD-SIGEL 
0078     
0079 C...Rescale for pions.  
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 C...Save cross-sections in common block PYPARA. 
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