2 #include "chookHybAS.f" 3 #include "../ctemplCeren.f" 12 #include "Zmanagerp.h" 47 write(msg, *)
'Skeleton is judged at obs.pos=',
Where 49 write(msg, *)
' Ngmin=',ngmin,
50 *
' SumEGmin=',sumegmin/1000.,
'TeV' 52 write(msg, *)
' Nhmin=',nhmin,
53 *
' SumEHmin=',sumehmin/1000.,
'TeV' 57 inquire(file=mskel(1:klena(mskel)), opened=opn, exist=ex)
60 call cerrormsg(
' already opened: starange', 0)
62 * append(1:klena(append)) .eq.
'append' )
then 63 open(mdev, file=mskel, form=
'unformatted',status=
'old')
64 call cerrormsg(
'skeleton node info. will be appended', 1)
71 * append(1:klena(append)) .ne.
'append' )
then 73 *
'Old skeleton node info. file exists', 1)
75 *
'but node info. will NOT be appended', 1)
77 open(mdev, file=mskel(1:klena(mskel)), form=
'unformatted',
83 open(wdev, file=wskel(1:klena(wskel)), form=
'unformatted',
109 type(
track)::incident
116 real*8 svEasWait, svEthin, kepn
121 kepn = incident.
p.fm.
p(4)
125 ethresh = kepn * waitratio
129 call csetemin(generate2, keminobs2, cutneg, cuteg)
137 eventno = eventno + 1
140 * sngl(obssites(i).pos.
depth),
149 1000
format(f10.3,i9,3i4,e15.5,3(1
x,f12.8))
171 #include "Zprivate.h" 183 common /testcos/sumg,
ng(20),
nth, eventno
185 integer ng, nth, EventNo
188 if( id .eq. 2 .and. atrack.
p.
code .ne.
kneumu .and.
191 if( np .gt. npmax)
then 193 *
'# of particles >NpMax in observation', 0)
195 o(np).
where = atrack.
where 199 o(np).atime = atrack.
t 200 o(np).
erg = atrack.
p.fm.
p(4)
202 o(np).
x = atrack.pos.
xyz.
r(1)
203 o(np).
y = atrack.pos.
xyz.
r(2)
204 o(np).wx =atrack.vec.w.
r(1)
205 o(np).wy =atrack.vec.w.
r(2)
206 o(np).wz =atrack.vec.w.
r(3)
209 if(
o(np).
code .le. 6 .and.
o(np).
code .ne. 3 )
then 215 * (
o(np).
x ), (
o(np).
y ) ,
220 959
format(3i3,f12.3,2f16.6,4(1
x,f12.8))
242 #include "Zmanagerp.h" 243 #include "Zprivate.h" 259 if(
o(i).
where .eq.
where)
then 262 sumeg = sumeg +
o(i).
erg 268 sumeh = sumeh +
o(i).
erg 276 memorize =(ng .ge. ngmin .and. sumeg .ge. sumegmin) .or.
277 * ( nh .ge. nhmin .and. sumeh .ge. sumehmin)
282 accepted = accepted + 1
296 #include "Zprivate.h" 303 write(msg,
'(i8, a)') accepted,
304 *
' events are memorized as skeleton' 306 call cerrormsg(
'their seeds are also memorized', 1)
346 h1 = trackbefmove.pos.
height- obssites(noofsites).pos.
height 347 h2 = movedtrack.pos.
height - obssites(noofsites).pos.
height 355 #include "Zprivate.h" 384 if(never .lt. 0)
then 387 pwork(1) = movedtrack.
p 394 if( movedtrack.
asflag .eq. 0 )
then 395 if( movedtrack.
p.fm.
p(4) .lt. ethresh )
then 403 if(movedtrack.
asflag .eq. -1)
then 418 #include "Zprivate.h" 444 #include "Zprivate.h" 472 #include "Zprivate.h" 521 ke = pwork(i).fm.
p(4) - pwork(i).
mass 523 * ke .ge. cuteg ) .or.
525 * ke .ge. cutneg ) )
then 527 if(flag .ne. -3)
then 528 if( ke .lt. keminobs)
then 538 if(nlow .eq. 0 )
return 540 p.posx = movedtrack.pos.
xyz.
r(1)
541 p.posy = movedtrack.pos.
xyz.
r(2)
542 p.posz = movedtrack.pos.
xyz.
r(3)
545 if( movedtrack.pos.
colheight .gt. 1.e36)
then 550 p.atime = movedtrack.
t 551 p.
where = movedtrack.
where 554 p.
erg = movedtrack.
p.fm.
p(4)
575 ke = pwork(i).fm.
p(4) - pwork(i).
mass 577 * ke .ge. cuteg ) .or.
579 * ke .ge. cutneg ) )
then 581 if(flag .eq. -3 .or. ke .lt. keminobs)
then 585 c.fm(1) = pwork(i).fm.
p(1)
586 c.fm(2) = pwork(i).fm.
p(2)
587 c.fm(3) = pwork(i).fm.
p(3)
588 c.fm(4) = pwork(i).fm.
p(4)
609 integer num, cumnum, irevent(2)
622 write(to) cumnum, num, irevent, zfirst
631 #include "Zprivate.h" 648 #include "Zprivate.h" 655 do while ( nlow .ge. 0 )
subroutine cgetfname(fnin, fn)
*Zfirst p fm *Zfirst p Zfirst p Zfirst p *Zfirst p *Zfirst pos xyz Zfirst pos xyz *Zfirst pos *Zfirst pos depth
subroutine cerrormsg(msg, needrtn)
subroutine cqincident(incident, AngleAtObs)
subroutine chookgint(never)
subroutine cputnodinfo(from, to)
dE dx *! Nuc Int sampling table e
*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 colheight
*Zfirst p fm *Zfirst p Zfirst p Zfirst p *Zfirst p *Zfirst pos xyz r
max ptcl codes in the kgnuc
subroutine cmemorize(from, to)
latitude latitude this system is used *****************************************************************! type coord sequence union map real z z in m endmap xyz map real ! latitude in deg is to the north ! longitude in deg is to the east *h ! height in m endmap llh map real ! polar angle ! azimuthal angle *radius ! radial distance endmap sph endunion character *sys ! which system xyz
max ptcl codes in the kelec
subroutine chooknepint(never)
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)
max ptcl codes in the kneue
subroutine cwriteparam(io, force)
subroutine csetemin(gen, eminob, emin, emCas)
********************block data cblkHeavy ********************integer j data *HeavyG2symbol p
subroutine cquhookr(i, rv)
*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 *Zfirst Zfirst Zfirst asflag
*Zfirst p fm *Zfirst p Zfirst p code
subroutine cmemonode(dev, flag)
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code knuc
max ptcl codes in the kneumu
*Zfirst p fm *Zfirst p Zfirst p Zfirst p *Zfirst p *Zfirst pos xyz Zfirst pos xyz *Zfirst pos *Zfirst pos Zfirst pos height
latitude latitude this system is used *****************************************************************! type coord sequence union map real y
subroutine cqeventno(num, cumnum)
*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
*Zfirst p fm *Zfirst p Zfirst p Zfirst p *Zfirst p charge
subroutine chookobs(aTrack, id)
subroutine cquhooki(i, iv)
*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 *Zfirst Zfirst where
subroutine cquhookc(i, cv)
*Zfirst p fm *Zfirst p mass
max ptcl codes in the kpion
subroutine chookeint(never)
! structure defining a particle at production ! Basic idea of what is to be contained in ! the particle structue is that dynamical ones should be included those derivable from the particle code ! is not included ******************************************************type fmom momentum sequence union map real e endmap map real * x
*Zfirst p fm *Zfirst p Zfirst p Zfirst p subcode
dE dx *! Nuc Int sampling table c