14 do i = 0, noofsites + 1
20 debydeathmupik(i) = 0.
74 if(a%where .ge. 1)
then 75 debydedx(a%where)= debydedx(a%where) + de*a%wgt
113 if(a%where .ge. 1)
then 114 if(a%p%code .eq.
kneue .or. a%p%code .eq.
kneumu)
then 116 debydeathneu(a%where) = debydeathneu(a%where) + de*a%wgt
117 elseif(a%p%code .eq.
knuc .and. a%p%charge .eq. 0 .and.
118 * a%p%subcode .eq.
regptcl )
then 120 debydeathnut(a%where) = debydeathnut(a%where) + de*a%wgt
124 debydeath(a%where) = debydeath(a%where) + de*a%wgt
127 if(a%p%code .eq.
kphoton )
then 128 debydeathg(a%where) = debydeathg(a%where) + de*a%wgt
129 elseif(a%p%code .eq.
kelec )
then 130 debydeathe(a%where) = debydeathe(a%where) + de*a%wgt
131 elseif( a%p%code .le.
kkaon )
then 132 debydeathmupik(a%where) = debydeathmupik(a%where)
134 elseif(a%p%code .eq.
knuc .and. a%p%charge .eq. 1 )
then 136 debydeathp(a%where) = debydeathp(a%where) + de*a%wgt
139 debydeatho(a%where) = debydeatho(a%where) + de*a%wgt
172 if(info .eq. 2 .and. a%where .eq. eabsorb(2) )
then 179 if( a%vec%coszenith .gt. 0.)
then 186 elseif( info .eq. 1 )
then 195 if(code .gt. 7) code=7
201 ecrash(code) = ecrash(code) + (a%p%fm%p(4)-a%p%mass)*a%wgt
204 espace(code) = espace(code) + (a%p%fm%p(4)-a%p%mass)*a%wgt
225 real*8 Eout, diff, reldiff, Ein
226 real*8 diff1, diff2, Ein1, Ein2
236 if( a%p%fm%p(4) .gt. ebig )
then 237 ein1 = a%p%fm%p(4) +
masn*(targetnucleonno-targetprotonno) +
238 *
masp*targetprotonno
239 ein2 = a%p%fm%p(4) +
masp 242 eout = eout + p(i)%fm%p(4)
250 if( abs(diff2) .lt. abs(diff1))
then 254 reldiff = (eout/ein -1.)
256 if( abs(reldiff) .gt. 0.02 )
then 260 if( abs(diff) .gt. abs(maxebreak(1)) )
then 262 maxebreak(2) = reldiff
265 if( abs(reldiff) .gt. abs(maxrelebreak(1)) )
then 266 maxrelebreak(1) = reldiff
267 maxrelebreak(2) = diff
270 sumediff = sumediff + diff
271 sumabsediff = sumabsediff + abs(diff)
290 integer nevent, ntevent
295 write(0,*)
"================= Warning: Ebreak =============" 296 write(0,*)
" event #=", nevent,
" 1ry Energy=", inci%p%fm%p(4)
297 write(0,*)
"incident(not 1ry) code=", a%p%code,
298 *
" subcode=", a%p%subcode,
" Ein~", a%p%fm%p(4)
299 write(0,*)
"Target(A,Z)=", targetnucleonno, targetprotonno
300 write(0,*)
"No. of generted particles =", n
301 write(0,*)
"Sum of outgoing ptcl Energy:Eout=", eout
302 write(0,*)
"dE=(Eout-Ein)=", diff,
" dE/Ein~",
304 write(0,*)
"(Eout-Ein)/1ryE=", diff/inci%p%fm%p(4)
305 write(0,*)
"Height=", a%pos%height,
" depth=",a%pos%depth/10.
306 write(0,*)
" where=", a%where,
" weight=", a%wgt
307 write(0,*)
"================================================" subroutine chookeabsorbw(a, n, p, Eout, diff)
subroutine chookeabsorbd(a, dE, info)
max ptcl codes in the kkaon
max ptcl codes in the kelec
subroutine chookeabsorbb(a, info)
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
max ptcl codes in the kneue
max ptcl codes in the kseethru ! subcode integer regptcl
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code knuc
max ptcl codes in the kneumu
subroutine cqeventno(num, cumnum)
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 chookeabsorb(a, b, dE, info)
This is called when Eabsorb != 0 and when a charged particle runs from a to b and deposits energy dE ...
subroutine chookeabsorbc(a, n, p, info)
subroutine chookeabsorbi(info)