COSMOS v7.655
COSMOSv7655
(AirShowerMC)
Ztrackp.h
Go to the documentation of this file.
1
/*
2
c Parameters used for Tracking.
3
c (-> --------------------------------------------
4
5
logical ExactThick !2 If T, a given length is converted into thickness with best accuracy even for very
6
! inclined trajectory by using numerical integration.
7
logical IncMuonPolari !1 if T, consider muon polarization
8
logical Freec !1 if F, the first interaction point is forced to be the injection point else
9
! the interaction poin is randomly sampled.
10
integer OneDim !1 If 0, 3 dimensional simulation. if $\ge$1, one
11
! dimensional simulation is performed. \newline
12
! 1: onedim without use of table. \newline
13
! 2: table is used for thickness $ \leftrightarrow$ length conversion. if cos $<$ .5 \newline
14
! 3: table is always used for any angle.
15
! ( for height $>$ 30 km, table is not used in any case).
16
real*8 LamorDiv !2 In the geomagnetic field, a charged particle can travel almost streight
17
! in (Lamor Radius)/LamorDiv. Default is 5. For AMS like tracking 20 may be needed.
18
real*8 Truncc !2 coeff. for truncating path.
19
real*8 Truncn !2 coeff. for truncating path.
20
real*8 Truncx !2 coeff. for truncating path.
21
real*8 KEminObs !1 The min kinetic energy of particles for observation.
22
real*8 KEminObs2 !2 Don't touch this. skeleton/flesh use.
23
real*8 RatioToE0 !2 In the A.S generation, hadronic interactions are followed down to at
24
! least RatioToE0 * E0/nucleon energy.
25
real*8 WaitRatio !1 Wait A.S generation until the electron energy, Ee, becomes $<$ WaitRatio* E0.
26
! This many be 1.0 for hadron origin case. But for gamma/electron primary,
27
! this should be as low as 0.01 to enjoy full fluctuation.
28
integer EndLevel !2 Used for skeleton/flesh-out job. In a normal job, system default value 0 is reset by
29
! the system to be the max number of observation levels. (=NoOfSites). Its real use is in such a
30
! skeleton/flesh-out job that one first follows the particles up to some high depth and later chooses
31
! events and flesh them out to deeper depths. In such a skeleton-making job, the user must give the
32
! depth list which is used flesh-out job, too. In the skeleton job, particle tracking is terminated
33
! at the level specified by EndLevel. In such a flesh-out job, the user must give a larger value
34
! or 0 to EndLevel
35
integer EndLevel2 !2 Don't worry. This is system use.
36
integer Trace !1 Flag for trace information output.\newline
37
! 0 $\rightarrow$ no trace information is output.\newline
38
! $<$10$\rightarrow$ x, y, z in the primary system(say, 1)\newline
39
! $<$20 $\rightarrow$ x, y, in the primary sys. z in kg/m$^2$.(say,11)\newline
40
! $<$30 $\rightarrow$ x, y, z in the detector system\newline
41
! $<$40 $\rightarrow$ x, y, in the detector system. z in kg/m2\newline
42
! $<$50 $\rightarrow$ x, y, z in 'xyz' system.\newline
43
! $<$60 $\rightarrow$ x,y, in 'xyz' and z in kg/m2\newline
44
! 61-100 $\rightarrow$ for Cherenkov observation. For Coord system, subtract 60.\newline
45
! if the value is even, binary output is made on TraceDev.\newline
46
! if the last digit is 1 or 2, trace is always taken. if the last digit is 3 or 4, trace is taken
47
! only if the particle is located below the heighest observation depeth.
48
! $>$ 101 $\rightarrow$ subtract 100 and apply the above, but chookTrace or chookCeren are used.\newline
49
! Primary system: Origin is the deepest detector. Z-axis is the primary direction.
50
! X-axis is Z x Vertical axis. X-Y plane is orthogonal to the primary.\newline
51
! Detector system: origin is the deepest detector. Z-axis is the vertical one. X-axis is
52
! directed to the magnetic east. X-Y plane is horizontal.\newline
53
! z in kg/m$^2$ : Vertical depth in kg/m$^2$ above the deepest detector to the particle.
54
integer TraceDev !2 Logical dev \# for TraceDir/trace1,2,....
55
character*70 TraceDir !1 Directory. Default Trace information is put TraceDir/trace1, 2,..
56
! for event 1, 2, ... The directory should exist. Default is ' ' and in this case
57
! /tmp/YourLoginName/ is employed. The last "/" should not be given.
58
! *** NOTE that default Cherenkov output is made only using TraceDev,
59
! TraceDir is not used. You have to open the disk file at chookbgRun
60
! It can by binary or ascii file depending on Trace value.
61
logical ThinSampling !1 if F, thinsampling is not tried. if T, alla Hillas thinning. Don't use with
62
! the skeleton/flesh method
63
real*8 EthinRatio(2) !2 if ThinsSamplig != F, thin sampling is performed if the energy of a particle is
64
! $<$ EthinRatio * PrimaryEnergy(/nucleon) (=Ethin) ( EtinRatio$>$ 0).
65
! If EthinRatio $<$ 0, Ethin will be |EthinRatio| (GeV).
66
logical TimeStructure !1 If T, time information is computed
67
integer HowGeomag !2 if 1, no magnetic field until first coll. \newline
68
! 2, mag.f always exists. If Reverse not=0, use this. \newline
69
! 11, same as 1 but mag.f is const. \newline
70
! 12, same as 2 but mag.f is const. \newline
71
! 21, same as 1 but mag.f is const. \newline
72
! 22, same as 2 but mag.f is const. \newline
73
! 31, same as 1 but mag.f is dependent on the position. \newline
74
! const value is the one at deepest observation plane. for 11,12 or should be given by
75
! MagN, MagE, MagD for 21, 22. For normal applications, 11 is good.
76
! If no magnetic field is applied, energy loss by dE/dx is considered.(bef.4.92,
77
! and aft. 5.14)
78
real*8 MagN !2 See HowGeomag (in Tesla)
79
real*8 MagE !2 See HowGeomag (in Tesla)
80
real*8 MagD !2 See HowGeomag (in Tesla)
81
82
real*8 MagChgDist !2 Distance where mag. can be seen as const.(m) at sea level
83
integer UseRungeKutta !2 How to calculate deflection by the geomagnetic field. Let L be the distance
84
! the particle travels. \newline
85
! 0$\rightarrow$Don't use RungeKutta method. Use the solution assuming the constant B, which
86
! is exact if B is const. Since the particle path is made short, this is
87
! enough for normal cases where particles are inside the atmosphere.(default) \newline
88
! In every case below, if the particle height is $<$ 30km
89
! (= cheight in ccomPathEnd.f), the same method as 0 is used. \newline
90
! 1$\rightarrow$ Use the Euler method. Time needed is 20\% more than the 0 case.
91
! As B, use the value at L/2 point obtained by using the current direction. \newline
92
! 2$\rightarrow$ mixture of 1 and Runge-Kutta-Gill method. If gradient of B is large, RKG is
93
! employed. This needs $\sim$4 times more cpu time than case of 1 when making a
94
! cutoff table. The step size of RKG is $\sim$1/10 of the Lamore radius. \newline
95
! 3$\rightarrow$ The same as 2 but use the Runge-Kutta-Fehlberg method instead of RKG.
96
! Step size is automattically adjusted ($\sim$1/20 $\sim$1/30 of Lamor radius) \newline
97
! 4$\rightarrow$ As a middle point, use the point obtained by assuming the constant B at
98
! initial point. If grad B is still large, use RKG. \newline
99
! 5$\rightarrow$ The same as 4 but us RKF instead of RKG. \newline
100
! 6$\rightarrow$ Use always RKG \newline
101
! 7$\rightarrow$ Use always RKF. This takes very long time.(50 times of 0). \newline
102
real*8 BorderHeightH !2 If a particle goes higher than this, discard it. This should be larger than
103
! HeightOfInj or 0.
104
! If 0, it is adjusted to be the same as HeightOfInj. NOTE: For upgoin primary cases, you have
105
! to set this one explicitly.
106
real*8 BorderHeightL !2 If a particle reaches this hight, call observation routine. No further tracking is done.
107
! This is for neutrino observation. See ObsPlane.
108
real*8 BackAngLimit !2 If the cosine of the angle between a particle and the primary becomes smaller than
109
! this value, the particle is discarded. See also BorderHeighH. If you give a value
110
! less than -1.0, such rejection will never happen. Default is -1.0
111
character*16 Generate !1 specify what should be generated \newline
112
! 1) Electro-magnetic cascade(em), \newline
113
! 2) one dimensional hybrid AS(as/qas) and/or \newline
114
! 3) AS Lateral distribution(lat). \newline
115
! If Generate= ' ', hadronic cascade shower is generated. \newline
116
! For example, you may give as follows: \newline
117
! Generate='em,as' or 'em/as' (order/case/separator insensitive) is to generate EM-cascade and AS. \newline
118
! Generate='as' will generate AS with some adequate EM cascade (EM cascade is automatically generated
119
! so that hybrid A.S can be observed, but the minimum energy in EM cascade is independent of KEminObs). \newline
120
! If 'qas' is given, quick generation of AS for heavy primaries is tried. See chookASbyH.f
121
122
character*16 Generate2 !2 don't touch this. for skeleton/flesh use.
123
124
integer MagBrem !2 If 0, no magnetic bremsstrahlung is considered. \newline
125
! if 1 and Ee $>$ MagBremEmin, energy loss due to magnetic brems is considered \newline
126
! if 2 and Ee $>$ MagBremEmin, real sampling of gamma is performed. \newline
127
! (note, actually upsilon is referred further).
128
! if generate='as' with really high energy primaries, WaitRatio
129
! must be made small so that WaitRatio*E0 $\sim$ MagBremEmin
130
integer MagPair !2 If 0, no magnetic pair creation is considered. \newline
131
! if 1 and Eg > MagPairEmin, real sampling is tried.
132
! (note, actually upsilon is referred further). To see these magnetic effects,
133
! HowGeoMag=2 and HightOfInj $\sim$ 5000 km are desirable.
134
135
logical LpmEffect !1 If t, the LPM effect is considered when Ee $>$ LpmBremEmin for electrons and
136
! Eg $>$ LpmPairEmin for gamma rays.
137
138
real*8 MagBremEmin !2 E $>$ this, magnetic bremsstrahlung by electrons may be considered. However, if
139
! MagBrem = 0, not considered at all \newline
140
! MagBrem = 1, total energy loss due to brems is considered. \newline
141
! MagBrem = 2, gamma energy is sampled actually. \newline
142
! If upsilon (Ee/m * B/Bcr) is small, the effective treatment will be
143
! the same as MagBrem = 0 case.
144
real*8 MagPairEmin !2 E $>$ this, magnetic pair creation by gamma may be considered. However, if
145
! MagPair = 0, not considered at all. \newline
146
! MagPair = 1, pair creation is sampled. \newline
147
! However, again, actual occurrence will be dependent on the angle between
148
! B and photon direction.
149
real*8 UpsilonMin !2 Magnetic bremsstralhung is considered only if upsilon $>$ UpsilonMin.
150
real*8 LpmBremEmin !2 The LPM effect is taken into account for bremsstrahlung when LpmEffect is .true.
151
! and the electron energy is higher than this.
152
real*8 LpmPairEmin !2 The LPM effect is taken into account for pair creation when LpmEffect is .true.
153
! and the gamma energy is higher than this.
154
integer Reverse !2 0$\rightarrow$ Normal tracking. \newline
155
! 1$\rightarrow$ incident is tracked to a direction opposite to the given one.
156
! the incident is charge-conjugated.
157
! All interactions are ignored. (Use when to make cut-off table or to see
158
! a given particle (say, observed anti proton) can go out of Earth. \newline
159
! 2$\rightarrow$ same as 1 but energy gain (not loss) is taken into account
160
! TimeStructure should be T if Reverse != 0. See BackAnglLimit.
161
162
real*8 PathLimit !2 If the sum of (path/beta) of a particle exceeds this, it is judged as dead.
163
! (to avoid infinite cyclotron loop). However, for normal applications,
164
! this will not be effective because of BackAnglLimit. See Reverse.
165
! TimeStructure should be T if Reverse != 0 and PathLimit is to be effective.
166
167
integer MuNI !2 0$\rightarrow$ nuclear interaction of muon is completely neglected \newline
168
! 1$\rightarrow$ energy loss by n.i is subsumed in dE/dx of muons as a continuous energy loss. Let v=
169
! Etransfer/Emu, the loss here is Int(vc:vmax) of (Emu vdsigma/dv). (vc $\sim$0, vmax$\sim$1). \newline
170
! 2$\rightarrow$ (Default value). similar to 1 but as the continuous loss only v $<$ vmin=10$^{-3}$ of
171
! fractional muon energy is subsumed (Int(vc: vmin) of (Emu vdsigma/dv)). The portion
172
! of loss by v$>$vmin is treated as a stocastic process. However, the product from the
173
! n.i itself is neglected \newline
174
! 3$\rightarrow$ the same as 2, but the n.i is explicitly included to produce a number of particles.
175
! The n.i is treated as a photo-nucleus interaction.
176
integer MuBr !2 parameter similar to MuNI but for bremsstrahlung by muons.
177
integer MuPr !2 parameter similar to MuNI but for pair creation by muons.
178
179
c <-) ----------------------------------------------
180
*/
181
182
// not cztrackp; due to spelling mistake in Fortran
183
extern
struct
cztracp
{
184
double
truncc
;
185
double
truncn
;
186
double
truncx
;
187
double
keminobs
;
188
double
keminobs2
;
189
double
ratiotoe0
;
190
double
pathlimit
;
191
double
waitratio
;
192
double
ethinratio
[2];
193
double
backanglimit
;
194
double
lamordiv
;
195
double
borderheighth
;
196
double
magn
;
197
double
mage
;
198
double
magd
;
199
double
magchgdist
;
200
double
borderheightl
;
201
int
muni
;
202
int
mubr
;
203
int
mupr
;
204
double
magbrememin
;
205
double
magpairemin
;
206
double
upsilonmin
;
207
double
lpmbrememin
;
208
double
lpmpairemin
;
209
int
userungekutta
;
210
logical
thinsampling
;
211
logical
timestructure
;
212
int
howgeomag
;
213
int
trace
;
214
int
tracedev
;
215
logical
exactthick
;
216
int
onedim
;
217
int
reverse
;
218
logical
freec
;
219
logical
incmuonpolari
;
220
int
magbrem
;
221
int
magpair
;
222
logical
lpmeffect
;
223
int
endlevel
;
224
int
endlevel2
;
225
}
cztracp_
;
226
227
228
#define Truncc cztracp_.truncc
229
#define Truncn cztracp_.truncn
230
#define Truncx cztracp_.truncx
231
#define KEminObs cztracp_.keminobs
232
#define KEminObs2 cztracp_.keminobs2
233
#define RatioToE0 cztracp_.ratiotoe0
234
#define PathLimit cztracp_.pathlimit
235
#define WaitRatio cztracp_.waitratio
236
#define EthinRatio cztracp_.ethinratio
237
#define BackAngLimit cztracp_.backanglimit
238
#define LamorDiv cztracp_.lamordiv]
239
#define BorderHeightH cztracp_.borderheighth
240
#define MagN cztracp_.magn
241
#define MagE cztracp_.mage
242
#define MagD cztracp_.magd]
243
#define MagChgDist cztracp_.magchgdist
244
#define BorderHeightL cztracp_.borderheightl
245
#define MuNI cztracp_.muni
246
#define MuBr cztracp_.mubr
247
#define MuPr cztracp_.mupr
248
#define MagBremEmin cztracp_.magbrememin
249
#define MagPairEmin cztracp_.magpairemin
250
#define UpsilonMin cztracp_.upsilonmin
251
#define LpmBremEmin cztracp_.lpmbrememin
252
#define LpmPairEmin cztracp_.lpmpairemin
253
#define UseRungeKutta cztracp_.userungekutta
254
#define ThinSampling cztracp_.thinsampling
255
#define TimeStructure cztracp_.timestructure
256
#define HowGeomag cztracp_.howgeomag
257
258
#define TraceDir cztrackpc_.tracedir
259
260
#define TraceDev cztracp_.tracedev
261
#define Trace cztracp_.trace
262
#define ExactThick cztracp_.exactthick
263
#define OneDim cztracp_.onedim
264
#define Reverse cztracp_.reverse
265
#define Freec cztracp_.freec
266
#define IncMuonPolari cztracp_.incmuonpolari
267
#define MagBrem cztracp_.magbrem
268
#define MagPair cztracp_.magpair
269
#define LpmEffect cztracp_.lpmeffect
270
#define EndLevel2 cztracp_.endlevel2
271
#define EndLevel cztracp_.endlevel
272
273
extern
struct
cztrackpc
{
274
char
generate[16];
275
char
generate2[16];
276
char
tracedir[70];
277
DUMMYCHAR
278
}
cztrackpc_
;
279
280
#define Generate2 cztrackpc_.generate2
281
#define Generate cztrackpc_.generate
DUMMYCHAR
#define DUMMYCHAR
Definition:
Zdef.h:8
cztracp::keminobs
double keminobs
Definition:
Ztrackp.h:187
cztracp::lamordiv
double lamordiv
Definition:
Ztrackp.h:194
cztracp::endlevel2
int endlevel2
Definition:
Ztrackp.h:224
cztracp::onedim
int onedim
Definition:
Ztrackp.h:216
cztracp::magpair
int magpair
Definition:
Ztrackp.h:221
cztracp::timestructure
logical timestructure
Definition:
Ztrackp.h:211
cztracp::magbrememin
double magbrememin
Definition:
Ztrackp.h:204
cztracp::truncn
double truncn
Definition:
Ztrackp.h:185
cztracp::upsilonmin
double upsilonmin
Definition:
Ztrackp.h:206
cztracp::magbrem
int magbrem
Definition:
Ztrackp.h:220
cztracp::incmuonpolari
logical incmuonpolari
Definition:
Ztrackp.h:219
cztracp::howgeomag
int howgeomag
Definition:
Ztrackp.h:212
cztracp::muni
int muni
Definition:
Ztrackp.h:201
cztracp::reverse
int reverse
Definition:
Ztrackp.h:217
cztracp::thinsampling
logical thinsampling
Definition:
Ztrackp.h:210
cztracp::lpmeffect
logical lpmeffect
Definition:
Ztrackp.h:222
cztracp::userungekutta
int userungekutta
Definition:
Ztrackp.h:209
cztracp::magn
double magn
Definition:
Ztrackp.h:196
cztracp::trace
int trace
Definition:
Ztrackp.h:213
cztracp::borderheightl
double borderheightl
Definition:
Ztrackp.h:200
cztrackpc_
struct cztrackpc cztrackpc_
cztracp::waitratio
double waitratio
Definition:
Ztrackp.h:191
cztracp::tracedev
int tracedev
Definition:
Ztrackp.h:214
cztracp::truncc
double truncc
Definition:
Ztrackp.h:184
cztracp::mage
double mage
Definition:
Ztrackp.h:197
cztracp
Definition:
Ztrackp.h:183
cztracp::mubr
int mubr
Definition:
Ztrackp.h:202
logical
int logical
Definition:
Zdef.h:1
cztracp::ratiotoe0
double ratiotoe0
Definition:
Ztrackp.h:189
cztracp::truncx
double truncx
Definition:
Ztrackp.h:186
cztracp::mupr
int mupr
Definition:
Ztrackp.h:203
cztracp::ethinratio
double ethinratio[2]
Definition:
Ztrackp.h:192
cztracp::magpairemin
double magpairemin
Definition:
Ztrackp.h:205
cztrackpc
Definition:
Ztrackp.h:273
cztracp::endlevel
int endlevel
Definition:
Ztrackp.h:223
cztracp::magd
double magd
Definition:
Ztrackp.h:198
cztracp::magchgdist
double magchgdist
Definition:
Ztrackp.h:199
cztracp::exactthick
logical exactthick
Definition:
Ztrackp.h:215
cztracp::freec
logical freec
Definition:
Ztrackp.h:218
cztracp::backanglimit
double backanglimit
Definition:
Ztrackp.h:193
cztracp::keminobs2
double keminobs2
Definition:
Ztrackp.h:188
cztracp::borderheighth
double borderheighth
Definition:
Ztrackp.h:195
cztracp::pathlimit
double pathlimit
Definition:
Ztrackp.h:190
cztracp::lpmbrememin
double lpmbrememin
Definition:
Ztrackp.h:207
cztracp_
struct cztracp cztracp_
cztracp::lpmpairemin
double lpmpairemin
Definition:
Ztrackp.h:208
include
Ztrackp.h
Generated by
1.8.13