COSMOS v7.655
COSMOSv7655
(AirShowerMC)
Ztrackv.h
Go to the documentation of this file.
1
#include "
Zmaxdef.h
"
2
/*
3
c common variables used in tracking ptcls.
4
integer ToInteract, ToBeObserved, Truncated, Dead,
5
* BorderL, BorderH, AngleLimit
6
parameter(ToInteract = 1, ToBeObserved = 2, Truncated = 3,
7
* BorderL = 4, BorderH =5, Dead = 6, AngleLimit = 7)
8
9
integer MaxInte
10
parameter(MaxInte = 6) ! Max number of kinds of interactions a particle can
11
! take. (such as brems, knockon, anihilation)
12
structure /intinf/ ! Interaction information
13
real*8 thickness ! in kg/m2 set if decay is F
14
real*8 length ! in m, set if decay is T. or eventually by cfixProc
15
character*8 process ! process id string such as brems, pair
16
logical decay ! if decay, T, else F
17
end structure
18
c define array of intinf
19
record /intinf/ IntInfArray(MaxInte)
20
c
21
record /track/ TrackBefMove ! track before moved
22
record /track/ MovedTrack ! to contain track moved
23
record /coord/ Offset ! the primary is directed to
24
c deepest detector origin + Offset
25
c (in 'xyz')
26
record /track/ Zfirst ! to keep first interaction info. V7.0
27
c real*8 Zfirst ! to keep first interaction slant depth
28
integer MoveStat ! status code for moving a particle
29
real*8 TargetMassN ! average target mass number. To be updated
30
! after a ptcl is moved.
31
real*8 TargetAtomicN ! Average Z of the target.
32
real*8 TargetZ2 ! <Z^2> of the target
33
integer TargetNucleonNo ! target nucleon number at a collision
34
integer TargetProtonNo ! target proton number //
35
integer NumberOfInte ! Number of different kind of interactions
36
! considered for the current particle.
37
integer ProcessNo ! The process really happend is the
38
! ProcessNo-th process in IntInfArray.
39
logical ObserveAS ! made to be T, if AS is to be generated
40
logical Upgoing ! if primary is going upward, made to be t
41
logical UseTbl ! becomes T,
42
! if length <--> thickness conv. is by table
43
real*8 EminAS ! minimum energy of e for AS generation.
44
real*8 EasWait ! for AS generation, must wait until e
45
! energy becomes < EasWait
46
real*8 EnergyLoss ! energy loss
47
real*8 Upsilon ! Upsilon value
48
real*8 Xai ! Xai value B x Eg/m /2
49
50
real*8 KEmin ! min kinetic energy to be tracked
51
real*8 KEminCas ! // (for em-cascade)
52
real*8 KEmin2 ! min kinetic energy to be tracked. for skeleton/flesh use.
53
real*8 KEminCas2 ! for skeleton/flesh use.
54
real*8 Ethin(2) ! Thin sampling threshold.
55
real*8 Beta ! v/c for MovedTrack; given if TimeStrucrue=T.
56
record /magfield/ Mag
57
integer MaxPtcl
58
59
logical FromEpics ! to control muon iteraction (pair,brem,nuci)
60
! must be made t, when Epics treats muon.
61
! if Cosmos uses Epics, this must be made to
62
! be t/f depending on Epics mode, or Cosmos mode
63
#if LABELING > 0
64
integer Labelcounter ! label counter to put a lalel on each patcl.
65
#endif
66
67
parameter (
68
#ifdef MAX_PTCL
69
* MaxPtcl = MAX_PTCL
70
#else
71
* MaxPtcl = 8000
72
#endif
73
* ) ! max # of ptcls producable in coll.
74
record /ptcl/ Pwork(MaxPtcl) ! working array to store ptcls.
75
integer Nproduced ! no. of ptcls produced and stored in Pwork.
76
real*8 MuonPolarization ! muon polarization value.
77
c
78
*/
79
80
81
82
83
84
85
86
#ifdef MAX_PTCL
87
const
int
maxptcl
=
MAX_PTCL
;
88
#else
89
const
int
maxptcl
= 8000;
90
#endif
91
const
int
maxinte
= 6;
92
93
const
int
tointeract
= 1;
94
const
int
tobeobserved
= 2;
95
const
int
truncated
= 3;
96
const
int
dead
= 6;
97
const
int
borderl
= 4;
98
const
int
borderh
=5;
99
const
int
anglelimit
= 7;
100
101
struct
intinf
{
102
double
thickness
;
// ! in kg/m2 set if decay is F
103
double
length
;
// ! in m, set if decay is T. or eventually by cfixProc
104
char
process
[8];
// ! process id string such as brems, pair
105
logical
decay
;
// ! if decay, T, else F
106
DUMMYCHAR
107
};
108
109
extern
struct
ztrackv
{
110
struct
ptcl
pwork[
maxptcl
];
111
struct
intinf
intinfarray[
maxinte
];
112
struct
track
trackbefmove;
113
struct
track
movedtrack;
114
struct
track
zfirst;
115
struct
coord
offset;
116
struct
magfield
mag;
117
double
muonpolarization
;
118
double
eminas
;
119
double
easwait
;
120
double
targetmassn
;
121
double
targetatomicn
;
122
double
targetz2
;
123
double
energyloss
;
124
double
kemin
;
125
double
kemincas
;
126
double
beta
;
127
double
kemin2
;
128
double
kemincas2
;
129
double
ethin[2];
130
double
upsilon
;
131
double
xai
;
132
logical
observeas
;
133
int
nproduced
;
134
int
movestat
;
135
int
numberofinte
;
136
int
processno
;
137
int
targetnucleonno
;
138
int
targetprotonno
;
139
logical
upgoing
;
140
logical
usetbl
;
141
logical
fromepics
;
142
#if LABELING > 0
143
int
labelcounter;
144
#endif
145
}
ztrackv_
;
146
147
148
149
#define Pwork ztrackv_.pwork
150
#define IntInfArray ztrackv_.intinfarray
151
#define TrackBefMove ztrackv_.trackbefmove
152
#define MovedTrack ztrackv_.movedtrack
153
#define Zfirst ztrackv_.zfirst
154
#define Offset ztrackv_.offset
155
// Mag cannot be used so you have to use Mag_ instead of it
156
#define Mag_ ztrackv_.mag
157
#define MuonPolarization ztrackv_.muonpolarization
158
#define EminAS ztrackv_.eminas
159
#define EasWait ztrackv_.easwait
160
#define TargetMassN ztrackv_.targetmassn
161
#define TargetAtomicN ztrackv_.targetatomicn
162
#define TargetZ2 ztrackv_.targetz2
163
#define EnergyLoss ztrackv_.energyloss
164
#define KEminCas2 ztrackv_.kemincas2
165
#define KEminCas ztrackv_.kemincas
166
#define KEmin2 ztrackv_.kemin2
167
#define KEmin ztrackv_.kemin
168
#define Beta ztrackv_.beta
169
#define Ethin ztrackv_.ethin
170
#define Upsilon ztrackv_.upsilon
171
#define Xai ztrackv_.xai
172
#define ObserveAS ztrackv_.observeas
173
#define Nproduced ztrackv_.nproduced
174
#define MoveStat ztrackv_.movestat
175
#define NumberOfInte ztrackv_.numberofinte
176
#define ProcessNo ztrackv_.processno
177
#define TargetNucleonNo ztrackv_.targetnucleonno
178
#define TargetProtonNo ztrackv_.targetprotonno
179
#define Upgoing ztrackv_.upgoing
180
#define UseTbl ztrackv_.usetbl
181
#define FromEpics ztrackv_.fromepics
182
#define Labelcounter ztrackv_.labelcounter
183
ztrackv::usetbl
logical usetbl
Definition:
Ztrackv.h:140
ztrackv::numberofinte
int numberofinte
Definition:
Ztrackv.h:135
Zmaxdef.h
ztrackv::nproduced
int nproduced
Definition:
Ztrackv.h:133
ztrackv::easwait
double easwait
Definition:
Ztrackv.h:119
DUMMYCHAR
#define DUMMYCHAR
Definition:
Zdef.h:8
intinf::process
char process[8]
Definition:
Ztrackv.h:104
ztrackv::movestat
int movestat
Definition:
Ztrackv.h:134
track
Definition:
Ztrack.h:44
ztrackv::targetatomicn
double targetatomicn
Definition:
Ztrackv.h:121
ztrackv::kemin2
double kemin2
Definition:
Ztrackv.h:127
truncated
const int truncated
Definition:
Ztrackv.h:95
anglelimit
const int anglelimit
Definition:
Ztrackv.h:99
intinf::thickness
double thickness
Definition:
Ztrackv.h:102
tobeobserved
const int tobeobserved
Definition:
Ztrackv.h:94
ztrackv::energyloss
double energyloss
Definition:
Ztrackv.h:123
ztrackv::upsilon
double upsilon
Definition:
Ztrackv.h:130
intinf::decay
logical decay
Definition:
Ztrackv.h:105
ztrackv::upgoing
logical upgoing
Definition:
Ztrackv.h:139
MAX_PTCL
#define MAX_PTCL
Definition:
Zmaxdef.h:8
ztrackv::kemincas2
double kemincas2
Definition:
Ztrackv.h:128
intinf
Definition:
Ztrackv.h:101
borderl
const int borderl
Definition:
Ztrackv.h:97
borderh
const int borderh
Definition:
Ztrackv.h:98
ztrackv::observeas
logical observeas
Definition:
Ztrackv.h:132
ztrackv::kemincas
double kemincas
Definition:
Ztrackv.h:125
ztrackv::muonpolarization
double muonpolarization
Definition:
Ztrackv.h:117
maxptcl
const int maxptcl
Definition:
Ztrackv.h:87
logical
int logical
Definition:
Zdef.h:1
ztrackv::targetmassn
double targetmassn
Definition:
Ztrackv.h:120
ztrackv::processno
int processno
Definition:
Ztrackv.h:136
dead
const int dead
Definition:
Ztrackv.h:96
ztrackv
Definition:
Ztrackv.h:109
ztrackv::eminas
double eminas
Definition:
Ztrackv.h:118
intinf::length
double length
Definition:
Ztrackv.h:103
tointeract
const int tointeract
Definition:
Ztrackv.h:93
maxinte
const int maxinte
Definition:
Ztrackv.h:91
ztrackv_
struct ztrackv ztrackv_
ztrackv::xai
double xai
Definition:
Ztrackv.h:131
ztrackv::fromepics
logical fromepics
Definition:
Ztrackv.h:141
ptcl
Definition:
Zptcl.h:75
coord
Definition:
Zcoord.h:43
ztrackv::targetz2
double targetz2
Definition:
Ztrackv.h:122
ztrackv::beta
double beta
Definition:
Ztrackv.h:126
ztrackv::kemin
double kemin
Definition:
Ztrackv.h:124
magfield
Definition:
Zmagfield.h:39
ztrackv::targetnucleonno
int targetnucleonno
Definition:
Ztrackv.h:137
ztrackv::targetprotonno
int targetprotonno
Definition:
Ztrackv.h:138
include
Ztrackv.h
Generated by
1.8.13