1 #include "BlockData/cblkGene.h" 10 #include "Zprimaryc.h" 11 #include "Zprimaryv.h" 12 #include "Zincidentp.h" 25 real*8 azmmin, azmmax, zen1, zen2, rigc
34 azmmax = imag_p(azimuth) + xaxisfromsouth
35 azmmin =
real(Azimuth) + XaxisFromSouth
36 if(cutofffile .eq.
' ')
then 41 if(zenvalue .eq.
'deg')
then 50 write(*,*)
' primary Int(cos x dI/dE) sum(cumlative)' 52 do i = 1, prim%no_of_comps
56 write(*,*)
' ', prim%each(
i)%symb,
' ', sngl(
ans),
60 *
'If N primaries are generated in simulation, ST= N/sum' 70 real*8 azmmin, azmmax, zen1, zen2, rigc
72 common/zgetst/compx, zen1, zen2, azmmin, azmmax, rigc
75 real*8 eps, error, ans2, Eth, e_or_p
94 call cmkptc(comp%code, comp%subcode, comp%charge, aptcl)
95 eth =sqrt( (rigc*comp%charge)**2 + aptcl%mass**2 )
97 call kdwhereis(e_or_p, comp%no_of_seg+1, comp%energy, 1, j)
99 call kdexpintfb(primdn, comp%energy(1), comp%energy(j+1),
100 * eps, ans, error, icon)
103 if(j+1 .lt. imax )
then 116 #include "Zglobalc.h" 118 #include "Zprimary.h" 122 real*8 azmmin, azmmax, zen1, zen2, rigc
124 common/zgetst/compx, zen1, zen2, azmmin, azmmax, rigc
127 call cprimflux(compx, e, rigc, zen1, zen2, azmmin,
134 #include "Zprimary.h" 147 if(beta .ne. 1.)
then 149 * comp%flux(i)*comp%energy(i)
152 * (comp%energy(i+1)/comp%energy(i))**(1.-beta))
155 * sum + comp%flux(i)* comp%energy(i)
156 * * log(comp%energy(i+1)/comp%energy(i))
real *8 function primdn(eorp)
subroutine cprimflux(comp, e_or_p, rigth, cos1, cos2, fai1, fai2, flux)
atmos%rho(atmos%nodes) **exp(-(z-atmos%z(atmos%nodes))/Hinf) elseif(z .lt. atmos%z(1)) then ans=atmos%rho(1) **exp((atmos%z(1) -z)/atmos%H(1)) else call kdwhereis(z, atmos%nodes, atmos%z, 1, i) a=atmos%a(i) if(a .ne. 0.d0) then ans=atmos%rho(i) **(1+a *(z-atmos%z(i))/atmos%H(i)) **(-1.0d0-1.d0/a) else ans=*atmos%rho(i) *exp(-(z-atmos%z(i))/atmos%H(i)) endif endif ! zsave=z ! endif cvh2den=ans end ! ---------------------------------- real *8 function cvh2temp(z) implicit none ! vettical height to temperatur(Kelvin) real *8 z ! input. vertical height in m ! output is temperature of the atmospher in Kelvin real *8 ans integer i if(z .gt. atmos%z(atmos%nodes)) then ans=atmos%T(atmos%nodes) elseif(z .lt. atmos%z(1)) then ans=atmos%T(1)+atmos%b(1) *(z - atmos%z(1)) else call kdwhereis(z, atmos%nodes, atmos%z, 1, i) ans=atmos%T(i)+atmos%b(i) *(z-atmos%z(i)) endif cvh2temp=ans end !--------------------------------------------- real *8 function cthick2h(t) implicit none real *8 t ! input. air thickness in kg/m^2 real *8 logt, ans integer i real *8 dod0, fd, a logt=log(t) if(t .ge. atmos%cumd(1)) then ans=atmos%z(1) - *(logt - atmos%logcumd(1)) *atmos%H(1) elseif(t .le. atmos%cumd(atmos%nodes)) then ans=atmos%z(atmos%nodes) - *Hinf *log(t/atmos%cumd(atmos%nodes)) else call kdwhereis(t, atmos%nodes, atmos%cumd, 1, i) ! i is such that X(i) > x >=x(i+1) ans
subroutine cconv_prim_e2(comp, E, e_or_p)
subroutine kdwhereis(x, in, a, step, loc)
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
subroutine cprintprim(out)
subroutine csetcosdeg(cosin, degin)
subroutine creadparam(io)
subroutine kdexpintfb(func, a, b, eps, ans, error, icon)
dE dx *! Nuc Int sampling table d
*Zfirst p fm *Zfirst p Zfirst p Zfirst p *Zfirst p *Zfirst pos xyz Zfirst pos xyz *Zfirst pos *Zfirst pos Zfirst pos *Zfirst pos *Zfirst Zfirst vec w *Zfirst vec w Zfirst vec coszenith
subroutine chookcerens(no, primary, angle)
subroutine inteprim2(comp, i1, i2, ans)
subroutine inteflux(comp, ans)
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
subroutine cmkptc(code, subcode, charge, p)