COSMOS v7.655  COSMOSv7655
(AirShowerMC)
cpbarpTotXs.f
Go to the documentation of this file.
1 ! pbarp total xsection, pbap ela
2 
3 ! At low energies, xs is diff.from pp natually.
4 ! As energy goes higher xs coicides with the one for
5 ! pp.
6 ! However, at E>10^16 eV, xs becomes little bit
7 ! larger than the one for pp. (due to PDG parameterization)
8  subroutine cpbarptotxs(p, xs)
9  use modpdgxs, only : csigmat
10  implicit none
11 #include "Zmass.h"
12  real*8 p ! input. momentum of pbar. in GeV
13  real*8 xs ! output. total pbarp cross section in mb
14  integer np, i, m
15  real*8 error
16  real(8),parameter::Pnorm=300.d0
17  parameter(np=34, m=5)
18  real*8 px(np), mb(np)
19 
20  data ( px(i), i= 1 , np )/
21  1 9.7289e-02, 0.1485 , 0.1925 , 0.2330 ,
22  2 0.2821 , 0.3558 , 0.4426 , 0.5736 ,
23  3 0.6850 , 0.8180 , 1.004 , 1.319 ,
24  4 1.686 , 2.098 , 2.911 , 4.207 ,
25  5 5.918 , 9.286 , 13.79 , 21.64 ,
26  6 32.15 , 49.08 , 70.95 , 109.8 ,
27  7 144.3 , 192.2 , 274.0 , 418.3 ,
28  8 702.7 , 1133. , 1877. , 2986. ,
29  9 5015. , 1.5568e+04
30  * /
31  data ( mb(i), i= 1 , np )/
32  1 445.7 , 380.5 , 321.4 , 283.2 ,
33  2 249.5 , 214.1 , 179.9 , 153.6 ,
34  3 134.6 , 123.0 , 113.7 , 103.9 ,
35  4 95.54 , 86.43 , 75.75 , 66.40 ,
36  5 59.76 , 54.64 , 51.30 , 47.16 ,
37  6 45.22 , 43.82 , 42.92 , 42.03 ,
38  7 41.82 , 41.39 , 41.84 , 42.07 ,
39  8 42.31 , 43.22 , 43.70 , 45.12 ,
40  9 46.59 , 50.73
41  * /
42  if(p .gt. pnorm) then
43  xs = csigmat('pb', 'p', p)
44  elseif( p .gt. 0.1) then
45  call kpolintplogxyfe(px, 1, mb, 1, np, m, 3, p, xs, error)
46  else
47  xs =mb(1)
48  endif
49  end subroutine cpbarptotxs
50  subroutine cpbarpelaxs(p, xs)
51 ! pbarp elastic cross section in mb
52  implicit none
53  real*8 p ! input. momentum of pbar in GeV
54  real*8 xs ! output pbarp elastic xs. mb.
55 
56  integer np, m, i
57  parameter(np=35, m=5)
58  real*8 px(np), mb(np)
59  real*8 error
60  real(8),parameter::Pnorm=300.d0
61  real(8),save:: xsn, Norm, ppp
62  real(8):: xspel, xspt, xspit
63  real(8),save::xsnorm
64 
65  logical,save:: first=.true.
66 
67  data ( px(i), i= 1 , np )/
68  1 9.8633e-02, 0.1485 , 0.2299 , 0.3062 ,
69  2 0.4078 , 0.5358 , 0.6850 , 0.8758 ,
70  3 1.166 , 1.575 , 1.986 , 2.505 ,
71  4 3.572 , 4.957 , 6.784 , 9.286 ,
72  5 11.87 , 15.18 , 21.64 , 32.60 ,
73  6 56.27 , 83.59 , 127.6 , 289.4 ,
74  7 486.1 , 936.0 , 1551. , 3241. ,
75  8 6680. , 1.4542e+04, 3.3434e+04, 6.4372e+04,
76  9 1.5845e+05, 6.2031e+05, 1.7030e+06
77  * /
78  data ( mb(i), i= 1 , np )/
79  1 106.0 , 96.90 , 86.76 , 78.90 ,
80  2 68.79 , 60.62 , 53.69 , 47.81 ,
81  3 43.25 , 37.51 , 32.19 , 26.90 ,
82  4 20.89 , 16.91 , 13.91 , 11.81 ,
83  5 10.80 , 9.772 , 9.078 , 8.568 ,
84  6 7.960 , 7.513 , 7.358 , 7.170 ,
85  7 7.135 , 7.252 , 7.488 , 8.239 ,
86  8 9.064 , 10.13 , 11.21 , 12.07 ,
87  9 13.43 , 15.42 , 17.42
88  * /
89  save
90  if( p >= pnorm ) then
91  if( first ) then
92  ppp = pnorm
93  call cppelaxs(ppp, xspel)
94  call cpptotxs(ppp, xspt)
95  call cpbarptotxs(ppp, xspit)
96  call kpolintpfe(px, 1, mb, 1, np, m,
97  * ppp, xsnorm, error)
98  xs = xspit*xspel/xspt
99  norm = xs - xsnorm
100  first = .false.
101  endif
102  ppp = p
103  call cppelaxs(ppp, xspel)
104  call cpptotxs(ppp, xspt)
105  call cpbarptotxs(ppp, xspit)
106  xs = xspit*xspel/xspt
107  xs = xs - norm
108  elseif(p .gt. 0.1) then
109  call kpolintplogxyfe(px, 1, mb, 1, np, m, 3, p, xs, error)
110  else
111 ! get value at ~0.1
112  xs = 106.
113  endif
114  end subroutine cpbarpelaxs
115  subroutine cpbarpinelaxs(p, xs)
116  implicit none
117  real(8),intent(in)::p
118  real(8),intent(out)::xs
119 
120  real(8)::txs, exs
121  call cpbarptotxs(p, txs)
122  call cpbarpelaxs(p, exs)
123  xs =max( txs - exs, 0.d0)
124  end subroutine cpbarpinelaxs
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 cpbarptotxs(p, xs)
Definition: cpbarpTotXs.f:9
subroutine cpptotxs(p, xs)
Definition: cppTotXs.f:3
real(8) function, public csigmat(a, b, p)
Definition: cpdgXs.f:31
block data cblkElemag data *AnihiE ! Eposi< 1 TeV, anihilation considered *X0/365.667/, ! radiation length of air in kg/m2 *Ecrit/81.e-3/, ! critical energy of air in GeV *MaxComptonE/1./, ! compton is considered below 1 GeV *MaxPhotoE/1.e-3/, ! above this, PhotoElectric effect neg. *MinPhotoProdE/153.e-3/, ! below 153 MeV, no gp --> hadrons ! scattering const not MeV *Knockon true
Definition: cblkElemag.h:7
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
subroutine kpolintpfe(xa, xstep, ya, ystep, nt, m, x, y, error)
Definition: kpolintp.f:134
block data cblkElemag data *AnihiE ! Eposi< 1 TeV, anihilation considered *X0/365.667/, ! radiation length of air in kg/m2 *Ecrit/81.e-3/, ! critical energy of air in GeV *MaxComptonE/1./, ! compton is considered below 1 GeV *MaxPhotoE/1.e-3/, ! above this, PhotoElectric effect neg. *MinPhotoProdE/153.e-3/, ! below 153 MeV, no gp --> hadrons ! scattering const not MeV *Knockon ! knockon is considered Obsolete *PhotoProd false
Definition: cblkElemag.h:7
subroutine cpbarpelaxs(p, xs)
Definition: cpbarpTotXs.f:51
Definition: cpdgXs.f:1
subroutine cpbarpinelaxs(p, xs)
Definition: cpbarpTotXs.f:116