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

Go to the source code of this file.

Modules

module  modassize
 

Functions/Subroutines

subroutine chookbgrun
 
integer function csighandler (sig, code, context)
 
subroutine chookbgevent
 
subroutine chookobs (aTrack, id)
 
subroutine chookenevent
 
subroutine chookenrun
 
subroutine chooktrace
 
subroutine chookeint (never)
 
subroutine chookgint (never)
 
subroutine chooknepint (never)
 

Variables

integer, save nlayers =0
 
integer, save nev =0
 
integer, parameter nbinr =2*4
 
integer, save nthlayer =0
 
integer, parameter nkind =6
 
integer, parameter nbine =20*nkind
 
real(4), save bine =1./(nbinE/nkind)
 
real(4), save binr =1./(nbinR/4)
 
type(histogram2), dimension(nkind) erhist
 
type(histogram2), dimension(nkind) terhist
 
real(4), dimension(nkind), save eminhist
 
integer, parameter nemin =2
 
integer, parameter nkindtran =7
 
real(8), dimension(nkindtran, nemin), save emintran
 
real(8), dimension(:,:,:,:), allocatable, save num
 
real(8), dimension(:,:,:), allocatable, save pnnum
 
integer, parameter fno =21
 

Function/Subroutine Documentation

◆ chookbgevent()

subroutine chookbgevent ( )

Definition at line 141 of file chook.f.

References cqinirn(), modassize::erhist, modassize::nkind, modassize::num, and modassize::pnnum.

141  use modassize
142  implicit none
143 ! ///////////
144 #include "Ztrack.h"
145 #include "Zobs.h"
146 #include "Zobsv.h"
147 
148 
149  integer i
150 
151  integer seed(2)
152 ! write(*, *) ' bigin event generation'
153  call cqinirn(seed)
154 ! write(*,*) ' seed=', seed
155  ! clear the histogram area of this event
156  do i=1, nkind
157  call kwhistc2(erhist(i))
158  enddo
159 
160 ! clear the transtion counter of this event
161  num(:,:,:,:) = 0.
162  pnnum(:,:,:) = 0.
nodes i
real(8), dimension(:,:,:,:), allocatable, save num
Definition: chook.f:40
Definition: chook.f:7
integer, parameter nkind
Definition: chook.f:17
type(histogram2), dimension(nkind) erhist
Definition: chook.f:25
subroutine cqinirn(ir)
Definition: cwriteSeed.f:4
real(8), dimension(:,:,:), allocatable, save pnnum
Definition: chook.f:42
Here is the call graph for this function:

◆ chookbgrun()

subroutine chookbgrun ( )

Definition at line 52 of file chook.f.

References b, modassize::bine, modassize::binr, cprintobs(), cprintprim(), csighandler(), cwriteparam(), depth, modassize::eminhist, modassize::erhist, modassize::fno, kwhistso(), modassize::nbine, modassize::nbinr, modassize::nemin, modassize::nkind, modassize::nkindtran, modassize::nlayers, modassize::nthlayer, modassize::num, modassize::pnnum, and modassize::terhist.

52  use modassize
53  use modhistogram1
54  implicit none
55 #include "Zmanagerp.h"
56 #include "Ztrack.h"
57 #include "Ztrackv.h"
58 #include "Zobs.h"
59 #include "Zobsp.h"
60 #include "Zobsv.h"
61 
62 ! If you feel writing the parameters on stderr is
63 ! a bother, comment out the next or
64 ! use other device than ErrorOut.
65 ! Also you may comment out all output routines below.
66 
67  integer:: i
68 
69 #ifdef sun4
70  external csighandler
71  integer ieeer, ieee_handler
72 
73  ieeer = ieee_handler('set', 'invalid', csighandler)
74 #endif
75 
76 !
77 ! namelist output
78  call cwriteparam(errorout, 0)
79 ! primary information
80  call cprintprim(errorout)
81 ! observation level information
82  call cprintobs(errorout)
83  if(noofsites /= noofassites) then
84  write(0,*)
85  * '# of Depth and ASdepth in this appli. must be the same'
86  stop
87  endif
88  nlayers = noofsites
89  if( any( asobssites(1:nlayers).pos.depth /=
90  * obssites(1:nlayers).pos.depth ) ) then
91  write(0,*)
92  * 'Depth and ASDepth must be the same in this appli.'
93  stop
94  endif
95  if( nthlayer > nlayers ) then
96  write(0,*)' nthlayer > # of given depths=',nlayers
97  stop
98  elseif( nthlayer == 0 ) then
100  endif
101 
102 
103  open(fno, file='try.hist', form='formatted')
104  call kwhistso(1) ! ascii output
105  do i =1, nkind
106  ! instance of each ptcl class: kind
107  call kwhisti2(erhist(i),
108  * eminhist(i), bine, nbine, b'00011',
109  * 1.0, binr, nbinr, b'00001' )
110  call kwhisti2(terhist(i),
111  * eminhist(i), bine, nbine, b'00011',
112  * 1.0, binr, nbinr, b'00001' )
113  enddo
114  ! clear the histogram area for total events
115  do i=1, nkind
116  call kwhistc2(terhist(i))
117  enddo
118  ! counter for transition of nkindTran
119  allocate( num(nlayers, nemin, nkindtran, 2) )
120 
121 ! 2 is for p,n (pbar,nbar included); specially take
122  ! p and n tran. only down goingn
123  allocate(pnnum(nlayers, nemin, 2) )
*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
type(histogram2), dimension(nkind) terhist
Definition: chook.f:25
integer, parameter nbine
Definition: chook.f:19
nodes i
real(4), save binr
Definition: chook.f:23
real(8), dimension(:,:,:,:), allocatable, save num
Definition: chook.f:40
integer, save nlayers
Definition: chook.f:10
integer, parameter nkindtran
Definition: chook.f:32
integer, parameter nbinr
Definition: chook.f:12
subroutine cprintprim(out)
Definition: cprintPrim.f:3
integer, parameter nemin
Definition: chook.f:31
subroutine cwriteparam(io, force)
Definition: cwriteParam.f:4
void kwhistso(int binw)
integer, save nthlayer
Definition: chook.f:16
Definition: chook.f:7
integer, parameter nkind
Definition: chook.f:17
integer function csighandler(sig, code, context)
Definition: chook.f:63
real(4), save bine
Definition: chook.f:22
type(histogram2), dimension(nkind) erhist
Definition: chook.f:25
real(4), dimension(nkind), save eminhist
Definition: chook.f:27
real(4), save b
Definition: cNRLAtmos.f:21
real(8), dimension(:,:,:), allocatable, save pnnum
Definition: chook.f:42
integer, parameter fno
Definition: chook.f:43
Here is the call graph for this function:

◆ chookeint()

subroutine chookeint ( integer  never)

Definition at line 492 of file chook.f.

492  use modassize
493  implicit none
494 
495 #include "Ztrack.h"
496 #include "Ztrackv.h"
497 ! #include "Ztrackp.h"
498 
499  integer never ! input & output
500 
501 ! don't make never = 1, if you want to get
502 ! information after an electr.on made interaction
503 ! if this is made non zero, this routine will never be called.
504 !
505 ! MovedTrack is the electron that made interaction
506 ! Pwork contains produced particles.
507 ! Nproduced has the number of particles in Pwork
508 ! IntInfArray(ProcessNo) contains the type of interaction
509 !
510 ! default setting
511  never = 1
512 ! never = 2: same as 0
513 ! = 3: discard all the child of this (but not other ptcls)
514 ! = 4: discard the event
515 !
516 ! IntInfArray(ProcessNo).process will have one of
517 ! 'brems', 'mscat', 'bscat', 'anihi' or 'mbrem'
518 !
Definition: chook.f:7

◆ chookenevent()

subroutine chookenevent ( )

Definition at line 277 of file chook.f.

References depth, modassize::erhist, height, modassize::nemin, modassize::nev, modassize::nkind, modassize::nlayers, modassize::num, modassize::pnnum, and modassize::terhist.

277  use modassize
278  implicit none
279 #include "Ztrack.h"
280 #include "Ztrackv.h"
281 #include "Zobs.h"
282 #include "Zobsp.h"
283 #include "Zobsv.h"
284 
285 
286 
287 
288  integer:: i, j
289 
290  nev= nev + 1
291  do i = 1, nkind
292  if( nev == 1 ) then
293  terhist(i) = erhist(i)
294  else
295  call kwhista2(terhist(i), erhist(i), terhist(i)) ! accumulation
296  endif
297  enddo
298 
299 !----------transition: Num; Emin matter
300  do i = 1, nlayers
301  do j = nemin-1, 1, -1
302  num(i, j, :, :) = num(i, j, :, :) + num(i,j+1,:,:)
303  pnnum(i, j, :) =pnnum(i,j,1) + pnnum(i, j+1, :)
304  enddo
305  enddo
306 
307  if(observeas) then
308 ! electron size in B approx and size weighted age
309  ! counter for transition of nkindTran
310  ! Num(Nlayers, nEmin, nkindTran, 2)
311  write(*,'(a)')
312  * "# id L v dep H age Nehyb Ne1 Ne2"
313  do i = 1, nlayers
314  write(*, '(a, i2, f8.1, f8.0, f5.2, 1p, 3g12.5)')
315  * "Ne ", i, obssites(i).pos.depth/10.,
316  * obssites(i).pos.height, asobssites(i).age,
317  * asobssites(i).esize, num(i, 1, 2, 1), num(i, 2, 2, 1)
318  enddo
319  endif
320 !-----------n,p
321  write(*,'(a)')
322  * "# id L v dep H Np1 Nn1 "//
323  * " Np2 Nn2"
324  do i = 1, nlayers
325  write(*,'(a, i2, f8.1, f8.0, 1p, 4g12.5)')
326  * "Np/n ", i, obssites(i).pos.depth/10.,
327  * obssites(i).pos.height, pnnum(i, 1, 1), pnnum(i,1, 2),
328  * pnnum(i, 2, 2), pnnum(i, 2, 2)
329  enddo
330 !------------- g tran
331  write(*,'(a)' )
332  * "# id L v dep H Ngd1 Ngu1 "//
333  * " Ngd2 Ngu2"
334  do i = 1, nlayers
335  write(*,'(a, i2, f8.1, f8.0, 1p, 4g12.5)')
336  * " Ng ", i, obssites(i).pos.depth/10.,
337  * obssites(i).pos.height,
338  * num(i, 1, 1, 1), num(i, 1, 1, 2),
339  * num(i, 2, 1, 1), num(i, 2, 1, 2)
340  enddo
341 
342 !------------- e tran
343  write(*,'(a)' )
344  * "# id L v dep H Ned1 Neu1 "//
345  * " Ned2 Neu2"
346  do i = 1, nlayers
347  write(*,'(a, i2, f8.1, f8.0, 1p, 4g12.5)')
348  * " Ne ", i, obssites(i).pos.depth/10.,
349  * obssites(i).pos.height,
350  * num(i, 1, 2, 1), num(i, 1, 2, 2),
351  * num(i, 2, 2, 1), num(i, 2, 2, 2)
352  enddo
353 
354  !------------- mu tran
355  write(*,'(a)' )
356  * "# id L v dep H Nmd1 Nmu1 "//
357  * " Nmd2 Nmu2"
358  do i = 1, nlayers
359  write(*,'(a, i2, f8.1, f8.0, 1p, 4g12.5)')
360  * "Nmu ", i, obssites(i).pos.depth/10.,
361  * obssites(i).pos.height,
362  * num(i, 1, 3, 1), num(i, 1, 3, 2),
363  * num(i, 2, 3, 1), num(i, 2, 3, 2)
364  enddo
365 
366 !------------- had tran
367  write(*,'(a)' )
368  * "# id L v dep H Nhd1 Nhu1 "//
369  * " Nhd2 Nhu2"
370  do i = 1, nlayers
371  write(*,'(a, i2, f8.1, f8.0, 1p, 4g12.5)')
372  * " Nh ", i, obssites(i).pos.depth/10.,
373  * obssites(i).pos.height,
374  * num(i, 1, 4, 1), num(i, 1, 4, 2),
375  * num(i, 2, 4, 1), num(i, 2, 4, 2)
376  enddo
377 
378  !------------- nue tran
379  write(*,'(a)' )
380  * "# id L v dep H Nned1 Nneu1 "//
381  * " Nned2 Nneu2"
382  do i = 1, nlayers
383  write(*,'(a, i2, f8.1, f8.0, 1p, 4g12.5)')
384  * "Nnue ", i, obssites(i).pos.depth/10.,
385  * obssites(i).pos.height,
386  * num(i, 1, 5, 1), num(i, 1, 5, 2),
387  * num(i, 2, 5, 1), num(i, 2, 5, 2)
388  enddo
389 
390 
391 !------------- numu tran
392  write(*,'(a)' )
393  * "# id L v dep H Nnmd1 Nnmu1 "//
394  * " Nnmd2 Nnmu2"
395  do i = 1, nlayers
396  write(*,'(a, i2, f8.1, f8.0, 1p, 4g12.5)')
397  * "Nnum ", i, obssites(i).pos.depth/10.,
398  * obssites(i).pos.height,
399  * num(i, 1, 6, 1), num(i, 1, 6, 2),
400  * num(i, 2, 6, 1), num(i, 2, 6, 2)
401  enddo
402 
403 
404  !------------- numu tran
405  write(*,'(a)' )
406  * "# id L v dep H Nod1 Nou1 "//
407  * " Nod2 Nou2"
408 
409  do i = 1, nlayers
410  write(*,'(a, i2, f8.1, f8.0, 1p, 4g12.5)')
411  * "Noth ", i, obssites(i).pos.depth/10.,
412  * obssites(i).pos.height,
413  * num(i, 1, 7, 1), num(i, 1, 7, 2),
414  * num(i, 2, 7, 1), num(i, 2, 7, 2)
415  enddo
416 
417 ! separator
418  write(*, *)
419 
*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
type(histogram2), dimension(nkind) terhist
Definition: chook.f:25
nodes i
real(8), dimension(:,:,:,:), allocatable, save num
Definition: chook.f:40
integer, save nlayers
Definition: chook.f:10
integer, parameter nemin
Definition: chook.f:31
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code kiron data j
Definition: cblkHeavy.h:36
Definition: chook.f:7
integer, parameter nkind
Definition: chook.f:17
*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
type(histogram2), dimension(nkind) erhist
Definition: chook.f:25
real(8), dimension(:,:,:), allocatable, save pnnum
Definition: chook.f:42
integer, save nev
Definition: chook.f:11

◆ chookenrun()

subroutine chookenrun ( )

Definition at line 427 of file chook.f.

427  use modassize
428  implicit none
Definition: chook.f:7

◆ chookgint()

subroutine chookgint ( integer  never)

Definition at line 525 of file chook.f.

525  use modassize
526  implicit none
527 
528 #include "Ztrack.h"
529 #include "Ztrackv.h"
530 ! #include "Ztrackp.h"
531 
532  integer never ! input & output
533 
534 ! don't make never = 1, if you want to get
535 ! information after a gamma ray made interaction
536 ! if this is made non zero, this routine will never be called.
537 !
538 ! MovedTrack is the gamma that made interaction
539 ! Pwork contains produced particles.
540 ! Nproduced has the number of particles in Pwork
541 ! IntInfArray(ProcessNo) contains the type of interaction
542 !
543 ! default setting
544  never = 1
545 ! never = 2: same as 0
546 ! = 3: discard all the child of this (but not other ptcls)
547 ! = 4: discard the event
548 
549 ! IntInfArray(ProcessNo).process will have one of
550 ! 'pair', 'comp', 'photoe' ,'photop' or 'mpair'
551 
552 !
Definition: chook.f:7

◆ chooknepint()

subroutine chooknepint ( integer  never)

Definition at line 559 of file chook.f.

559  use modassize
560  implicit none
561 
562 #include "Ztrack.h"
563 #include "Ztrackv.h"
564 ! #include "Ztrackp.h"
565 
566  integer never ! input & output
567 
568 ! don't make never = 1, if you want to get
569 ! information after a non-e-g particle made interaction
570 ! if this is made non zero, this routine will never be called.
571 !
572 ! MovedTrack is the particle that made interaction
573 ! Pwork contains produced particles.
574 ! Nproduced has the number of particles in Pwork
575 ! IntInfArray(ProcessNo) contains the type of interaction
576 !
577 ! default setting
578  never = 1
579 ! never = 2: if proton is the current particle, give 2
580 ! if you make a hybrid air shower from that and
581 ! want to discard that proton.
582 ! = 3: discard all the child of this (but not other ptcls)
583 ! = 4: discard the event
584 
585 !
586 ! IntInfArray(ProcessNo).process will have
587 ! 'col' or 'decay'
Definition: chook.f:7

◆ chookobs()

subroutine chookobs ( type(track aTrack,
integer  id 
)

Definition at line 171 of file chook.f.

References charge, code, coszenith, modassize::emintran, modassize::erhist, mass, modassize::nemin, modassize::nthlayer, modassize::num, p, modassize::pnnum, wgt, x, xyz, and y.

171 !
172 ! Note that every real variable is in double precision so
173 ! that you may output it in sigle precision to save the memory.
174 ! In some cases it is essential to put it in sigle (say,
175 ! for gnuplot).
176 !
177  use modassize
178  implicit none
179 #include "Zcode.h"
180 #include "Ztrack.h"
181  integer id ! input. 1 ==> aTrack is going out from
182 ! outer boundery.
183 ! 2 ==> reached at an observation level
184 ! 3 ==> reached at inner boundery.
185  type(track)::atrack
186 
187  integer:: kind, updw, iemin, kindtran
188  real(4)::ke,r
189 !
190 ! For id =2, you need not output the z value, because it is always
191 ! 0 (within the computational accuracy).
192 !
193  if(id .eq. 2) then
194 ! output typical quantities.
195 ! write(*, *)
196 ! * aTrack.where, ! observation level. integer*2. 1 is highest.
197 ! * aTrack.p.code, ! ptcl code. integer*2.
198 ! * aTrack.p.charge, ! charge, integer*2
199 ! * sngl(aTrack.t), ! relateive arrival time in nsec (NOT sec).
200 !c ! if TimeStructure is F, nonsense.
201 ! * sngl(aTrack.p.fm.e), ! total energy in GeV.
202 ! * sngl(aTrack.pos.xyz.x), sngl(aTrack.pos.xyz.y), ! x, y in m
203 !c * sngl(aTrack.vec.w.x), ! direc. cos.x in the current detector system.
204 !c * sngl(aTrack.vec.w.y), ! direc. cos.y
205 !c * sngl(aTrack.vec.w.z), ! direc. cos.z
206 ! * sngl(aTrack.vec.coszenith) ! cos of zenith angle
207 !c if(aTrack.p.code .eq. kelec) then
208 ! write(*, *) aTrack.where
209 ! endif
210 ! endif
211 ! you may need in some case other information such as
212 ! aTrack.p.subcode ! sub code of the particle integer*2
213 ! aTrack.p.mass ! mass
214 ! aTrack.wgt ! weight of the particle (may not be 1. if
215 ! ! ThinSampling = T)
216 ! aTrack.p.fm.x ! momentum x component. Note. Momentum is
217 ! given in the Earth xyz system.
218 
219 ! aTrack.p.fm.y ! y
220 ! aTrack.p.fm.z ! z
221  kind=atrack.p.code
222 
223  ke = atrack.p.fm.p(4) - atrack.p.mass
224  do iemin = nemin, 1, -1
225  if( ke >= emintran(min(kind,9),iemin) ) goto 10
226  enddo
227  iemin= 0
228  10 continue
229  if( iemin > 0 ) then
230  if( kind == 6 .and. atrack.vec.coszenith >0.) then
231  ! p,n (or pbar,nbar)
232  if( atrack.p.charge == 0 ) then
233  pnnum(atrack.where, iemin, 2) =
234  * pnnum(atrack.where, iemin, 2) + atrack.wgt
235  else
236  pnnum(atrack.where, iemin, 1) =
237  * pnnum(atrack.where, iemin, 1) + atrack.wgt
238  endif
239  endif
240  if( kind <= 3 ) then
241  kindtran= kind
242  elseif(kind >= 4 .and. kind <=6 .or. kind == 9 ) then
243  kindtran = 4 ! pi,K, n,A
244  elseif( kind == 7 ) then
245  kindtran = 5 ! 7,8 neue
246  elseif( kind ==8 ) then
247  kindtran = 6 ! 8 neumu
248  elseif(kind > 8) then
249  kindtran = 7 ! others
250  endif
251  if(atrack.vec.coszenith > 0.) then
252  updw = 1
253  else
254  updw = 2
255  endif
256 
257  num(atrack.where, iemin, kindtran, updw) =
258  * num(atrack.where, iemin, kindtran, updw) + atrack.wgt
259  endif
260 !-------
261  if( atrack.where == nthlayer ) then
262  if(atrack.vec.coszenith > 0.) then
263  if(kindtran < 7 ) then
264  r = sqrt(atrack.pos.xyz.x**2 + atrack.pos.xyz.y**2)
265  call kwhist2( erhist(kindtran), ke, r,
266  * sngl(atrack.wgt) )
267  endif
268  endif
269  endif
270  endif
*Zfirst p fm *Zfirst p Zfirst p Zfirst p *Zfirst p *Zfirst pos xyz r
Definition: ZavoidUnionMap.h:1
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
real(8), dimension(:,:,:,:), allocatable, save num
Definition: chook.f:40
integer, parameter nemin
Definition: chook.f:31
********************block data cblkHeavy ********************integer j data *HeavyG2symbol p
Definition: cblkHeavy.h:7
integer, save nthlayer
Definition: chook.f:16
*Zfirst p fm *Zfirst p Zfirst p code
Definition: ZavoidUnionMap.h:1
Definition: chook.f:7
integer maxn LabEquivE real * ke(maxn) integer indx(maxn) integer nevent integer outzero
latitude latitude this system is used *****************************************************************! type coord sequence union map real y
Definition: Zcoord.h:25
*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
Definition: ZavoidUnionMap.h:1
*Zfirst p fm *Zfirst p Zfirst p Zfirst p *Zfirst p charge
Definition: ZavoidUnionMap.h:1
type(histogram2), dimension(nkind) erhist
Definition: chook.f:25
real(8), dimension(nkindtran, nemin), save emintran
Definition: chook.f:35
real(8), dimension(:,:,:), allocatable, save pnnum
Definition: chook.f:42
*Zfirst p fm *Zfirst p mass
Definition: ZavoidUnionMap.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 wgt
Definition: ZavoidUnionMap.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

◆ chooktrace()

subroutine chooktrace ( )

Definition at line 439 of file chook.f.

439  use modassize
440  implicit none
441 
442 #include "Ztrack.h"
443 #include "Ztrackv.h"
444 #include "Ztrackp.h"
445 #include "Zobs.h"
446 #include "Zobsv.h"
447 #include "Zcode.h"
448  type(coord)::f
449  type(coord)::t
450  logical compress/.true./
451  save compress
452 
453 
454 ! real*4 h1, h2
455 !
456 ! If trace > 100.
457 ! every time a particle is moved in the atmosphere, this routine is called.
458 !
459 ! For a one track segment,
460 ! TrackBefMove has track information at the beginning of the segment.
461 ! MoveTrack has track information at the end of the segment.
462 !
463 ! You can know the information a track contains in the
464 ! chookObs routine. (Note however, no conversion of coordinate
465 ! has been done. The values are in the Earth xyz system.)
466 ! Besides quantities explained there, you can use, for a given 'track'
467 !
468 ! atrack.pos.xyz.x, atrack.pos.xyz.y, atrack.pos.xyz.z (x,y.z)
469 ! atrack.pos.radiallen (distance from the center of the earth)
470 ! atrack.pos.depth (vertical depth)
471 ! atrack.pos.height (vertical heigth from sea level)
472 !
473 
474 ! h1 = TrackBefMove.pos.height- ObsSites(NoOfSites).pos.height
475 ! h2 = MovedTrack.pos.height - ObsSites(NoOfSites).pos.height
476 ! This example here is to put only muons with the same format
477 ! the standard trace infomation. Trace-100 is treated as
478 ! the standard Trace value.
479 ! 'compress' is to indicate compressed output.
480 !
481 ! if(TrackBefMove.p.code .eq. kmuon) then
482 ! call ccoordForTr(Trace-100, f, t) ! convert coordinate
483 ! call cwrtTrInfo(compress, f, t) ! write trace data
484 ! endif
485 
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
Definition: cblkElemag.h:7
Definition: chook.f:7
nodes t
Definition: Zcoord.h:43
dE dx *! Nuc Int sampling table f
Definition: cblkMuInt.h:130

◆ csighandler()

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

Definition at line 127 of file chook.f.

127  implicit none
128 #include "Zmanagerp.h"
129  integer sig, code, context(5)
130  write(errorout, *) ' f.p exception content=' , context(4)
131 ! call abort()
*Zfirst p fm *Zfirst p Zfirst p code
Definition: ZavoidUnionMap.h:1