User stepping methods added (E. Futo)
[u/mrichter/AliRoot.git] / TFluka / Ftrackr.h
CommitLineData
fa3d1cc7 1extern "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 *
37//* *
38//* jtrack = identity number of the particle *
39//* etrack = total energy of the particle *
40//* ptrack = momentum of the particle (not always defined, if *
41//* < 0 must be obtained from etrack) *
42//* cx,y,ztrck = direction cosines of the current particle *
43//* cx,y,ztrpl = polarization cosines of the current particle *
44//* wtrack = weight of the particle *
45//* wscrng = scoring weight: it can differ from wtrack if some *
46//* biasing techniques are used (for example inelastic *
47//* interaction length biasing) *
48//* ctrack = total curved path *
49//* zfftrk = <z_eff> of the particle *
50//* zfrttk = actual z_eff of the particle *
51//* atrack = age of the particle *
52//* akshrt = kshrt amplitude for k0/k0bar *
53//* aklong = klong amplitude for k0/k0bar *
54//* wninou = neutron algebraic balance of interactions (both *
55//* for "high" energy particles and "low" energy *
56//* neutrons) *
57//* spausr = user defined spare variables for the current *
58//* particle *
59//* sttrck = macroscopic total cross section for low energy *
60//* neutron collisions *
61//* satrck = macroscopic absorption cross section for low energy*
62//* neutron collisions (it can be negative for pnab>1) *
63//* ktrack = if > 0 neutron group of the particle (neutron) *
64//* *
65//* ntrack > 0, mtrack > 0 : energy loss distributed along the *
66//* track *
67//* ntrack > 0, mtrack = 0 : no energy loss along the track *
68//* ntrack = 0, mtrack = 0 : local energy deposition (the *
69//* value and the point are not re- *
70//* corded in trackr) *
71//* mmtrck = flag recording the material index for low energy *
72//* neutron collisions *
73//* lt1trk = initial lattice cell of the current track *
74//* (or lattice cell for a point energy deposition) *
75//* lt2trk = final lattice cell of the current track *
76//* ihspnt = current geometry history pointer (not set if -1) *
77//* ltrack = flag recording the generation number *
78//* llouse = user defined flag for the current particle *
79//* ispusr = user defined spare flags for the current particle *
80//* lfsssc = logical flag for inelastic interactions ending with*
81//* fission (used also for low energy neutrons) *
82//* *
83//*----------------------------------------------------------------------*
84//* *
85const Int_t mxtrck = 2500;
86
87typedef struct {
88 Double_t xtrack[mxtrck+1];
89 Double_t ytrack[mxtrck+1];
90 Double_t ztrack[mxtrck+1];
91 Double_t ttrack[mxtrck];
92 Double_t dtrack[mxtrck];
93 Double_t etrack;
94 Double_t ptrack;
95 Double_t cxtrck;
96 Double_t cytrck;
97 Double_t cztrck;
98 Double_t wtrack;
99 Double_t cxtrpl;
100 Double_t cytrpl;
101 Double_t cztrpl;
102 Double_t zfftrk;
103 Double_t zfrttk;
104 Double_t atrack;
105 Double_t ctrack;
106 Double_t akshrt;
107 Double_t aklong;
108 Double_t wscrng;
109 Double_t wninou;
110 Double_t spausr[mkbmx1];
111 Double_t sttrck;
112 Double_t satrck;
113 Int_t ntrack;
114 Int_t mtrack;
115 Int_t jtrack;
116 Int_t ktrack;
117 Int_t mmtrck;
118 Int_t lt1trk;
119 Int_t lt2trk;
120 Int_t ihspnt;
121 Int_t ltrack;
122 Int_t llouse;
123 Int_t ispusr[mkbmx2];
124 Int_t lfsssc;
125} trackrCommon;
126#define TRACKR COMMON_BLOCK(TRACKR,trackr)
127COMMON_BLOCK_DEF(trackrCommon,TRACKR);
128//static union { Double_t spause; Double_t spausr[0];};
129//static union { Int_t ispuse; Int_t ispusr[0];};
130}