COSMOS v7.655  COSMOSv7655
(AirShowerMC)
cpimpTotXs.f
Go to the documentation of this file.
1 ! pi-p total xsection , elastic xs
2  subroutine cpimptotxs(p, xs)
3  use modpdgxs, only: csigmat
4  implicit none
5 #include "Zmass.h"
6  real*8 p ! input. momentum of n. in GeV
7  real*8 xs ! output. total np cross section in mb
8  integer np, i, m
9  real*8 error
10  parameter(np=108, m=5)
11  real*8 px(np), mb(np)
12  real(8),parameter:: Pnorm = 100.
13 
14  data ( px(i), i= 1 , np )/
15  1 0.158, 0.168, 0.180, 0.193, 0.206, 0.216, 0.225, 0.237,
16  2 0.247, 0.259, 0.264, 0.271, 0.282, 0.293, 0.301, 0.307,
17  3 0.316, 0.328, 0.339, 0.348, 0.360, 0.373, 0.385, 0.396,
18  4 0.411, 0.432, 0.446, 0.461, 0.485, 0.511, 0.539, 0.564,
19  5 0.594, 0.615, 0.625, 0.642, 0.651, 0.672, 0.685, 0.693,
20  6 0.703, 0.734, 0.744, 0.760, 0.766, 0.775, 0.793, 0.808,
21  7 0.817, 0.836, 0.857, 0.873, 0.895, 0.917, 0.951, 0.977,
22  8 0.983, 1.010, 1.028, 1.050, 1.070, 1.095, 1.107, 1.133,
23  9 1.152, 1.194, 1.260, 1.332, 1.386, 1.453, 1.492, 1.557,
24  a 1.640, 1.737, 1.834, 1.942, 2.042, 2.200, 2.302, 2.418,
25  b 2.540, 2.689, 2.836, 3.002, 3.173, 3.409, 3.726, 4.081,
26  c 4.446, 4.754, 5.210, 5.721, 6.372, 6.883,
27  d 8.814 ,
28  e 11.61 , 16.06 , 23.46 , 32.47 ,
29  f 46.73 , 70.64 , 99.20 , 130.0 ,
30  g 175.5 , 218.0 , 284.3 , 401.2 ,
31  h 518.1
32  * /
33  data ( mb(i), i= 1 , np )/
34  1 13.60, 16.34, 19.99, 24.29, 30.30, 36.96, 44.13, 50.01,
35  2 57.84, 63.74, 67.18, 70.42, 71.46, 68.90, 64.93, 62.13,
36  3 57.36, 53.36, 48.12, 44.52, 40.45, 36.29, 33.56, 31.29,
37  4 29.20, 27.18, 26.32, 26.16, 26.63, 27.25, 28.06, 29.45,
38  5 30.84, 32.67, 34.37, 36.91, 39.13, 41.94, 44.22, 46.08,
39  6 47.57, 47.05, 45.75, 44.43, 41.80, 40.05, 38.42, 36.88,
40  7 35.96, 36.28, 37.39, 39.32, 42.16, 45.92, 50.66, 54.82,
41  8 57.46, 59.66, 56.91, 53.99, 50.22, 45.91, 42.98, 40.43,
42  9 38.62, 37.15, 36.16, 36.52, 36.79, 36.16, 35.43, 34.51,
43  a 34.89, 35.23, 35.74, 36.24, 36.11, 35.86, 34.92, 34.33,
44  b 33.70, 32.85, 32.64, 32.87, 32.36, 31.63, 30.92, 30.40,
45  c 29.99, 29.51, 28.83, 28.52, 27.94, 27.77,
46  d 26.89 ,
47  e 26.02 , 25.29 , 24.98 , 24.77 ,
48  f 24.36 , 24.16 , 24.15 , 24.25 ,
49  g 24.34 , 24.64 , 24.74 , 25.14 ,
50  h 25.55
51  * /
52  save
53  if(p .gt. pnorm) then
54  xs = csigmat('pi-', 'p', p)
55  elseif( p .gt. 0.2) then
56 ! call kpolintplogxyFE(px, 1, mb, 1, np, m, 0, p, xs, error)
57  call kpolintpfe(px, 1, mb, 1, np, m, p, xs, error)
58  else
59  call cpimpelaxs(p, xs)
60  endif
61  end subroutine cpimptotxs
62 !
63  subroutine cpimpelaxs(p, xs)
64  use modpdgxs, mpdg=>m
65 ! pi- p elastic cross section in mb
66  implicit none
67 #include "Zmass.h"
68  real*8 p ! input. momentum of n in GeV
69  real*8 xs ! output np elastic xs. mb.
70 
71  integer np, m, i
72  parameter(np=52, m=5)
73  real*8 px(np), mb(np)
74  real*8 error
75  real*8 xssave/-1./
76  real(8),parameter:: Pnorm=100.0
77  real(8),parameter:: sm=(maspic + masp + mpdg)**2
78  real(8),parameter:: smpp=(masp + masp + mpdg)**2
79  real(8),save:: Norm
80  real(8):: PPP
81  real(8):: xspel, xspt, xspit
82  real(8),save::xsnorm
83 
84  logical,save:: first = .true.
85 
86  data ( px(i), i= 1 , np )/
87  1 0.1320 , 0.1553 , 0.1731 , 0.1845 ,
88  2 0.2017 , 0.2171 , 0.2280 , 0.2418 ,
89  3 0.2527 , 0.2680 , 0.2871 , 0.3076 ,
90  4 0.3232 , 0.3480 , 0.3785 , 0.4056 ,
91  5 0.4454 , 0.5187 , 0.5611 , 0.6159 ,
92  6 0.6374 , 0.6760 , 0.7242 , 0.7608 ,
93  7 0.7915 , 0.8480 , 0.9085 , 0.9354 ,
94  8 0.9823 , 1.007 , 1.052 , 1.089 ,
95  9 1.128 , 1.221 , 1.354 , 1.531 ,
96  a 1.988 , 2.361 , 2.904 , 3.901 ,
97  b 5.191 , 7.546 , 10.29 , 14.03 ,
98  c 19.51 , 27.40 , 38.66 , 63.24 ,
99  d 100.9 , 170.9 , 263.4 , 366.3
100  * /
101  data ( mb(i), i= 1 , np )/
102  1 21.81 , 17.87 , 15.43 , 13.60 ,
103  2 11.46 , 11.37 , 12.90 , 16.87 ,
104  3 19.70 , 22.07 , 24.94 , 23.46 ,
105  4 19.14 , 15.05 , 11.98 , 10.78 ,
106  5 9.501 , 10.06 , 11.74 , 13.93 ,
107  6 16.12 , 18.75 , 20.09 , 18.44 ,
108  7 16.12 , 14.80 , 14.98 , 19.05 ,
109  8 23.44 , 25.33 , 23.63 , 20.50 ,
110  9 16.38 , 13.70 , 12.27 , 10.47 ,
111  a 8.894 , 8.098 , 7.434 , 6.578 ,
112  b 5.566 , 5.006 , 4.689 , 4.304 ,
113  c 3.871 , 3.626 , 3.467 , 3.301 ,
114  d 3.220 , 3.180 , 3.325 , 3.577
115  * /
116 
117  save
118  if( p .gt. pnorm) then
119  if( first ) then
120  ppp = pnorm
121  call cppelaxs(ppp, xspel)
122  call cpptotxs(ppp, xspt)
123  call cpimptotxs(ppp, xspit)
124  call kpolintpfe(px, 1, mb, 1, np, m,
125  * ppp, xsnorm, error)
126  xs = xspit*xspel/xspt
127  norm = xs - xsnorm
128  first=.false.
129  endif
130  ppp = p
131  call cppelaxs(ppp, xspel)
132  call cpptotxs(ppp, xspt)
133  call cpimptotxs(ppp, xspit)
134  xs = xspit*xspel/xspt
135  xs = xs - norm
136  elseif(p .gt. px(1)) then
137 ! call kpolintplogxyFE(px, 1, mb, 1, np, m, 0, p, xs, error)
138  call kpolintpfe(px, 1, mb, 1, np, m, p, xs, error)
139  else
140 ! get value at 0.1
141  xs = mb(1)
142  endif
143  end subroutine cpimpelaxs
144  subroutine cpimpinelaxs(p, xs)
145  implicit none
146  real(8),intent(in)::p
147  real(8),intent(out)::xs
148 
149  real(8)::txs, exs
150  call cpimptotxs(p, txs)
151  call cpimpelaxs(p, exs)
152  xs =max( txs - exs, 0.d0)
153  end subroutine cpimpinelaxs
154 
integer npitbl real *nx parameter(n=101, npitbl=46, nx=n-1) real *8 uconst
real(8), parameter, public m
Definition: cpdgXs.f:13
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
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
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 cpimpinelaxs(p, xs)
Definition: cpimpTotXs.f:145
dE dx *! Nuc Int sampling table d
Definition: cblkMuInt.h:130
nodes a
subroutine cpimpelaxs(p, xs)
Definition: cpimpTotXs.f:64
dE dx *! Nuc Int sampling table b
Definition: cblkMuInt.h:130
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
dE dx *! Nuc Int sampling table h
Definition: cblkMuInt.h:130
dE dx *! Nuc Int sampling table g
Definition: cblkMuInt.h:130
masp
Definition: Zmass.h:5
maspic
Definition: Zmass.h:5
Definition: cpdgXs.f:1
subroutine cpimptotxs(p, xs)
Definition: cpimpTotXs.f:3
dE dx *! Nuc Int sampling table f
Definition: cblkMuInt.h:130
dE dx *! Nuc Int sampling table c
Definition: cblkMuInt.h:130