Record changes.
[u/mrichter/AliRoot.git] / TFluka / Ftrackr.h
CommitLineData
71dd9297 1#include "cfortran.h"
2#include "Rtypes.h"
3
4#include "Fdimpar.h"
5
fa3d1cc7 6extern "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 99const Int_t mxtrck = 2500;
100
101typedef 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)
144COMMON_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}