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