COSMOS v7.655  COSMOSv7655
(AirShowerMC)
ctemplCeren.f
Go to the documentation of this file.
1 ! ******************************************************************************
2 ! The user routines here are used only when you give 161 ~ 199 to the Trace value
3 ! so that you can manage the Cerenkov light output yourself.
4 ! The main purpose is to enable you to convert each track information to Cerekov light
5 ! on fly and output it with your desired format. This will save the output disk file
6 ! volume as compared to writing the track infomation directly by the standard way.
7 !
8 ! This file is saved as ctemplCeren.f
9 ! Each user hook program is supplied with #include "ctemplCeren.f"
10 ! (if not supplied, give it somewhere).
11 ! If you really want to make this file usable, save it as chookCeren.f (or whatever
12 ! you like), and change its content.
13 ! Then, you have to change the incldue statement in the user hook program which
14 ! really uses the chookCeren.f:
15 ! #include "chookCeren.f"
16 ! ******************************************************************************
17 !
18  subroutine chookcerens(no, primary, angle)
19  implicit none
20 ! This is called when one event generation starts.
21 !
22 #include "Zmanagerp.h"
23 #include "Ztrack.h"
24 #include "Ztrackp.h"
25 #include "Ztrackv.h"
26 #include "Zcode.h"
27 #include "Zmass.h"
28 #include "Zprimary.h"
29 #include "Zprimaryv.h"
30 #include "Zheavyp.h"
31 #include "Zincidentv.h"
32 !
33 !
34  integer no ! input. Event number.
35  type(primaries):: primary ! input. Primary particle info.
36  type(coord):: angle ! input. primary angle at the observation depth.
37 ! ***************
38  integer ka ! input. particle code
39  integer chrg ! input. particle charge
40  real*8 e1 ! input. particle energy
41  integer itb ! input. time expressed in cemeter/beta at the segment top
42  integer it ! input. track segment length in cm/beta
43  type(coord):: f ! input. f.r(i), i=1,3 are the x,y,z component of the
44  ! segment top. The coordinate system is by the Trace value
45  ! you gave.
46  type(coord):: t ! input. the same as above for the segment tail.
47 ! ****************
48 !
49 ! ---------------------------------------------------------------------------------------
50 ! here you may put some flag info. as header of each event;
51 ! The standard Cerenkov output routine writes the
52 ! following:
53 !
54 ! no ! event no
55 ! primary.particle.code ! intger: partilce code
56 ! primary.particle.fm.p(4) ! energy
57 ! angle.r(1), angle.r(2), angle.r(3) ! direction cos of primary at the observation level.
58 !
59 !
60  return
61 ! *****************
62  entry chookceren(ka, chrg, e1, itb, it, f, t)
63 ! This is called whenever a charged particle is moved. Cerenkov threshold is
64 ! considered.
65 ! *****************
66 ! The standard Cerekov routine writes the following:
67 !
68 ! ka, chrg, sngl(e1), itb, it,
69 ! * sngl(f.r(1)), sngl(f.r(2)), sngl(f.r(3)),
70 ! * sngl(t.r(1)), sngl(t.r(2)), sngl(t.r(3))
71 !
72  return
73 !
74 ! ******************
75  entry chookcerene(ka, chrg, e1, itb, it, f, t)
76 ! This is called when one event has been generated.
77 ! All values (ka etc) are 0.
78 ! *******************
79 ! The standard Cerekov routine writes the following:
80 !
81 ! ka, chrg, sngl(e1), itb, it,
82 ! * sngl(f.r(1)), sngl(f.r(2)), sngl(f.r(3)),
83 ! * sngl(t.r(1)), sngl(t.r(2)), sngl(t.r(3))
84 !
85  end
subroutine chookceren
Definition: det2Exyz.f:63
subroutine chookcerene
Definition: det2Exyz.f:67
subroutine chookcerens(no, primary, angle)
Definition: ctemplCeren.f:19
nodes t
Definition: Zcoord.h:43
dE dx *! Nuc Int sampling table f
Definition: cblkMuInt.h:130