21 real*8 mfp, xs, length
26 integer ksave/0/, esave/-1./, ncount/0/
29 ka = trackbefmove%p%code
31 if(ksave .eq. ka .and. esave .eq.
32 * trackbefmove%p%fm%p(4))
then 34 if(ncount .gt. 10)
then 35 write(0,*)
' ncount=',ncount,
36 *
' ka=',ka,
' e=',esave,
' mass=',
41 esave = trackbefmove%p%fm%p(4)
49 if(length .ne. infty)
then 54 if(length .gt. 0.)
then 55 if(trackbefmove%p%charge .ne. 0)
then 62 if( trackbefmove%p%code .eq.
kmuon)
then 97 real*8 xs, mfp, u, csigma, s0
99 real*8 prob, path, collkgram
105 * trackbefmove%p%fm%p(4) .gt. mupremin)
then 106 call cmuprsmpp(trackbefmove%p%fm%p(4), prob, path)
117 xs =max( prob/mbtopx0, smallxs)
118 mfp = 1./(media(1)%mbtoPkgrm* xs)
119 collkgram = path * x0
123 * trackbefmove%p%fm%p(4) .gt. mubremin)
then 125 call cmubrsmpp(trackbefmove%p%fm%p(4), prob, path)
126 xs =max( prob/mbtopx0, smallxs)
127 mfp = 1./(media(1)%mbtoPkgrm* xs)
128 collkgram = path * x0
132 * trackbefmove%p%fm%p(4) .gt. munemin)
then 133 call cmunsmpp(trackbefmove%p%fm%p(4), prob, path)
134 xs =max( prob/mbtopx0, smallxs)
136 mfp = 1./(media(1)%mbtoPkgrm* xs)
137 collkgram = path * x0
138 if( xs .ne. smallxs .and.
139 * .not. freec .and. zfirst%pos%depth .eq. 0. )
then 155 #include "Zglobalc.h" 162 real(8),
intent(out):: xs
163 real(8),
intent(out):: mfp
165 real*8 prob, path, collkgram, uta, u
166 call cgetxsec(activemdl2, trackbefmove%p, media(1),
171 if(xs .eq. smallxs)
then 173 elseif(.not. freec .and. zfirst%pos%depth .eq. 0. )
then 176 elseif( xs .eq. largexs)
then 182 collkgram=-mfp*log(u)
191 #include "Zglobalc.h" 195 #include "Zelemagp.h" 199 call cknockp(trackbefmove%p, prob, path)
200 if(prob .gt. 0.
d0)
then
subroutine cmuprsmpp(Emu, prob, path)
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 cmubrsmpp(Emu, prob, path)
subroutine cmunsmpp(Emu, prob, path)
subroutine csampmuint(xs, mfp)
subroutine csetintinf(lenOrThick, decay, procname)
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
subroutine csamphadint(xs, mfp)
subroutine cknockp(aPtcl, prob, path)
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 cgetxsec(modelin, pj, media, xs, mfp)
subroutine cdecayleng(aTrack, length)
max ptcl codes in the kmuon