11 #include "Zmanagerp.h" 12 real(8),
intent(in):: xpin
14 real(8),
intent(in):: Ain
18 logical,
save:: first=.
true.
19 character(40)::fileDPM=
"$COSMOSTOP/Data/DPM/sigxAbysigxp" 20 character(40)::fileQGS=
"$COSMOSTOP/Data/QGS/sigxAbysigxp" 21 character(40)::fileEPOS=
"$COSMOSTOP/Data/EPOS/sigxAbysigxp" 25 real(4),
allocatable,
save::XSratio(:,:)
26 real(4),
allocatable,
save::XSa(:)
27 real(4),
allocatable,
save::Aa(:)
28 real(4)::xp, A, ratioS, error
29 real(4):: XSv, Av, XSr, Ar
33 real(8):: cxAbyxpXsecOld
39 if( sxabysxpopt == 1 )
then 41 elseif(sxabysxpopt == 2)
then 43 elseif(sxabysxpopt == 3)
then 45 elseif(sxabysxpopt == 4)
then 48 elseif( sxabysxpopt == 0)
then 52 write(0,*)
' SxAbySxpOpt =',sxabysxpopt,
' invalid' 53 write(0,*)
' it must be 1 ~4' 56 call copenf(tempdev, file, icon)
58 write(0,*) file,
" could not be opened " 66 read(tempdev,*, end=100) xsr, ar
78 allocate( xsratio(ixs, ia) )
84 * xsa(ixsc), aa(iac), xsratio(ixsc, iac)
96 if( xpin < 15.
d0 .or. sxabysxpopt == 4 )
then 97 ratio = cxabyxpxsecold(xpin, ain)
102 * xsratio, ixs, ixs, ia, 2, 2, xp, a, ratios, error)
104 if( ratio < 1. )
then 105 ratio = cxabyxpxsecold(xpin, ain)
115 real(8),
intent(in):: xpin
116 real(8),
intent(in):: a
118 real(8):: cinelCosByPdg
121 if(xpin .lt. 15.)
then 122 ca = .93812*a**1.0215
123 cb = .65000
e-02* a**0.5 + (((-.37436
e-10* a +.18937
e-07)*a
124 * -.33424
e-05)* a + .21646
e-03)*a -.31385
e-02
125 ratio = ca/(1.0 + cb* xpin)
126 elseif(xpin .lt. 35.)
then 127 cb = (0.17859
e-05*a-.48592)*a + .66909
e-02 +
128 * 0.48968 * a**0.99875
129 ca = (0.67395
e-03*a + .93859 )*a + .26890 +
130 * .34987
e-01 * a**1.4525
132 ratio = ca/(1.0 + cb* xpin**cc)
134 ca = 80.000 * a**0.17829 + (((-.52469
e-07*a +.30395
e-04)*a
135 * -.69823
e-02)*a +1.0517)*a +16.427
137 cb = 90.029* a**(-1.0219) +
138 * (.94351
e-02*a -.45131)*a+6.4772
140 cb = 130.79*a**(-1.0) +
141 * (-.89803
e-05*a +.52418
e-02)*a -1.2073
143 ratio = ca* log(1.0 + xpin/cb)/xpin
145 ratio = ratio/cinelcosbypdg(a)
146 ratio = max(1.
d0, ratio)
dE dx *! Nuc Int sampling table e
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
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
subroutine copenf(io, fnin, icon)
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
real(8) function cxabyxpxsecold(xpin, a)
subroutine kpolintp2s(xa, xstep, dx, ya, ystep, dy, za, adj, m, n, ma, na, x, y, z, error)
real(8) function cxabyxpxsec(xpin, Ain)