]>
Commit | Line | Data |
---|---|---|
71dd9297 | 1 | #include "cfortran.h" |
2 | #include "Rtypes.h" | |
3 | ||
4 | #include "Fdimpar.h" | |
5 | ||
fa3d1cc7 | 6 | extern "C" { |
7 | //*$ create trackr.add | |
8 | //*copy trackr | |
9 | //* * | |
10 | //*=== trackr ===========================================================* | |
11 | //* * | |
12 | //*----------------------------------------------------------------------* | |
13 | //* * | |
14 | //* tracks recording by alfredo ferrari, infn - milan * | |
15 | //* * | |
16 | //* last change 31 january 2001 by alfredo ferrari * | |
17 | //* * | |
18 | //* included in : * | |
19 | //* electr * | |
20 | //* emfsco * | |
21 | //* kaskad (new version) * | |
22 | //* kashea * | |
23 | //* kasneu * | |
24 | //* geoden (new version) * | |
25 | //* mageas * | |
26 | //* magmov * | |
27 | //* magnew * | |
28 | //* move * | |
29 | //* photon * | |
30 | //* usrsco * | |
31 | //* * | |
32 | //* ntrack = number of track segments * | |
33 | //* mtrack = number of energy deposition events along the track * | |
34 | //* 0 < i < ntrack * | |
35 | //* xtrack = end x-point of the ith track segment * | |
36 | //* ytrack = end y-point of the ith track segment * | |
37 | //* ztrack = end z-point of the ith track segment * | |
38 | //* 1 < i < ntrack * | |
39 | //* ttrack = length of the ith track segment * | |
40 | //* 1 < j < mtrack * | |
41 | //* dtrack = energy deposition of the jth deposition event * | |
5929ad29 | 42 | //* dptrck = momentum loss of the jth deposition event * |
fa3d1cc7 | 43 | //* * |
44 | //* jtrack = identity number of the particle * | |
45 | //* etrack = total energy of the particle * | |
46 | //* ptrack = momentum of the particle (not always defined, if * | |
47 | //* < 0 must be obtained from etrack) * | |
48 | //* cx,y,ztrck = direction cosines of the current particle * | |
49 | //* cx,y,ztrpl = polarization cosines of the current particle * | |
50 | //* wtrack = weight of the particle * | |
51 | //* wscrng = scoring weight: it can differ from wtrack if some * | |
52 | //* biasing techniques are used (for example inelastic * | |
53 | //* interaction length biasing) * | |
54 | //* ctrack = total curved path * | |
5929ad29 | 55 | //* cmtrck = cumulative curved path since particle birth * |
fa3d1cc7 | 56 | //* zfftrk = <z_eff> of the particle * |
57 | //* zfrttk = actual z_eff of the particle * | |
58 | //* atrack = age of the particle * | |
59 | //* akshrt = kshrt amplitude for k0/k0bar * | |
60 | //* aklong = klong amplitude for k0/k0bar * | |
61 | //* wninou = neutron algebraic balance of interactions (both * | |
62 | //* for "high" energy particles and "low" energy * | |
63 | //* neutrons) * | |
64 | //* spausr = user defined spare variables for the current * | |
65 | //* particle * | |
66 | //* sttrck = macroscopic total cross section for low energy * | |
67 | //* neutron collisions * | |
68 | //* satrck = macroscopic absorption cross section for low energy* | |
69 | //* neutron collisions (it can be negative for pnab>1) * | |
70 | //* ktrack = if > 0 neutron group of the particle (neutron) * | |
71 | //* * | |
72 | //* ntrack > 0, mtrack > 0 : energy loss distributed along the * | |
73 | //* track * | |
74 | //* ntrack > 0, mtrack = 0 : no energy loss along the track * | |
75 | //* ntrack = 0, mtrack = 0 : local energy deposition (the * | |
76 | //* value and the point are not re- * | |
77 | //* corded in trackr) * | |
78 | //* mmtrck = flag recording the material index for low energy * | |
79 | //* neutron collisions * | |
80 | //* lt1trk = initial lattice cell of the current track * | |
81 | //* (or lattice cell for a point energy deposition) * | |
82 | //* lt2trk = final lattice cell of the current track * | |
83 | //* ihspnt = current geometry history pointer (not set if -1) * | |
84 | //* ltrack = flag recording the generation number * | |
85 | //* llouse = user defined flag for the current particle * | |
86 | //* ispusr = user defined spare flags for the current particle * | |
87 | //* lfsssc = logical flag for inelastic interactions ending with* | |
88 | //* fission (used also for low energy neutrons) * | |
89 | //* * | |
90 | //*----------------------------------------------------------------------* | |
fc929c48 | 91 | // |
92 | ||
93 | // | |
94 | // TFluka specific: | |
95 | // ispusr[mkbmx2 - 1] : track index in vmcstack | |
96 | // ispusr[mkbmx2 - 2] : flag for "interrupted" track | |
97 | // | |
98 | ||
fa3d1cc7 | 99 | const Int_t mxtrck = 2500; |
100 | ||
101 | typedef struct { | |
102 | Double_t xtrack[mxtrck+1]; | |
103 | Double_t ytrack[mxtrck+1]; | |
104 | Double_t ztrack[mxtrck+1]; | |
105 | Double_t ttrack[mxtrck]; | |
106 | Double_t dtrack[mxtrck]; | |
5929ad29 | 107 | Double_t dptrck[mxtrck][3]; |
fa3d1cc7 | 108 | Double_t etrack; |
109 | Double_t ptrack; | |
110 | Double_t cxtrck; | |
111 | Double_t cytrck; | |
112 | Double_t cztrck; | |
113 | Double_t wtrack; | |
114 | Double_t cxtrpl; | |
115 | Double_t cytrpl; | |
116 | Double_t cztrpl; | |
117 | Double_t zfftrk; | |
118 | Double_t zfrttk; | |
119 | Double_t atrack; | |
120 | Double_t ctrack; | |
5929ad29 | 121 | Double_t cmtrck; |
fa3d1cc7 | 122 | Double_t akshrt; |
123 | Double_t aklong; | |
124 | Double_t wscrng; | |
125 | Double_t wninou; | |
126 | Double_t spausr[mkbmx1]; | |
127 | Double_t sttrck; | |
128 | Double_t satrck; | |
129 | Int_t ntrack; | |
130 | Int_t mtrack; | |
131 | Int_t jtrack; | |
132 | Int_t ktrack; | |
133 | Int_t mmtrck; | |
134 | Int_t lt1trk; | |
135 | Int_t lt2trk; | |
136 | Int_t ihspnt; | |
137 | Int_t ltrack; | |
138 | Int_t llouse; | |
139 | Int_t ispusr[mkbmx2]; | |
140 | Int_t lfsssc; | |
cd4c194d | 141 | Int_t lpkill; |
fa3d1cc7 | 142 | } trackrCommon; |
143 | #define TRACKR COMMON_BLOCK(TRACKR,trackr) | |
144 | COMMON_BLOCK_DEF(trackrCommon,TRACKR); | |
145 | //static union { Double_t spause; Double_t spausr[0];}; | |
146 | //static union { Int_t ispuse; Int_t ispusr[0];}; | |
147 | } |