COSMOS v7.655  COSMOSv7655
(AirShowerMC)
chook.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine chookbgrun
 
integer function csighandler (sig, code, context)
 
subroutine chookbgevent
 
subroutine ccount (nc, aTrack)
 
subroutine chookobs (aTrack, id)
 
subroutine chookenevent
 
subroutine cdropbig (x, y, n, rmax, no)
 
subroutine cgetave (x, n, ave)
 
subroutine chookenrun
 
subroutine chooktrace
 
subroutine chookeint (never)
 
subroutine chookgint (never)
 
subroutine chooknepint (never)
 

Function/Subroutine Documentation

◆ ccount()

subroutine ccount ( integer, dimension(nth, nl nc,
type(track aTrack 
)

Definition at line 118 of file chook.f.

References e, erg, eth, mass, ne, ng, nh, nmu, nnn, ntha, p, parameter(), where, x, and y.

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
integer npitbl real *nx parameter(n=101, npitbl=46, nx=n-1) real *8 uconst
dE dx *! Nuc Int sampling table e
Definition: cblkMuInt.h:130
others if is ng
Definition: cblkManager.h:9
nodes i
Definition: Ztrack.h:44
int nmu[nl][nth]
Definition: Zprivate.h:12
!onst int nth
Definition: Zprivate.h:2
int ne[nl][nth]
Definition: Zprivate.h:11
********************block data cblkHeavy ********************integer j data *HeavyG2symbol p
Definition: cblkHeavy.h:7
int ntha
Definition: Zprivate.h:14
latitude latitude this system is used *****************************************************************! type coord sequence union map real y
Definition: Zcoord.h:25
float erg[maxp]
Definition: Zprivate.h:7
int nh[nl][nth]
Definition: Zprivate.h:13
int nnn
Definition: Zprivate.h:15
!onst int nl
Definition: Zprivate.h:1
*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
real cut integer nc
Definition: Zprivate.h:1
*Zfirst p fm *Zfirst p mass
Definition: ZavoidUnionMap.h:1
float eth[nth]
Definition: Zprivate.h:8
! 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
Here is the call graph for this function:

◆ cdropbig()

subroutine cdropbig ( real*8, dimension(n x,
real*8, dimension(n y,
integer  n,
real*8  rmax,
integer  no 
)

Definition at line 380 of file chook.f.

Referenced by chookenevent().

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
*Zfirst p fm *Zfirst p Zfirst p Zfirst p *Zfirst p *Zfirst pos xyz r
Definition: ZavoidUnionMap.h:1
nodes i
latitude latitude this system is used *****************************************************************! type coord sequence union map real y
Definition: Zcoord.h:25
integer n
Definition: Zcinippxc.h:1
! 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
Here is the caller graph for this function:

◆ cgetave()

subroutine cgetave ( real*8, dimension(n x,
integer  n,
real*8  ave 
)

Definition at line 396 of file chook.f.

Referenced by chookenevent().

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
nodes i
integer n
Definition: Zcinippxc.h:1
! 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
Here is the caller graph for this function:

◆ chookbgevent()

subroutine chookbgevent ( )

Definition at line 78 of file chook.f.

References code, cqincident(), e, erg, eth, ne, ng, nh, nmu, nnn, ntha, p, parameter(), subcode, x, and y.

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
integer npitbl real *nx parameter(n=101, npitbl=46, nx=n-1) real *8 uconst
subroutine cqincident(incident, AngleAtObs)
Definition: cmkIncident.f:486
dE dx *! Nuc Int sampling table e
Definition: cblkMuInt.h:130
others if is ng
Definition: cblkManager.h:9
nodes i
Definition: Ztrack.h:44
int nmu[nl][nth]
Definition: Zprivate.h:12
!onst int nth
Definition: Zprivate.h:2
int ne[nl][nth]
Definition: Zprivate.h:11
********************block data cblkHeavy ********************integer j data *HeavyG2symbol p
Definition: cblkHeavy.h:7
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code kiron data j
Definition: cblkHeavy.h:36
*Zfirst p fm *Zfirst p Zfirst p code
Definition: ZavoidUnionMap.h:1
int ntha
Definition: Zprivate.h:14
latitude latitude this system is used *****************************************************************! type coord sequence union map real y
Definition: Zcoord.h:25
float erg[maxp]
Definition: Zprivate.h:7
int nh[nl][nth]
Definition: Zprivate.h:13
int nnn
Definition: Zprivate.h:15
!onst int nl
Definition: Zprivate.h:1
Definition: Zcoord.h:43
float eth[nth]
Definition: Zprivate.h:8
! 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
Here is the call graph for this function:

◆ chookbgrun()

subroutine chookbgrun ( )

Definition at line 10 of file chook.f.

References cprintobs(), cprintprim(), csighandler(), cwriteparam(), d, d0, erg, eth, ne, ng, nh, nmu, nnn, ntha, parameter(), x, and y.

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 ! /////////////
integer npitbl real *nx parameter(n=101, npitbl=46, nx=n-1) real *8 uconst
subroutine cprintobs(io)
Definition: cprintObs.f:2
others if is ng
Definition: cblkManager.h:9
int nmu[nl][nth]
Definition: Zprivate.h:12
subroutine cprintprim(out)
Definition: cprintPrim.f:3
!onst int nth
Definition: Zprivate.h:2
int ne[nl][nth]
Definition: Zprivate.h:11
subroutine cwriteparam(io, force)
Definition: cwriteParam.f:4
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
Definition: cblkEvhnp.h:5
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
int nh[nl][nth]
Definition: Zprivate.h:13
int nnn
Definition: Zprivate.h:15
!onst int nl
Definition: Zprivate.h:1
float eth[nth]
Definition: Zprivate.h:8
! 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
Here is the call graph for this function:

◆ chookeint()

subroutine chookeint ( integer  never)

Definition at line 463 of file chook.f.

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 !

◆ chookenevent()

subroutine chookenevent ( )

Definition at line 276 of file chook.f.

References cdropbig(), cecent2sph(), cgetave(), code, cqfirstid(), cqincident(), d, d0, depth, erg, eth, ne, ng, nh, nmu, nnn, ntha, p, parameter(), r, x, and y.

276 
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(*, *)
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 cqincident(incident, AngleAtObs)
Definition: cmkIncident.f:486
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
nodes i
Definition: Ztrack.h:44
int nmu[nl][nth]
Definition: Zprivate.h:12
!onst int nth
Definition: Zprivate.h:2
int ne[nl][nth]
Definition: Zprivate.h:11
********************block data cblkHeavy ********************integer j data *HeavyG2symbol p
Definition: cblkHeavy.h:7
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code kiron data j
Definition: cblkHeavy.h:36
*Zfirst p fm *Zfirst p Zfirst p code
Definition: ZavoidUnionMap.h:1
subroutine cqfirstid(depth)
Definition: ciniTracking.f:188
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
Definition: cblkEvhnp.h:5
real *8 function cgetbsin(aPtcl, mag)
Definition: cgetBsin.f:5
real * sume
Definition: Zprivate.h:1
int ntha
Definition: Zprivate.h:14
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
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
!onst int nl
Definition: Zprivate.h:1
Definition: Zcoord.h:43
float eth[nth]
Definition: Zprivate.h:8
subroutine cgetave(x, n, ave)
Definition: chook.f:396
! 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
Here is the call graph for this function:

◆ chookenrun()

subroutine chookenrun ( )

Definition at line 415 of file chook.f.

415 
416  implicit none

◆ chookgint()

subroutine chookgint ( integer  never)

Definition at line 492 of file chook.f.

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 !

◆ chooknepint()

subroutine chooknepint ( integer  never)

Definition at line 520 of file chook.f.

References code, kkaon, kpion, p, and process().

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'
! 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
max ptcl codes in the kkaon
Definition: Zcode.h:2
********************block data cblkHeavy ********************integer j data *HeavyG2symbol p
Definition: cblkHeavy.h:7
*Zfirst p fm *Zfirst p Zfirst p code
Definition: ZavoidUnionMap.h:1
max ptcl codes in the kpion
Definition: Zcode.h:2
Here is the call graph for this function:

◆ chookobs()

subroutine chookobs ( type(track aTrack,
integer  id 
)

Definition at line 146 of file chook.f.

References ccount(), charge, code, cqincident(), erg, eth, kelec, kkaon, kmuon, knuc, kphoton, kpion, ne, ng, nh, nmu, nnn, ntha, p, parameter(), x, xyz, and y.

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
integer npitbl real *nx parameter(n=101, npitbl=46, nx=n-1) real *8 uconst
subroutine cqincident(incident, AngleAtObs)
Definition: cmkIncident.f:486
others if is ng
Definition: cblkManager.h:9
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
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
!onst int nth
Definition: Zprivate.h:2
int ne[nl][nth]
Definition: Zprivate.h:11
********************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
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code knuc
Definition: cblkHeavy.h:7
int ntha
Definition: Zprivate.h:14
latitude latitude this system is used *****************************************************************! type coord sequence union map real y
Definition: Zcoord.h:25
float erg[maxp]
Definition: Zprivate.h:7
*Zfirst p fm *Zfirst p Zfirst p Zfirst p *Zfirst p charge
Definition: ZavoidUnionMap.h:1
int nh[nl][nth]
Definition: Zprivate.h:13
int nnn
Definition: Zprivate.h:15
!onst int nl
Definition: Zprivate.h:1
Definition: Zcoord.h:43
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
! 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
Here is the call graph for this function:

◆ chooktrace()

subroutine chooktrace ( )

Definition at line 427 of file chook.f.

References height.

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 
*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

◆ csighandler()

integer function csighandler ( integer  sig,
integer  code,
integer, dimension(5)  context 
)

Definition at line 64 of file chook.f.

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()
*Zfirst p fm *Zfirst p Zfirst p code
Definition: ZavoidUnionMap.h:1