COSMOS v7.655  COSMOSv7655
(AirShowerMC)
chook.f
Go to the documentation of this file.
1 ! take energy spectrum of e, g, mu, had, neumu, neue
2 ! at different depths (going down and going up)
3 ! parametarizing by r
4 #include "cmain.f"
5 #include "chookHybAS.f"
6 #include "ctemplCeren.f"
7  module modassize
8  use modhistogram2
9  implicit none
10  integer,save::nlayers=0 ! no of depths
11  integer,save::nev=0 ! event counter
12  integer,parameter:: nbinr=2*4 ! one log10 -->2. 1 to 10^4 m
13 
14 ! take energy spectrum with R being a parameter
15 ! at the deepest layer or a layer specified by the next (if>0)
16  integer,save:: nthlayer=0
17  integer,parameter:: nkind=6 ! particle type classification
18  ! g, e, mu, (pi,K,N), neue, neumu
19  integer,parameter:: nbine=20*nkind ! one log10 -->20. 6 decades
20  ! for g,e. >=100 keV K.E
21  ! for mu,had, neu >=10 MeV K.E
22  real(4),save::bine=1./(nbine/nkind)
23  real(4),save::binr=1./(nbinr/4)
24  ! g,e,mu,had,neue,neumu
25  type(histogram2):: erhist(nkind), terhist(nkind)
26 
27  real(4),save::eminhist(nkind)
28  data eminhist /2*100e-6,4*30e-3/
29 
30 ! transition curve
31  integer,parameter::nemin=2
32  integer,parameter::nkindtran=7
33  ! 1 2 3 4 5 6 7
34  ! g,e, mu,(pi,K,N,A), neue, neumu, others
35  real(8),save::emintran(nkindtran, nemin)
36  data emintran/2*100.d-6,5*30d-3, 2*500d-6, 5*1.d0/
37 ! Nlayer,nkindTran, down-or-up
38 ! g,e,mu, (had), neue, neumu, others==>7
39  ! first is layer, 2nd emin, 3rd kind, 4th updown
40  real(8),allocatable,save::num(: ,:,:,:)
41  ! first layer, 2nd emin, 3rd kind
42  real(8),allocatable,save::pnnum(:,:,:) ! p,n only down going
43  integer,parameter::fno=21
44  end module modassize
45 
46 ! *************************************** hook for Beginning of a Run
47 ! * At this moment, all (system-level) initialization for this run
48 ! * has been ended. After this routine is executed, the system goes into the
49 ! * event creation loop.
50 ! *
51  subroutine chookbgrun
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) )
124  end
125 #ifdef sun4
126  integer function csighandler(sig, code, context)
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()
132  end function csighandler
133 #endif
134 
135 ! *********************************** hook for Beginning of 1 event
136 ! * All system-level initialization for 1 event generation has been
137 ! * eneded at this moment.
138 ! * After this is executed, event generation starts.
139 ! *
140  subroutine chookbgevent
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.
163  end subroutine chookbgevent
164 
165 
166 ! ************************************ hook for observation
167 ! * One particel information is brought here by the system.
168 ! * All information of the particle is in aTrack
169 ! *
170  subroutine chookobs(aTrack, id)
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
271  end
272 
273 ! *********************************** hook for end of 1 event
274 ! * At this moment, 1 event generation has been ended.
275 ! *
276  subroutine chookenevent
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 
420  end subroutine chookenevent
421 
422 
423 ! ********************************* hook for end of a run
424 ! * all events have been created or time lacks
425 ! *
426  subroutine chookenrun
428  implicit none
429  end subroutine chookenrun
430 ! ********************************* hook for trace
431 ! * This is called only when trace > 100
432 ! * User should manage the trace information here.
433 ! * If you use this, you may need some output .for trace
434 ! * at the beginning of 1 event generatio and at the end of 1 event
435 ! * generation so that you can identfy each event.
436 ! *
437 ! *
438  subroutine chooktrace
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 
486  end subroutine chooktrace
487 
488 ! ********************* this is the hook called when
489 ! an electron made an interaction.
490 !
491  subroutine chookeint(never)
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 !
519  end subroutine chookeint
520 
521 ! ********************* this is the hook called when
522 ! a gamma ray made an interaction.
523 !
524  subroutine chookgint(never)
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 !
553  end subroutine chookgint
554 
555 ! ********************* this is the hook called when
556 ! non e-g particle made an interaction.
557 !
558  subroutine chooknepint(never)
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'
588  end subroutine chooknepint
589 
*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 chookgint(never)
Definition: chook.f:191
type(histogram2), dimension(nkind) terhist
Definition: chook.f:25
integer, parameter nbine
Definition: chook.f:19
dE dx *! Nuc Int sampling table e
Definition: cblkMuInt.h:130
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
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
subroutine chooknepint(never)
Definition: chook.f:219
integer, parameter nbinr
Definition: chook.f:12
subroutine cprintprim(out)
Definition: cprintPrim.f:3
integer, parameter nemin
Definition: chook.f:31
subroutine chookenevent
Definition: chook.f:116
subroutine cwriteparam(io, force)
Definition: cwriteParam.f:4
********************block data cblkHeavy ********************integer j data *HeavyG2symbol p
Definition: cblkHeavy.h:7
void kwhistso(int binw)
integer, save nthlayer
Definition: chook.f:16
*Zfirst p fm *Zfirst p Zfirst p code
Definition: ZavoidUnionMap.h:1
Definition: chook.f:7
subroutine chooktrace
Definition: chook.f:275
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
Definition: cblkEvhnp.h:5
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
integer function csighandler(sig, code, context)
Definition: chook.f:63
real(4), save bine
Definition: chook.f:22
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
*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
dE dx *! Nuc Int sampling table b
Definition: cblkMuInt.h:130
*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
subroutine chookobs(aTrack, id)
Definition: chook.f:59
subroutine chookbgevent
Definition: chook.f:39
real(4), dimension(nkind), save eminhist
Definition: chook.f:27
subroutine cqinirn(ir)
Definition: cwriteSeed.f:4
real(8), dimension(nkindtran, nemin), save emintran
Definition: chook.f:35
real(8), dimension(:,:,:), allocatable, save pnnum
Definition: chook.f:42
Definition: Zcoord.h:43
*Zfirst p fm *Zfirst p mass
Definition: ZavoidUnionMap.h:1
subroutine chookbgrun
Definition: chook.f: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 wgt
Definition: ZavoidUnionMap.h:1
integer, parameter fno
Definition: chook.f:43
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
integer, save nev
Definition: chook.f:11