]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TFluka/Ftrackr.h
Stand-alone library for ESD. Possibility to use only root and lidESD.so for analysis...
[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 *
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//*----------------------------------------------------------------------*
fc929c48 86//
87
88//
89// TFluka specific:
90// ispusr[mkbmx2 - 1] : track index in vmcstack
91// ispusr[mkbmx2 - 2] : flag for "interrupted" track
92//
93
fa3d1cc7 94const Int_t mxtrck = 2500;
95
96typedef struct {
97 Double_t xtrack[mxtrck+1];
98 Double_t ytrack[mxtrck+1];
99 Double_t ztrack[mxtrck+1];
100 Double_t ttrack[mxtrck];
101 Double_t dtrack[mxtrck];
5929ad29 102 Double_t dptrck[mxtrck][3];
fa3d1cc7 103 Double_t etrack;
104 Double_t ptrack;
105 Double_t cxtrck;
106 Double_t cytrck;
107 Double_t cztrck;
108 Double_t wtrack;
109 Double_t cxtrpl;
110 Double_t cytrpl;
111 Double_t cztrpl;
112 Double_t zfftrk;
113 Double_t zfrttk;
114 Double_t atrack;
115 Double_t ctrack;
5929ad29 116 Double_t cmtrck;
fa3d1cc7 117 Double_t akshrt;
118 Double_t aklong;
119 Double_t wscrng;
120 Double_t wninou;
121 Double_t spausr[mkbmx1];
122 Double_t sttrck;
123 Double_t satrck;
124 Int_t ntrack;
125 Int_t mtrack;
126 Int_t jtrack;
127 Int_t ktrack;
128 Int_t mmtrck;
129 Int_t lt1trk;
130 Int_t lt2trk;
131 Int_t ihspnt;
132 Int_t ltrack;
133 Int_t llouse;
134 Int_t ispusr[mkbmx2];
135 Int_t lfsssc;
cd4c194d 136 Int_t lpkill;
fa3d1cc7 137} trackrCommon;
138#define TRACKR COMMON_BLOCK(TRACKR,trackr)
139COMMON_BLOCK_DEF(trackrCommon,TRACKR);
140//static union { Double_t spause; Double_t spausr[0];};
141//static union { Int_t ispuse; Int_t ispusr[0];};
142}