Merging the VirtualMC branch to the main development branch (HEAD)
[u/mrichter/AliRoot.git] / HIJING / hipyset1_35 / pyxtot_hijing.F
1 * $Id$
2     
3 C*********************************************************************  
4     
5       SUBROUTINE PYXTOT_HIJING 
6     
7 C...Parametrizes total, double diffractive, single diffractive and  
8 C...elastic cross-sections for different energies and beams.    
9 #include "ludat1_hijing.inc"
10 #include "pypars_hijing.inc"
11 #include "pyint1_hijing.inc"
12 #include "pyint5_hijing.inc"
13       DIMENSION BCS(5,8),BCB(2,5),BCC(3)    
14     
15 C...The following data lines are coefficients needed in the 
16 C...Block, Cahn parametrization of total cross-section and nuclear  
17 C...slope parameter; see below. 
18       DATA ((BCS(I,J),J=1,8),I=1,5)/    
19      1 41.74, 0.66, 0.0000, 337.,  0.0, 0.0, -39.3, 0.48,   
20      2 41.66, 0.60, 0.0000, 306.,  0.0, 0.0, -34.6, 0.51,   
21      3 41.36, 0.63, 0.0000, 299.,  7.3, 0.5, -40.4, 0.47,   
22      4 41.68, 0.63, 0.0083, 330.,  0.0, 0.0, -39.0, 0.48,   
23      5 41.13, 0.59, 0.0074, 278., 10.5, 0.5, -41.2, 0.46/   
24       DATA ((BCB(I,J),J=1,5),I=1,2)/    
25      1 10.79, -0.049, 0.040, 21.5, 1.23,    
26      2  9.92, -0.027, 0.013, 18.9, 1.07/    
27       DATA BCC/2.0164346,-0.5590311,0.0376279/  
28     
29 C...Total cross-section and nuclear slope parameter for pp and p-pbar   
30       NFIT=MIN(5,MAX(1,MSTP(31)))   
31       SIGP=BCS(NFIT,1)+BCS(NFIT,2)*(-0.25*PARU(1)**2*   
32      &(1.-0.25*BCS(NFIT,3)*PARU(1)**2)+(1.+0.5*BCS(NFIT,3)*PARU(1)**2)* 
33      &(LOG(VINT(2)/BCS(NFIT,4)))**2+BCS(NFIT,3)*    
34      &(LOG(VINT(2)/BCS(NFIT,4)))**4)/   
35      &((1.-0.25*BCS(NFIT,3)*PARU(1)**2)**2+2.*BCS(NFIT,3)*  
36      &(1.+0.25*BCS(NFIT,3)*PARU(1)**2)*(LOG(VINT(2)/BCS(NFIT,4)))**2+   
37      &BCS(NFIT,3)**2*(LOG(VINT(2)/BCS(NFIT,4)))**4)+BCS(NFIT,5)*    
38      &VINT(2)**(BCS(NFIT,6)-1.)*SIN(0.5*PARU(1)*BCS(NFIT,6))    
39       SIGM=-BCS(NFIT,7)*VINT(2)**(BCS(NFIT,8)-1.)*  
40      &COS(0.5*PARU(1)*BCS(NFIT,8))  
41       REFP=BCS(NFIT,2)*PARU(1)*LOG(VINT(2)/BCS(NFIT,4))/    
42      &((1.-0.25*BCS(NFIT,3)*PARU(1)**2)**2+2.*BCS(NFIT,3)*  
43      &(1.+0.25*BCS(NFIT,3)*PARU(1)**2)+(LOG(VINT(2)/BCS(NFIT,4)))**2+   
44      &BCS(NFIT,3)**2*(LOG(VINT(2)/BCS(NFIT,4)))**4)-BCS(NFIT,5)*    
45      &VINT(2)**(BCS(NFIT,6)-1.)*COS(0.5*PARU(1)*BCS(NFIT,6))    
46       REFM=-BCS(NFIT,7)*VINT(2)**(BCS(NFIT,8)-1.)*  
47      &SIN(0.5*PARU(1)*BCS(NFIT,8))  
48       SIGMA=SIGP-ISIGN(1,MINT(11)*MINT(12))*SIGM    
49       RHO=(REFP-ISIGN(1,MINT(11)*MINT(12))*REFM)/SIGMA  
50     
51 C...Nuclear slope parameter B, curvature C: 
52       NFIT=1    
53       IF(MSTP(31).GE.4) NFIT=2  
54       BP=BCB(NFIT,1)+BCB(NFIT,2)*LOG(VINT(2))+  
55      &BCB(NFIT,3)*(LOG(VINT(2)))**2 
56       BM=BCB(NFIT,4)+BCB(NFIT,5)*LOG(VINT(2))   
57       B=BP-ISIGN(1,MINT(11)*MINT(12))*SIGM/SIGP*(BM-BP) 
58       VINT(121)=B   
59       C=-0.5*BCC(2)/BCC(3)*(1.-SQRT(MAX(0.,1.+4.*BCC(3)/BCC(2)**2*  
60      &(1.E-03*VINT(1)-BCC(1)))))    
61       VINT(122)=C   
62     
63 C...Elastic scattering cross-section (fixed by sigma-tot, rho and B).   
64       SIGEL=SIGMA**2*(1.+RHO**2)/(16.*PARU(1)*PARU(5)*B)    
65     
66 C...Single diffractive scattering cross-section from Goulianos: 
67       SIGSD=2.*0.68*(1.+36./VINT(2))*LOG(0.6+0.1*VINT(2))   
68     
69 C...Double diffractive scattering cross-section (essentially fixed by   
70 C...sigma-sd and sigma-el). 
71       SIGDD=SIGSD**2/(3.*SIGEL) 
72     
73 C...Total non-elastic, non-diffractive cross-section.   
74       SIGND=SIGMA-SIGDD-SIGSD-SIGEL 
75     
76 C...Rescale for pions.  
77       IF(IABS(MINT(11)).EQ.211.AND.IABS(MINT(12)).EQ.211) THEN  
78         SIGMA=4./9.*SIGMA   
79         SIGDD=4./9.*SIGDD   
80         SIGSD=4./9.*SIGSD   
81         SIGEL=4./9.*SIGEL   
82         SIGND=4./9.*SIGND   
83       ELSEIF(IABS(MINT(11)).EQ.211.OR.IABS(MINT(12)).EQ.211) THEN   
84         SIGMA=2./3.*SIGMA   
85         SIGDD=2./3.*SIGDD   
86         SIGSD=2./3.*SIGSD   
87         SIGEL=2./3.*SIGEL   
88         SIGND=2./3.*SIGND   
89       ENDIF 
90     
91 C...Save cross-sections in common block PYPARA. 
92       VINT(101)=SIGMA   
93       VINT(102)=SIGEL   
94       VINT(103)=SIGSD   
95       VINT(104)=SIGDD   
96       VINT(106)=SIGND   
97       XSEC(95,1)=SIGND  
98     
99       RETURN    
100       END