COSMOS v7.655  COSMOSv7655
(AirShowerMC)
cnpTotXs.f
Go to the documentation of this file.
1 ! np total xsection
2  subroutine cnptotxs(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 n. in GeV
8  real*8 xs ! output. total np cross section in mb
9  integer np, i, m
10  real*8 error, s
11  parameter(np=54, m=5)
12  real*8 px(np), mb(np)
13  data ( px(i), i= 1 , np )/
14  1 0.1001 , 0.1126 , 0.1224 , 0.1337 ,
15  2 0.1489 , 0.1716 , 0.1912 , 0.2119 ,
16  3 0.2395 , 0.2590 , 0.2856 , 0.3135 ,
17  4 0.3407 , 0.3739 , 0.4207 , 0.4595 ,
18  5 0.4996 , 0.5512 , 0.6082 , 0.6646 ,
19  6 0.7227 , 0.7781 , 0.8378 , 0.9246 ,
20  7 1.051 , 1.225 , 1.400 , 1.584 ,
21  8 1.827 , 2.161 , 2.506 , 2.949 ,
22  9 3.470 , 4.063 , 4.950 , 5.767 ,
23  a 6.854 , 8.432 , 10.07 , 12.09 ,
24  b 15.02 , 18.75 , 23.07 , 28.66 ,
25  c 36.68 , 47.41 , 61.27 , 78.80 ,
26  d 99.85 , 130.3 , 174.4 , 236.8 ,
27  e 318.3 , 395.5
28  * /
29  data ( mb(i), i= 1 , np )/
30  1 1465. , 1264. , 1097. , 946.4 ,
31  2 782.0 , 619.0 , 489.9 , 395.0 ,
32  3 301.3 , 242.9 , 197.0 , 152.1 ,
33  4 122.7 , 100.7 , 78.76 , 65.88 ,
34  5 56.14 , 48.73 , 44.17 , 42.57 ,
35  6 41.28 , 38.34 , 35.40 , 34.12 ,
36  7 34.12 , 36.07 , 38.13 , 40.30 ,
37  8 41.06 , 42.61 , 43.41 , 43.42 ,
38  9 43.42 , 42.64 , 42.12 , 42.13 ,
39  a 41.11 , 40.86 , 40.62 , 39.64 ,
40  b 39.16 , 39.90 , 39.66 , 39.67 ,
41  c 39.43 , 39.44 , 38.73 , 39.46 ,
42  d 39.23 , 39.48 , 40.47 , 39.99 ,
43  e 40.00 , 41.00
44  * /
45 
46  if(p .gt. 50. ) then
47  if( totxsopt == 1 ) then ! pdg parameterization (lowest value)
48  xs = csigmat('n','p', p)
49  else
50  s = csofstu(p, masn, masp)
51  if( totxsopt == 2 ) then ! midlle of 1 and 3
52  xs = 42.6*(s)**(-0.46) - 33.4*(s)**(-0.545) + 35.5 +
53  * 0.295*log(s/29.1)**2
54  elseif( totxsopt == 3) then ! TOTEM (COMPETE) fitting
55  xs = 42.6*(s)**(-0.46) - 33.4*(s)**(-0.545) + 35.5 +
56  * 0.307*log(s/29.1)**2
57  else
58  write(0,*) ' TotXSopt=', totxsopt, ' invalid'
59  stop
60  endif
61  endif
62  elseif( p .gt. 0.4) then
63  call kpolintpfe(px, 1, mb, 1, np, m, p, xs, error)
64  else
65  call cnpelaxs(p, xs)
66  endif
67  end
68 !
69  subroutine cnpelaxs(p, xs)
70  use modpdgxs, only : csofstu
71 ! np elastic cross section in mb
72  implicit none
73 #include "Zmass.h"
74  real*8 p ! input. momentum of n in GeV
75  real*8 xs ! output np elastic xs. mb.
76 
77  integer np, m, i
78  parameter(np=37, m=5)
79  real*8 px(np), mb(np)
80  real*8 error
81  real*8 xssave/-1./
82  real(8):: s
83  real(8),parameter:: Pnorm=50.0
84  real(8),save:: xsn, Norm
85  real(8):: xspel, xspt, xspit, ppp
86  real(8),save::xsnorm
87 
88  logical,save:: first = .true.
89 
90 
91  data ( px(i), i= 1 , np )/
92  1 0.9860e-02, 0.1271e-01, 0.1942e-01, 0.3230e-01,
93  2 0.4935e-01, 0.7025e-01, 0.1000 , 0.1187 ,
94  3 0.1294 , 0.1472 , 0.1692 , 0.1988 ,
95  4 0.2386 , 0.2833 , 0.3257 , 0.3785 ,
96  5 0.4803 , 0.5145 , 0.5818 , 0.6548 ,
97  6 0.7628 , 0.8543 , 0.9906 , 1.132 ,
98  7 1.243 , 1.413 , 1.575 , 1.712 ,
99  8 2.180 , 2.960 , 3.788 , 5.068 ,
100  9 8.427 , 16.91 , 37.07 , 66.05 ,
101  * 100.0
102  * /
103  data ( mb(i), i= 1 , np )/
104  1 8452. , 7556. , 6039. , 4437. ,
105  2 3306. , 2362. , 1549. , 1169. ,
106  3 1022. , 813.3 , 621.7 , 438.5 ,
107  4 301.1 , 198.5 , 136.3 , 100.1 ,
108  5 60.07 , 50.88 , 42.83 , 40.02 ,
109  6 34.96 , 32.67 , 31.88 , 30.92 ,
110  7 31.31 , 29.80 , 26.85 , 24.78 ,
111  8 21.65 , 18.23 , 15.92 , 12.92 ,
112  9 11.43 , 10.17 , 9.629 , 9.575 ,
113  * 9.578
114  * /
115  save
116  if( p .gt. pnorm) then
117  if( first ) then
118  ppp = pnorm
119  call cppelaxs(ppp, xspel)
120  call cpptotxs(ppp, xspt)
121  call cnptotxs(ppp, xspit)
122  call kpolintpfe(px, 1, mb, 1, np, m,
123  * ppp, xsnorm, error)
124  xs = xspit*xspel/xspt
125  norm = xs - xsnorm
126  first=.false.
127  endif
128  ppp = p
129  call cppelaxs(ppp, xspel)
130  call cpptotxs(ppp, xspt)
131  call cnptotxs(ppp, xspit)
132  xs = xspit*xspel/xspt
133  xs = xs - norm
134  elseif(p .gt. 0.01) then
135  call kpolintplogxyfe(px, 1, mb, 1, np, m, 3, p, xs, error)
136  else
137 ! get value at 0.01
138  xs = mb(1)
139  endif
140  end
141  subroutine cnpinelaxs(p, xs)
142  implicit none
143  real(8),intent(in)::p
144  real(8),intent(out)::xs
145 
146  real(8)::txs, exs
147  call cnptotxs(p, txs)
148  call cnpelaxs(p, exs)
149  xs =max( txs - exs, 0.d0)
150  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
masn
Definition: Zmass.h:5
subroutine cnptotxs(p, xs)
Definition: cnpTotXs.f:3
subroutine cnpinelaxs(p, xs)
Definition: cnpTotXs.f:142
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 cnpelaxs(p, xs)
Definition: cnpTotXs.f:70
dE dx *! Nuc Int sampling table d
Definition: cblkMuInt.h:130
nodes a
real(8) function, public csofstu(p, Mp, Mt)
Definition: cpdgXs.f:21
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
masp
Definition: Zmass.h:5
Definition: cpdgXs.f:1
dE dx *! Nuc Int sampling table c
Definition: cblkMuInt.h:130