ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pyhixtot.f
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file pyhixtot.f
1 
2 C*********************************************************************
3 
4  SUBROUTINE pyhixtot
5 
6 C...Parametrizes total, double diffractive, single diffractive and
7 C...elastic cross-sections for different energies and beams.
8  common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
9  SAVE /ludat1/
10  common/pyhipars/mstp(200),parp(200),msti(200),pari(200)
11  SAVE /pyhipars/
12  common/pyhiint1/mint(400),vint(400)
13  SAVE /pyhiint1/
14  common/pyhiint5/ngen(0:200,3),xsec(0:200,3)
15  SAVE /pyhiint5/
16  dimension bcs(5,8),bcb(2,5),bcc(3)
17 
18 C...The following data lines are coefficients needed in the
19 C...Block, Cahn parametrization of total cross-section and nuclear
20 C...slope parameter; see below.
21  DATA ((bcs(i,j),j=1,8),i=1,5)/
22  1 41.74, 0.66, 0.0000, 337., 0.0, 0.0, -39.3, 0.48,
23  2 41.66, 0.60, 0.0000, 306., 0.0, 0.0, -34.6, 0.51,
24  3 41.36, 0.63, 0.0000, 299., 7.3, 0.5, -40.4, 0.47,
25  4 41.68, 0.63, 0.0083, 330., 0.0, 0.0, -39.0, 0.48,
26  5 41.13, 0.59, 0.0074, 278., 10.5, 0.5, -41.2, 0.46/
27  DATA ((bcb(i,j),j=1,5),i=1,2)/
28  1 10.79, -0.049, 0.040, 21.5, 1.23,
29  2 9.92, -0.027, 0.013, 18.9, 1.07/
30  DATA bcc/2.0164346,-0.5590311,0.0376279/
31 
32 C...Total cross-section and nuclear slope parameter for pp and p-pbar
33  nfit=min(5,max(1,mstp(31)))
34  sigp=bcs(nfit,1)+bcs(nfit,2)*(-0.25*paru(1)**2*
35  &(1.-0.25*bcs(nfit,3)*paru(1)**2)+(1.+0.5*bcs(nfit,3)*paru(1)**2)*
36  &(log(vint(2)/bcs(nfit,4)))**2+bcs(nfit,3)*
37  &(log(vint(2)/bcs(nfit,4)))**4)/
38  &((1.-0.25*bcs(nfit,3)*paru(1)**2)**2+2.*bcs(nfit,3)*
39  &(1.+0.25*bcs(nfit,3)*paru(1)**2)*(log(vint(2)/bcs(nfit,4)))**2+
40  &bcs(nfit,3)**2*(log(vint(2)/bcs(nfit,4)))**4)+bcs(nfit,5)*
41  &vint(2)**(bcs(nfit,6)-1.)*sin(0.5*paru(1)*bcs(nfit,6))
42  sigm=-bcs(nfit,7)*vint(2)**(bcs(nfit,8)-1.)*
43  &cos(0.5*paru(1)*bcs(nfit,8))
44  refp=bcs(nfit,2)*paru(1)*log(vint(2)/bcs(nfit,4))/
45  &((1.-0.25*bcs(nfit,3)*paru(1)**2)**2+2.*bcs(nfit,3)*
46  &(1.+0.25*bcs(nfit,3)*paru(1)**2)+(log(vint(2)/bcs(nfit,4)))**2+
47  &bcs(nfit,3)**2*(log(vint(2)/bcs(nfit,4)))**4)-bcs(nfit,5)*
48  &vint(2)**(bcs(nfit,6)-1.)*cos(0.5*paru(1)*bcs(nfit,6))
49  refm=-bcs(nfit,7)*vint(2)**(bcs(nfit,8)-1.)*
50  &sin(0.5*paru(1)*bcs(nfit,8))
51  sigma=sigp-isign(1,mint(11)*mint(12))*sigm
52  rho=(refp-isign(1,mint(11)*mint(12))*refm)/sigma
53 
54 C...Nuclear slope parameter B, curvature C:
55  nfit=1
56  IF(mstp(31).GE.4) nfit=2
57  bp=bcb(nfit,1)+bcb(nfit,2)*log(vint(2))+
58  &bcb(nfit,3)*(log(vint(2)))**2
59  bm=bcb(nfit,4)+bcb(nfit,5)*log(vint(2))
60  b=bp-isign(1,mint(11)*mint(12))*sigm/sigp*(bm-bp)
61  vint(121)=b
62  c=-0.5*bcc(2)/bcc(3)*(1.-sqrt(max(0.,1.+4.*bcc(3)/bcc(2)**2*
63  &(1.e-03*vint(1)-bcc(1)))))
64  vint(122)=c
65 
66 C...Elastic scattering cross-section (fixed by sigma-tot, rho and B).
67  sigel=sigma**2*(1.+rho**2)/(16.*paru(1)*paru(5)*b)
68 
69 C...Single diffractive scattering cross-section from Goulianos:
70  sigsd=2.*0.68*(1.+36./vint(2))*log(0.6+0.1*vint(2))
71 
72 C...Double diffractive scattering cross-section (essentially fixed by
73 C...sigma-sd and sigma-el).
74  sigdd=sigsd**2/(3.*sigel)
75 
76 C...Total non-elastic, non-diffractive cross-section.
77  signd=sigma-sigdd-sigsd-sigel
78 
79 C...Rescale for pions.
80  IF(iabs(mint(11)).EQ.211.AND.iabs(mint(12)).EQ.211) THEN
81  sigma=4./9.*sigma
82  sigdd=4./9.*sigdd
83  sigsd=4./9.*sigsd
84  sigel=4./9.*sigel
85  signd=4./9.*signd
86  ELSEIF(iabs(mint(11)).EQ.211.OR.iabs(mint(12)).EQ.211) THEN
87  sigma=2./3.*sigma
88  sigdd=2./3.*sigdd
89  sigsd=2./3.*sigsd
90  sigel=2./3.*sigel
91  signd=2./3.*signd
92  ENDIF
93 
94 C...Save cross-sections in common block PYPARA.
95  vint(101)=sigma
96  vint(102)=sigel
97  vint(103)=sigsd
98  vint(104)=sigdd
99  vint(106)=signd
100  xsec(95,1)=signd
101 
102  RETURN
103  END