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;
118  double eminas;
119  double easwait;
120  double targetmassn;
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;
134  int movestat;
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 
logical usetbl
Definition: Ztrackv.h:140
int numberofinte
Definition: Ztrackv.h:135
int nproduced
Definition: Ztrackv.h:133
double easwait
Definition: Ztrackv.h:119
#define DUMMYCHAR
Definition: Zdef.h:8
char process[8]
Definition: Ztrackv.h:104
int movestat
Definition: Ztrackv.h:134
Definition: Ztrack.h:44
double targetatomicn
Definition: Ztrackv.h:121
double kemin2
Definition: Ztrackv.h:127
const int truncated
Definition: Ztrackv.h:95
const int anglelimit
Definition: Ztrackv.h:99
double thickness
Definition: Ztrackv.h:102
const int tobeobserved
Definition: Ztrackv.h:94
double energyloss
Definition: Ztrackv.h:123
double upsilon
Definition: Ztrackv.h:130
logical decay
Definition: Ztrackv.h:105
logical upgoing
Definition: Ztrackv.h:139
#define MAX_PTCL
Definition: Zmaxdef.h:8
double kemincas2
Definition: Ztrackv.h:128
const int borderl
Definition: Ztrackv.h:97
const int borderh
Definition: Ztrackv.h:98
logical observeas
Definition: Ztrackv.h:132
double kemincas
Definition: Ztrackv.h:125
double muonpolarization
Definition: Ztrackv.h:117
const int maxptcl
Definition: Ztrackv.h:87
int logical
Definition: Zdef.h:1
double targetmassn
Definition: Ztrackv.h:120
int processno
Definition: Ztrackv.h:136
const int dead
Definition: Ztrackv.h:96
double eminas
Definition: Ztrackv.h:118
double length
Definition: Ztrackv.h:103
const int tointeract
Definition: Ztrackv.h:93
const int maxinte
Definition: Ztrackv.h:91
struct ztrackv ztrackv_
double xai
Definition: Ztrackv.h:131
logical fromepics
Definition: Ztrackv.h:141
Definition: Zptcl.h:75
Definition: Zcoord.h:43
double targetz2
Definition: Ztrackv.h:122
double beta
Definition: Ztrackv.h:126
double kemin
Definition: Ztrackv.h:124
int targetnucleonno
Definition: Ztrackv.h:137
int targetprotonno
Definition: Ztrackv.h:138