COSMOS v7.655  COSMOSv7655
(AirShowerMC)
cppTotXs.f
Go to the documentation of this file.
1 ! pp total xsection, pp ela.xs
2  subroutine cpptotxs(p, xs)
3  use modpdgxs, only : csigmat, csofstu
4  implicit none
5 #include "Zmass.h"
6 #include "Zevhnp.h"
7  real*8 p ! input. momentum of p. in GeV
8  real*8 xs ! output. total pp cross section in mb
9  integer np, i, m
10  real*8 error
11  parameter(np=39, m=5)
12  real*8 px(np), mb(np)
13  data ( px(i), i= 1 , np )/
14  1 0.1015 , 0.1370 , 0.1900 , 0.2363 ,
15  2 0.2746 , 0.3147 , 0.3706 , 0.4306 ,
16  3 0.5003 , 0.5892 , 0.7329 , 0.8871 ,
17  4 0.9894 , 1.089 , 1.150 , 1.248 ,
18  5 1.336 , 1.552 , 1.904 , 2.305 ,
19  6 2.752 , 3.331 , 4.376 , 5.908 ,
20  7 7.760 , 10.62 , 15.56 , 21.88 ,
21  8 29.54 , 38.80 , 68.81 , 100.8 ,
22  9 151.8 , 213.4 , 292.1 , 433.8 ,
23  a 671.2 , 1067. , 2082.
24  * /
25  data ( mb(i), i= 1 , np )/
26  1 486.6 , 316.8 , 155.7 , 91.67 ,
27  2 69.23 , 52.00 , 35.88 , 28.12 ,
28  3 24.76 , 23.61 , 23.11 , 24.89 ,
29  4 27.97 , 31.60 , 35.69 , 39.47 ,
30  5 44.59 , 47.77 , 48.02 , 46.77 ,
31  6 44.83 , 43.19 , 42.07 , 40.75 ,
32  7 40.53 , 40.11 , 39.26 , 39.06 ,
33  8 39.06 , 38.65 , 38.65 , 38.65 ,
34  9 38.85 , 39.26 , 39.47 , 40.53 ,
35  a 40.97 , 42.07 , 43.42
36  * /
37 
38  save
39 
40 
41  real(8):: s
42 
43 ! if(p .gt. 2000.) then
44  if(p .gt. 50. ) then
45  if( totxsopt == 1 ) then ! pdg parameterization (lowest value)
46  xs = csigmat('p','p', p)
47  else
48  s = csofstu(p, masp, masp)
49  if( totxsopt == 2 ) then ! midlle of 1 and 3
50  xs = 42.6*(s)**(-0.46) - 33.4*(s)**(-0.545) + 35.5 +
51  * 0.295*log(s/29.1)**2
52  elseif( totxsopt == 3) then ! TOTEM (COMPETE) fitting
53  xs = 42.6*(s)**(-0.46) - 33.4*(s)**(-0.545) + 35.5 +
54  * 0.307*log(s/29.1)**2
55  else
56  write(0,*) ' TotXSopt=', totxsopt, ' invalid'
57  stop
58  endif
59  endif
60  elseif( p .gt. 0.46) then
61  call kpolintplogxyfe(px, 1, mb, 1, np, m, 3, p, xs, error) ! call kpolintpFE(px, 1, mb, 1, np, m, p, xs, error)
62  else
63  call cppelaxs(p, xs)
64  endif
65  end
66 !
67  subroutine cppelaxs(p, xs)
68  use modpdgxs, only : csofstu
69 ! pp elastic cross section in mb
70  implicit none
71 #include "Zmass.h"
72  real*8 p ! input. momentum of n in GeV
73  real*8 xs ! output np elastic xs. mb.
74 
75  integer np, m, i
76  parameter(np=38, m=5)
77  real*8 px(np), mb(np)
78  real*8 error
79  real*8 xssave/-1./
80  real(8):: s
81 
82  data ( px(i), i= 1 , np )/
83  1 9.9947e-02, 0.1382 , 0.1875 , 0.2380 ,
84  2 0.2746 , 0.3108 , 0.3452 , 0.3834 ,
85  3 0.4258 , 0.4638 , 0.5349 , 0.6110 ,
86  4 0.7181 , 0.8682 , 0.9637 , 1.132 ,
87  5 1.396 , 1.656 , 1.984 , 2.399 ,
88  6 2.929 , 3.823 , 4.802 , 6.510 ,
89  7 9.982 , 13.79 , 20.35 , 30.91 ,
90  8 45.20 , 68.65 , 102.3 , 145.4 ,
91  9 204.6 , 296.3 , 490.0 , 1067. ,
92  a 1621. , 2055.
93  * /
94  data ( mb(i), i= 1 , np )/
95  1 499.9 , 316.6 , 155.5 , 92.89 ,
96  2 70.49 , 53.77 , 42.57 , 33.88 ,
97  3 28.44 , 25.84 , 23.86 , 23.11 ,
98  4 22.74 , 23.35 , 23.97 , 24.74 ,
99  5 24.09 , 23.21 , 21.77 , 19.58 ,
100  6 16.96 , 14.61 , 12.39 , 10.74 ,
101  7 9.910 , 9.394 , 8.535 , 7.631 ,
102  8 7.311 , 6.967 , 6.817 , 6.851 ,
103  9 6.776 , 6.992 , 7.062 , 7.284 ,
104  a 7.516 , 7.716
105  * /
106 
107  save
108 
109 
110 
111 ! if( p .gt. 2000.) then
112  if( p .gt. 50. ) then
113  s = csofstu(p, masp, masp)
114  xs = 11.4 - 1.52*log(s)+0.130*log(s)**2 ! TOTEM
115  elseif(p .gt. 0.1) then
116  call kpolintplogxyfe(px, 1, mb, 1, np, m, 3, p, xs, error)
117 ! call kpolintpFE(px, 1, mb, 1, np, m, p, xs, error)
118  else
119 ! get value at 0.1
120  xs = mb(1)
121  endif
122  end
123  subroutine cppinelaxs(p, xs)
124  implicit none
125  real(8),intent(in)::p
126  real(8),intent(out)::xs
127 
128  real(8)::txs, exs
129  call cpptotxs(p, txs)
130  call cppelaxs(p, exs)
131  xs =max( txs - exs, 0.d0)
132  end
integer npitbl real *nx parameter(n=101, npitbl=46, nx=n-1) real *8 uconst
dE dx *! Nuc Int sampling table e
Definition: cblkMuInt.h:130
subroutine cpptotxs(p, xs)
Definition: cppTotXs.f:3
real(8) function, public csigmat(a, b, p)
Definition: cpdgXs.f:31
subroutine kpolintplogxyfe(xa, xstep, ya, ystep, nt, m, logxy, x, y, error)
Definition: kpolintp.f:22
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
Definition: cblkEvhnp.h:5
subroutine cppelaxs(p, xs)
Definition: cppTotXs.f:68
nodes a
real(8) function, public csofstu(p, Mp, Mt)
Definition: cpdgXs.f:21
masp
Definition: Zmass.h:5
Definition: cpdgXs.f:1
subroutine cppinelaxs(p, xs)
Definition: cppTotXs.f:124