COSMOS v7.655  COSMOSv7655
(AirShowerMC)
cppTotXs.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine cpptotxs (p, xs)
 
subroutine cppelaxs (p, xs)
 
subroutine cppinelaxs (p, xs)
 

Function/Subroutine Documentation

◆ cppelaxs()

subroutine cppelaxs ( real*8  p,
real*8  xs 
)

Definition at line 68 of file cppTotXs.f.

References a, modpdgxs::csofstu(), e, kpolintplogxyfe(), masp, and parameter().

Referenced by ckmpelaxs(), ckpnelaxs(), ckppelaxs(), cnpelaxs(), cpbarpelaxs(), cpimpelaxs(), cpippelaxs(), cppinelaxs(), and cpptotxs().

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
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
nodes i
subroutine kpolintplogxyfe(xa, xstep, ya, ystep, nt, m, logxy, x, y, error)
Definition: kpolintp.f:22
! constants used for pair brem in Air real *mbtoPX0 ! mbtoPgrm x X0g If multiplied to sigma in mb
Definition: ZbpCnst.h:3
! constants thru Cosmos real ! if multiplied to deg radian Torad ! light velocity m sec ! infinty ! kg m2 *Togpcm2 g cm2 ! g cm2 *Tokgpm2 kg m2 ! cm *Tom m ! m *Tocm cm ! g cm3 *Tokgpm3 kg m3 ! kg m3 *Togpcm3 g cm3 ! sec *Tonsec nsec ! Tesla m ! Avogadro *A2deninv ! mfp *n * xs
Definition: Zglobalc.h:18
********************block data cblkHeavy ********************integer j data *HeavyG2symbol p
Definition: cblkHeavy.h:7
real(8) function, public csofstu(p, Mp, Mt)
Definition: cpdgXs.f:21
block data include Zlatfit h c fitting region data data data data data d0 data data d0 data data m
Definition: ZlatfitBD.h:35
real(4), save a
Definition: cNRLAtmos.f:20
masp
Definition: Zmass.h:5
Definition: cpdgXs.f:1
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cppinelaxs()

subroutine cppinelaxs ( real(8), intent(in)  p,
real(8), intent(out)  xs 
)

Definition at line 124 of file cppTotXs.f.

References cppelaxs(), cpptotxs(), and d0.

Referenced by cinelx0(), and cppxsec().

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)
subroutine cpptotxs(p, xs)
Definition: cppTotXs.f:3
! constants thru Cosmos real ! if multiplied to deg radian Torad ! light velocity m sec ! infinty ! kg m2 *Togpcm2 g cm2 ! g cm2 *Tokgpm2 kg m2 ! cm *Tom m ! m *Tocm cm ! g cm3 *Tokgpm3 kg m3 ! kg m3 *Togpcm3 g cm3 ! sec *Tonsec nsec ! Tesla m ! Avogadro *A2deninv ! mfp *n * xs
Definition: Zglobalc.h:18
********************block data cblkHeavy ********************integer j data *HeavyG2symbol p
Definition: cblkHeavy.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
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cpptotxs()

subroutine cpptotxs ( real*8  p,
real*8  xs 
)

Definition at line 3 of file cppTotXs.f.

References a, cppelaxs(), modpdgxs::csigmat(), modpdgxs::csofstu(), kpolintplogxyfe(), masp, and parameter().

Referenced by ckmpelaxs(), ckpnelaxs(), ckppelaxs(), cnpelaxs(), cpbarpelaxs(), cpimpelaxs(), cpippelaxs(), cppelaxs(), cppinelaxs(), and ctotx0().

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
integer npitbl real *nx parameter(n=101, npitbl=46, nx=n-1) real *8 uconst
nodes i
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
! constants used for pair brem in Air real *mbtoPX0 ! mbtoPgrm x X0g If multiplied to sigma in mb
Definition: ZbpCnst.h:3
! constants thru Cosmos real ! if multiplied to deg radian Torad ! light velocity m sec ! infinty ! kg m2 *Togpcm2 g cm2 ! g cm2 *Tokgpm2 kg m2 ! cm *Tom m ! m *Tocm cm ! g cm3 *Tokgpm3 kg m3 ! kg m3 *Togpcm3 g cm3 ! sec *Tonsec nsec ! Tesla m ! Avogadro *A2deninv ! mfp *n * xs
Definition: Zglobalc.h:18
********************block data cblkHeavy ********************integer j data *HeavyG2symbol p
Definition: cblkHeavy.h:7
subroutine cppelaxs(p, xs)
Definition: cppTotXs.f:68
real(8) function, public csofstu(p, Mp, Mt)
Definition: cpdgXs.f:21
block data include Zlatfit h c fitting region data data data data data d0 data data d0 data data m
Definition: ZlatfitBD.h:35
real(4), save a
Definition: cNRLAtmos.f:20
masp
Definition: Zmass.h:5
Definition: cpdgXs.f:1
Here is the call graph for this function:
Here is the caller graph for this function: