10 //*=== trackr ===========================================================*
12 //*----------------------------------------------------------------------*
14 //* tracks recording by alfredo ferrari, infn - milan *
16 //* last change 31 january 2001 by alfredo ferrari *
21 //* kaskad (new version) *
24 //* geoden (new version) *
32 //* ntrack = number of track segments *
33 //* mtrack = number of energy deposition events along the track *
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 *
39 //* ttrack = length of the ith track segment *
41 //* dtrack = energy deposition of the jth deposition event *
42 //* dptrck = momentum loss of the jth deposition event *
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 *
55 //* cmtrck = cumulative curved path since particle birth *
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 *
64 //* spausr = user defined spare variables for the current *
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) *
72 //* ntrack > 0, mtrack > 0 : energy loss distributed along the *
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) *
90 //*----------------------------------------------------------------------*
95 // ispusr[mkbmx2 - 1] : track index in vmcstack
96 // ispusr[mkbmx2 - 2] : flag for "interrupted" track
99 const Int_t mxtrck = 2500;
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];
107 Double_t dptrck[mxtrck][3];
126 Double_t spausr[mkbmx1];
139 Int_t ispusr[mkbmx2];
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];};