COSMOS v7.655  COSMOSv7655
(AirShowerMC)
chook.f
Go to the documentation of this file.
1 #include "../cmain.f"
2 #include "chookHybAS.f"
3 #include "../ctemplCeren.f"
4 ! *************************************** hook for Beginning of a Run
5 ! * At this moment, all (system-level) initialization for this run
6 ! * has been ended. After this routine is executed, the system goes into the
7 ! * event creation loop.
8 ! *
9  subroutine chookbgrun
10  implicit none
11 #include "Zmanagerp.h"
12 #include "Ztrack.h"
13 #include "Ztrackv.h"
14 
15 ! ///////////
16  integer nl, nth
17  parameter(nl = 20, nth=12)
18  common /testcos/x(1000), y(1000), erg(1000), eth(nth),
19  * ng(nth, nl), ne(nth, nl), nmu(nth, nl),
20  * nh(nth, nl), ntha, nnn
21  integer ng, ne, nmu, nh, ntha, nnn
22  real*8 eth, x, y, erg
23 ! //////////////
24 
25 ! If you feel writing the parameters on stderr is
26 ! a bother, comment out the next or
27 ! use other device than ErrorOut.
28 ! Also you may comment out all output routines below.
29 #ifdef sun4
30  external csighandler
31  integer ieeer, ieee_handler
32 
33  ieeer = ieee_handler('set', 'invalid', csighandler)
34 #endif
35 
36 !
37 ! namelist output
38  call cwriteparam(errorout, 0)
39 ! primary information
40  call cprintprim(errorout)
41 ! observation level information
42  call cprintobs(errorout)
43 
44  eth(1) = 0.3d-3
45  eth(2) = 0.5d-3
46  eth(3)= 1.d-3
47  eth(4) = 2.d-3
48  eth(5) = 5.d-3
49  eth(6) = 10.d-3
50  eth(7) = 20.d-3
51  eth(8)= 50.d-3
52  eth(9) = 100.d-3
53  eth(10) = 200.d-3
54  eth(11) = 500.d-3
55  eth(12) = 1.d0
56  open(14, file='SeedSave')
57 
58 ! ////////////
59  ntha = 1 ! for each ptcle out put use only 1 threshold
60 ! /////////////
61  end
62 #ifdef sun4
63  integer function csighandler(sig, code, context)
64  implicit none
65 #include "Zmanagerp.h"
66  integer sig, code, context(5)
67  write(errorout, *) ' f.p exception content=' , context(4)
68 ! call abort()
69  end
70 #endif
71 
72 ! *********************************** hook for Beginning of 1 event
73 ! * All system-level initialization for 1 event generation has been
74 ! * eneded at this moment.
75 ! * After this is executed, event generation starts.
76 ! *
77  subroutine chookbgevent
78  implicit none
79 #include "Zmanagerp.h"
80 #include "Ztrack.h"
81 #include "Ztrackv.h"
82 
83 ! ///////////
84  integer nl, nth
85  parameter(nl = 20, nth=12)
86  common /testcos/x(1000), y(1000), erg(1000), eth(nth),
87  * ng(nth, nl), ne(nth, nl), nmu(nth, nl),
88  * nh(nth, nl), ntha, nnn
89  integer ng, ne, nmu, nh, ntha, nnn
90  real*8 eth, x, y, erg
91 ! //////////////
92 
93 
94 
95 
96  type(track):: inci
97  type(coord):: angle
98 
99  integer nev
100 ! //////////////
101  integer i, j
102  integer seed(2)
103  do i = 1, nl
104  do j = 1, ntha
105  ng(j, i) = 0
106  ne(j, i) = 0
107  nh(j, i) = 0
108  nmu(j, i) = 0
109  enddo
110  enddo
111  nnn = 0
112 ! write(*, *)
113  call cqincident(inci, angle)
114  write(*,'(i7,i4,g13.4,i8)') eventno, inci.p.code, inci.p.fm.e,
115  * inci.p.subcode
116  end
117  subroutine ccount(nc, aTrack)
118  implicit none
119 #include "Zcode.h"
120 #include "Ztrack.h"
121 
122  type(track):: aTrack
123  integer i
124 ! ///////////
125  integer nl, nth
126  parameter(nl = 20, nth=12)
127  common /testcos/x(1000), y(1000), erg(1000), eth(nth),
128  * ng(nth, nl), ne(nth, nl), nmu(nth, nl),
129  * nh(nth, nl), ntha, nnn
130  integer ng, ne, nmu, nh, ntha, nnn
131  real*8 eth, x, y, erg
132 !
133  integer nc(nth, nl)
134 
135  do i = 1, ntha
136  if( atrack.p.fm.e- atrack.p.mass .lt. eth(i)) goto 10
137  nc(i, atrack.where) = nc(i, atrack.where) + 1
138  enddo
139  10 continue
140  end
141 ! ************************************ hook for observation
142 ! * One particel information is brought here by the system.
143 ! * All information of the particle is in aTrack
144 ! *
145  subroutine chookobs(aTrack, id)
146 !
147 ! Note that every real variable is in double precision so
148 ! that you may output it in sigle precision to save the memory.
149 ! In some cases it is essential to put it in sigle (say,
150 ! for gnuplot).
151 !
152  implicit none
153 #include "Zcode.h"
154 #include "Ztrack.h"
155 #include "Ztrackv.h"
156 #include "Zheavyp.h"
157  integer id ! input. 1 ==> aTrack is going out from
158 ! outer boundery.
159 ! 2 ==> reached at an observation level
160 ! 3 ==> reached at inner boundery.
161  type(track):: aTrack
162  type(track):: inci
163  type(coord):: angle, tetafai
164 ! integer i
165 ! ///////////
166 
167 ! ///////////
168  integer nl, nth
169  parameter(nl = 20, nth=12)
170  common /testcos/x(1000), y(1000), erg(1000), eth(nth),
171  * ng(nth, nl), ne(nth, nl), nmu(nth, nl),
172  * nh(nth, nl), ntha, nnn
173  integer ng, ne, nmu, nh, ntha, nnn
174  real*8 eth, x, y, erg
175 ! //////////////
176 
177  integer iij
178 
179 
180 
181 !
182 ! For id =2, you need not output the z value, because it is always
183 ! 0 (within the computational accuracy).
184 !
185 ! if(id .eq. 2 .and. aTrack.p.code .eq. kmuon ) then
186  if( id .eq. 2) then
187  call cqincident(inci, angle)
188  iij = atrack.p.code
189 ! call cgpid(iij, ptclid)
190  if(iij .eq. kelec ) then
191  call ccount(ne, atrack)
192  nnn = nnn + 1
193  x(nnn) = atrack.pos.xyz.x
194  y(nnn) = atrack.pos.xyz.y
195  erg(nnn) = atrack.p.fm.p(4)
196 ! ne(aTrack.where) = ne(aTrack.where) + 1
197  elseif(iij .eq. kphoton ) then
198  call ccount(ng, atrack)
199  nnn = nnn + 1
200  x(nnn) = atrack.pos.xyz.x
201  y(nnn) = atrack.pos.xyz.y
202  erg(nnn) = atrack.p.fm.p(4)
203 
204 ! ng(aTrack.where) = ng(aTrack.where) + 1
205  elseif(iij .eq. kmuon ) then
206  call ccount(nmu, atrack)
207 ! nmu(aTrack.where) = nmu(aTrack.where) + 1
208  elseif( iij .eq. kpion .or. iij .eq. kkaon .or.
209  * iij .eq. knuc) then
210  if(atrack.p.charge .ne. 0 ) then
211  call ccount(nh, atrack)
212 ! nh(aTrack.where) = nh(aTrack.where) + 1
213  endif
214  endif
215  endif
216 
217 ! output typical quantities.
218 ! id .eq. 2 below if want otuput
219 ! if(id .eq. 2 .and. aTrack.where .eq. 8 ) then
220 ! if(id .eq. 2 .and. aTrack.where .eq. 1 ) then
221  if(id .eq. 2 ) then
222 ! if(aTrack.p.code .ne. kneue .and. aTrack.p.code .ne.
223 ! * kneumu) then
224 ! write(*,*) aTrack.where, aTrack.p.code, aTrack.p.subcode,
225 ! * aTrack.p.charge,
226 ! * sngl(aTrack.p.fm.e-aTrack.p.mass)
227 ! * sngl(aTrack.vec.coszenith),
228 ! * sngl(inci.p.fm.p(4)-inci.p.mass)/
229 ! * Code2massN(int(inci.p.code)),
230 ! * inci.p.code
231 !
232 ! write(*, *)
233 ! * '(i2,1x,i2,1x,f12.2, g13.4, f12.2,1x, f12.2,1x,f7.4,i3)')
234 ! * nev,
235 ! * aTrack.where, ! observation level. integer*2. 1 is highest.
236 ! * aTrack.p.code, ! " ", ptclid, ! ptcl code. integer*2.
237 ! * aTrack.p.charge, ! charge, integer*2
238 ! * sngl(aTrack.t), ! relateive arrival time in nsec (NOT sec).
239 ! ! if TimeStructure is F, nonsense.
240 ! * sngl(aTrack.p.fm.e), ! - aTrack.p.mass), ! kinetic energy in GeV
241 ! * sngl(aTrack.pos.xyz.x), sngl(aTrack.pos.xyz.y), ! x, y, erg in m
242 ! * sngl(aTrack.vec.w.x), ! direc. cos.x in the current detector system.
243 ! * sngl(aTrack.vec.w.y), ! direc. cos.y
244 ! * sngl(aTrack.vec.w.z), ! direc. cos.z
245 ! * sngl(-angle.r(3)) ,
246 ! * sngl(aTrack.vec.coszenith), ! cos of zenith angle
247 ! * sngl(inci.p.fm.p(4)-inci.p.mass)/Code2massN(int(inci.p.code)),
248 ! * inci.p.code
249 ! if(aTrack.p.code .eq. kelec) then
250 ! write(*, *) aTrack.where
251 ! endif
252 ! endif
253 ! you may need in some case other information such as
254 ! * aTrack.p.subcode ! sub code of the particle integer*2
255 ! aTrack.p.mass ! mass
256 ! aTrack.wgt ! weight of the particle (may not be 1. if
257 ! ! ThinSampling =T)
258 ! aTrack.p.fm.x ! momentum x component. Note. Momentum is
259 ! given in the Earth xyz system.
260 
261 ! aTrack.p.fm.y ! y
262 ! aTrack.p.fm.z ! z
263 ! if(aTrack.p.code .eq. kelec .or. aTrack.p.code .eq. kphoton)
264 ! * then
265 ! ng = ng+1
266 ! sumg = sumg + aTrack.p.fm.e
267 
268 ! endif
269  endif
270  end
271 
272 ! *********************************** hook for end of 1 event
273 ! * At this moment, 1 event generation has been ended.
274 ! *
275  subroutine chookenevent
277  implicit none
278 #include "Ztrack.h"
279 #include "Ztrackv.h"
280 #include "Zobs.h"
281 #include "Zobsp.h"
282 #include "Zobsv.h"
283 
284 
285 
286 
287  type(track):: inci
288  type(coord):: angle, tetafai
289  integer i, j
290 
291 ! ///////////
292  integer nl, nth
293  parameter(nl = 20, nth=12)
294  common /testcos/x(1000), y(1000), erg(1000), eth(nth),
295  * ng(nth, nl), ne(nth, nl), nmu(nth, nl),
296  * nh(nth, nl), ntha, nnn
297  integer ng, ne, nmu, nh, ntha, nnn
298  real*8 eth, x, y, erg
299 ! //////////////
300 
301 
302 
303 ! ///////////
304  real*8 fdepth, bsin, teta, fai, sumsize
305  real*8 cgetBsin, sumx, sumy
306  real*8 avex, avey, sume
307  integer nnew
308 ! //////////////
309 ! call cqIncident(inci, angle)
310 ! write(*,*) inci.vec.coszenith, angle.r(3)
311 
312  if(observeas) then
313  call cqfirstid(fdepth)
314  fdepth = fdepth * 0.1 ! in g/cm2
315  call cqincident(inci, angle)
316  angle.r(1) = -angle.r(1) ! angle is directed to downward
317  angle.r(2) = -angle.r(2)
318  angle.r(3) = -angle.r(3)
319  call cecent2sph(angle, tetafai)
320  teta = tetafai.r(1)
321  fai = tetafai.r(2)
322  if(fai .lt. 0. ) fai = 360.d0+fai
323  bsin = cgetbsin(inci.p, mag)*1.e4
324 ! electron size in B approx.
325 ! write(*, *) (ASObsSites(i).esize, i=1, NoOfASSites)
326 ! size weighted age
327 ! write(*, *) (ASObsSites(i).age, i=1, NoOfASSites)
328  sumsize = 0.
329 ! write(*, *)
330  do j = 1, ntha
331  if(ntha .gt. 1) then
332 ! write(*,*) j
333  endif
334  do i = 1, noofassites
335  sumsize = sumsize + asobssites(i).esize
336  write(*, '(f7.1,g13.3,f8.3,f7.1,
337  * 4i8,f7.4)')
338 ! * f8.3, g13.3,f10.3,f10.3) ')
339 ! * sngl(ASObsSites(i).pos.depth/10./angle.r(3)),
340  * sngl(asobssites(i).pos.depth/10.),
341  * sngl(asobssites(i).esize),
342  * sngl(asobssites(i).age), sngl(fdepth),
343 ! * sngl(bsin), sngl(sumsize), sngl(teta), sngl(fai)
344  * ne(j, i), nmu(j, i), nh(j, i), ng(j, i), eth(j)
345  enddo
346  enddo
347  endif
348  do j = 1, 3
349  call cgetave(x, nnn, avex)
350  call cgetave(y, nnn, avey)
351  call cgetave(erg, nnn, sume)
352  sume = sume * nnn
353  if(nnn .ge. 4) then
354  sumx = 0.
355  do i = 1, nnn
356  x(i) = x(i) - avex
357  y(i) = y(i) - avey
358  sumx = sumx +sqrt(x(i)**2 + y(i)**2)
359  enddo
360  call cdropbig(x, y, nnn, 15.d-2, nnew)
361  if(nnew .eq. nnn) goto 100
362  nnn = nnew
363  else
364  goto 100
365  endif
366  enddo
367  100 continue
368  if(nnn .lt. 0) then
369  call cqincident(inci, angle)
370  call cqfirstid(fdepth)
371  fdepth = fdepth * 0.1 ! in g/cm2
372  write(*,*) sngl(avex*100.), sngl(avey*100.),
373  * sngl(sumx/nnn)*100., nnn, sngl(sume/1000.),
374  * inci.p.code, sngl(inci.p.fm.p(4)/1000.),
375  * sngl(-angle.r(3))
376  endif
377 ! write(*, *)
378  end
379  subroutine cdropbig(x, y, n, rmax, no)
380  implicit none
381  integer n, no
382  real*8 x(n), y(n), rmax
383  real*8 r
384  integer i
385  no =0
386  do i = 1, n
387  r = sqrt(x(i)**2 + y(i)**2)
388  if(r .le. rmax) then
389  no = no + 1
390  x(no)= x(i)
391  y(no) = y(i)
392  endif
393  enddo
394  end
395  subroutine cgetave(x, n, ave)
396  implicit none
397 
398  integer n
399  real*8 x(n)
400 
401  integer i
402  real*8 ave
403  ave = 0.
404  do i = 1, n
405  ave = ave + x(i)
406  enddo
407  if(n .gt. 1) then
408  ave = ave/n
409  endif
410  end
411 ! ********************************* hook for end of a run
412 ! * all events have been created or time lacks
413 ! *
414  subroutine chookenrun
416  implicit none
417  end
418 ! ********************************* hook for trace
419 ! * This is called only when trace > 100
420 ! * User should manage the trace information here.
421 ! * If you use this, you may need some output for trace
422 ! * at the beginning of 1 event generatio and at the end of 1 event
423 ! * generation so that you can identfy each event.
424 ! *
425 ! *
426  subroutine chooktrace
427  implicit none
428 
429 #include "Ztrack.h"
430 #include "Ztrackv.h"
431 #include "Ztrackp.h"
432 #include "Zobs.h"
433 #include "Zobsv.h"
434 
435  real*4 h1, h2
436 !
437 ! Every time a particle is moved in the atmosphere, this routine is called,
438 ! if trace > 100
439 ! For a one track segment,
440 ! TrackBefMove has track information at the beginning of the segment.
441 ! MoveTrack has track information at the end of the segment.
442 !
443 ! You can know the information a track contains in the
444 ! chookObs routine. (Note however, no conversion of coordinate
445 ! has been done. The values are in the Earth xyz system.)
446 ! Besides quantities explained there, you can use, for a given 'track'
447 !
448 ! atrack.pos.xyz.x, atrack.pos.xyz.y, atrack.pos.xyz.z (x,y.z)
449 ! atrack.pos.radiallen (distance from the center of the earth)
450 ! atrack.pos.depth (vertical depth)
451 ! atrack.pos.height (vertical heigth from sea level)
452 !
453 
454  h1 = trackbefmove.pos.height- obssites(noofsites).pos.height
455  h2 = movedtrack.pos.height - obssites(noofsites).pos.height
456 
457  end
458 
459 ! ********************* this is the hook called when
460 ! an electron made an interaction.
461 !
462  subroutine chookeint(never)
463  implicit none
464 
465 #include "Ztrack.h"
466 #include "Ztrackv.h"
467 ! #include "Ztrackp.h"
468 
469  integer never ! input & output
470 
471 ! don't make never = 1, if you want to get
472 ! information after an electron made interaction
473 ! if this is made non zero, this routine will never be called.
474 !
475 ! MovedTrack is the electron that made interaction
476 ! Pwork contains produced particles.
477 ! Nproduced has the number of particles in Pwork
478 ! IntInfArray(ProcessNo) contains the type of interaction
479 !
480 ! default setting
481  never = 1
482 !
483 ! IntInfArray(ProcessNo).process will have one of
484 ! 'brems', 'mscat', 'bscat', 'anihi' or 'mbrem'
485 !
486  end
487 
488 ! ********************* this is the hook called when
489 ! a gamma ray made an interaction.
490 !
491  subroutine chookgint(never)
492  implicit none
493 
494 #include "Ztrack.h"
495 #include "Ztrackv.h"
496 ! #include "Ztrackp.h"
497 
498  integer never ! input & output
499 
500 ! don't make never = 1, if you want to get
501 ! information after a gamma ray made interaction
502 ! if this is made non zero, this routine will never be called.
503 !
504 ! MovedTrack is the gamma that made interaction
505 ! Pwork contains produced particles.
506 ! Nproduced has the number of particles in Pwork
507 ! IntInfArray(ProcessNo) contains the type of interaction
508 !
509 ! default setting
510  never = 1
511 ! IntInfArray(ProcessNo).process will have one of
512 ! 'pair', 'comp', 'photoe' 'photop' 'mpair'
513 !
514  end
515 
516 ! ********************* this is the hook called when
517 ! non e-g particle made an interaction.
518 !
519  subroutine chooknepint(never)
520  implicit none
521 
522 
523 #include "Zcode.h"
524 #include "Ztrack.h"
525 #include "Ztrackv.h"
526 
527 ! #include "Ztrackp.h"
528 
529  integer never ! input & output
530 
531 ! don't make never = 1, if you want to get
532 ! information after a non-e-g particle made interaction
533 ! if this is made non zero, this routine will never be called.
534 !
535 ! MovedTrack is the particle that made interaction
536 ! Pwork contains produced particles.
537 ! Nproduced has the number of particles in Pwork
538 ! IntInfArray(ProcessNo) contains the type of interaction
539 !
540 ! default setting
541 !
542 ! never = 1
543  never = 1
544  if(movedtrack.p.code .eq. kpion .or.
545  * movedtrack.p.code .eq. kkaon) then
546  if(intinfarray(processno).process .eq. 'coll') then
547 ! write(*,*)
548 ! * MovedTrack.p.code,
549 ! * sngl(MovedTrack.p.fm.p(4)), Nproduced
550  endif
551  endif
552 !
553 ! IntInfArray(ProcessNo).process will have
554 ! 'col' or 'decay'
555  end
556 
557 
558 
559 
560 
561 
562 
integer npitbl real *nx parameter(n=101, npitbl=46, nx=n-1) real *8 uconst
*Zfirst p fm *Zfirst p Zfirst p Zfirst p *Zfirst p *Zfirst pos xyz Zfirst pos xyz *Zfirst pos *Zfirst pos depth
Definition: ZavoidUnionMap.h:1
subroutine cprintobs(io)
Definition: cprintObs.f:2
subroutine cqincident(incident, AngleAtObs)
Definition: cmkIncident.f:486
subroutine chookgint(never)
Definition: chook.f:191
dE dx *! Nuc Int sampling table e
Definition: cblkMuInt.h:130
others if is ng
Definition: cblkManager.h:9
subroutine cecent2sph(a, bb)
Definition: ceCent2sph.f:2
*Zfirst p fm *Zfirst p Zfirst p Zfirst p *Zfirst p *Zfirst pos xyz r
Definition: ZavoidUnionMap.h:1
! parameters for Elemag process(-> ---------------------------------------------- real *8 RecoilKineMinE !2 Recoil Kinetic Min Energy above which the recoil(=knock-on process) ! is treated. Below this energy, the effect is included as continuous ! energy loss. Used only if KnockOnRatio $>$ 1. ! If this is 0 or if KnockOnRatio=1, KEminObs(gamma)=KEminObs(elec) is used. ! See also KnockOnRatio. real *8 KnockOnRatio !2 KnockOnRatio *KEminoObs is used instead of RecoilKineMinE if KnockOnRatio $< $1. real *8 X0 !2 Radiation length in kg/m$^2$ for air. Normally the user should not touch this. real *8 Ecrit !2 Critical energy in GeV. \newline ! Employed only when calculating air shower size in the hybrid ! air shower generation. The value would be dependent on the ! experimental purpose. The default value, 81 MeV, is bit too ! small in many applications(The air shower size is overestimated). ! Comparisons of sizes by the hybrid method and by the full Monte ! Carlo tell that \newline ! $N_e$(full 3-D M.C) $< N_e$(hybrid AS with $E_c=81$ MeV) $< N_e$(full 1-D M.C) ! $ {\ \lower-1.2pt\vbox{\hbox{\rlap{$<$}\lower5pt\vbox{\hbox{$\sim$}}}}\ } ! N_e$(hybrid AS with $E_c={76}$ MeV) at around shower maximum. ! Hybrid AS is always essentially 1-D. logical Knockon !2 Obsolete. Don 't use this. See RecoilKineMinE ! and KnockonRatio. real *8 AnihiE !2 If E(positron) $<$ AnihiE, annihilation is considered. real *8 Es !2 Modified scattering constant. 19.3d-3 GeV real *8 MaxComptonE !2 Above this energy, Compton scattering is neglected. real *8 MaxPhotoE !2 Above this energy, photoelectric effect is neglected. real *8 MinPhotoProdE !1 Below this energy, no photo-prod of hadron. See also PhotoProd. logical PhotoProd !1 Switch. if .false., no photo prod. of hadron is considered at all. ! See also MinPhotoProdE, HowPhotoP real *8 Excom1 !2(GeV). If photon energy is<=Excom1, use XCOM data for ! compton/p.e/coherent scattering(must be< 100 GeV). real *8 Excom2 !2(GeV). If photon energy is<=Excom2, use XCOM data for ! pair creation cross-section.(must be< 100 GeV). integer Moliere !2 2$\rightarrow$ use Moliere scat.\newline ! 0$\rightarrow$ use Gaussian scattrign. \newline ! 1$\rightarrow$ use Moli\`ere scattering for non-electrons \newline ! 2$\rightarrow$ use Moli\`ere scattering for all charged ! particles. But treatment is not so rigorous as case of 3. ! \newline ! 3$\rightarrow$ use rigorus Moliere scattering. Diff. from 2 is verysmall. May be some effect in the ! core region. integer ALateCor !2 1$\rightarrow$ angular and lateral correlation is taken into account when Moliere=0 .\newline ! t$\rightarrow$ Use angular-lateral correlation by Gaussian ! approximation. No effect is seen if path length is short. !<-) ---------------------------------------------- common/Zelemagc/RecoilKineMinE
const int kphoton
Definition: Zcode.h:6
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
Definition: Zcoord.h:25
subroutine chookenrun
Definition: chook.f:147
Definition: Ztrack.h:44
int nmu[nl][nth]
Definition: Zprivate.h:12
max ptcl codes in the kkaon
Definition: Zcode.h:2
max ptcl codes in the kelec
Definition: Zcode.h:2
subroutine chooknepint(never)
Definition: chook.f:219
subroutine cprintprim(out)
Definition: cprintPrim.f:3
subroutine chookenevent
Definition: chook.f:116
int ne[nl][nth]
Definition: Zprivate.h:11
subroutine cwriteparam(io, force)
Definition: cwriteParam.f:4
********************block data cblkHeavy ********************integer j data *HeavyG2symbol p
Definition: cblkHeavy.h:7
subroutine ccount(nc, aTrack)
Definition: chook.f:115
*Zfirst p fm *Zfirst p Zfirst p code
Definition: ZavoidUnionMap.h:1
subroutine cqfirstid(depth)
Definition: ciniTracking.f:188
subroutine chooktrace
Definition: chook.f:275
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
Definition: cblkEvhnp.h:5
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code knuc
Definition: cblkHeavy.h:7
*Zfirst p fm *Zfirst p Zfirst p Zfirst p *Zfirst p *Zfirst pos xyz Zfirst pos xyz *Zfirst pos *Zfirst pos Zfirst pos height
Definition: ZavoidUnionMap.h:1
int ntha
Definition: Zprivate.h:14
integer function csighandler(sig, code, context)
Definition: chook.f:63
latitude latitude this system is used *****************************************************************! type coord sequence union map real y
Definition: Zcoord.h:25
dE dx *! Nuc Int sampling table d
Definition: cblkMuInt.h:130
float erg[maxp]
Definition: Zprivate.h:7
*Zfirst p fm *Zfirst p Zfirst p Zfirst p *Zfirst p charge
Definition: ZavoidUnionMap.h:1
subroutine chookobs(aTrack, id)
Definition: chook.f:59
subroutine chookbgevent
Definition: chook.f:39
int nh[nl][nth]
Definition: Zprivate.h:13
subroutine cdropbig(x, y, n, rmax, no)
Definition: chook.f:380
int nnn
Definition: Zprivate.h:15
*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
Definition: ZavoidUnionMap.h:1
Definition: Zcoord.h:43
*Zfirst p fm *Zfirst p mass
Definition: ZavoidUnionMap.h:1
subroutine chookbgrun
Definition: chook.f:15
max ptcl codes in the kpion
Definition: Zcode.h:2
float eth[nth]
Definition: Zprivate.h:8
max ptcl codes in the kmuon
Definition: Zcode.h:2
subroutine cgetave(x, n, ave)
Definition: chook.f:396
subroutine chookeint(never)
Definition: chook.f:162
! 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
Definition: Zptcl.h:21
*Zfirst p fm *Zfirst p Zfirst p Zfirst p subcode
Definition: ZavoidUnionMap.h:1