--- /dev/null
+extern "C" {
+//*$ create trackr.add
+//*copy trackr
+//* *
+//*=== trackr ===========================================================*
+//* *
+//*----------------------------------------------------------------------*
+//* *
+//* tracks recording by alfredo ferrari, infn - milan *
+//* *
+//* last change 31 january 2001 by alfredo ferrari *
+//* *
+//* included in : *
+//* electr *
+//* emfsco *
+//* kaskad (new version) *
+//* kashea *
+//* kasneu *
+//* geoden (new version) *
+//* mageas *
+//* magmov *
+//* magnew *
+//* move *
+//* photon *
+//* usrsco *
+//* *
+//* ntrack = number of track segments *
+//* mtrack = number of energy deposition events along the track *
+//* 0 < i < ntrack *
+//* xtrack = end x-point of the ith track segment *
+//* ytrack = end y-point of the ith track segment *
+//* ztrack = end z-point of the ith track segment *
+//* 1 < i < ntrack *
+//* ttrack = length of the ith track segment *
+//* 1 < j < mtrack *
+//* dtrack = energy deposition of the jth deposition event *
+//* *
+//* jtrack = identity number of the particle *
+//* etrack = total energy of the particle *
+//* ptrack = momentum of the particle (not always defined, if *
+//* < 0 must be obtained from etrack) *
+//* cx,y,ztrck = direction cosines of the current particle *
+//* cx,y,ztrpl = polarization cosines of the current particle *
+//* wtrack = weight of the particle *
+//* wscrng = scoring weight: it can differ from wtrack if some *
+//* biasing techniques are used (for example inelastic *
+//* interaction length biasing) *
+//* ctrack = total curved path *
+//* zfftrk = <z_eff> of the particle *
+//* zfrttk = actual z_eff of the particle *
+//* atrack = age of the particle *
+//* akshrt = kshrt amplitude for k0/k0bar *
+//* aklong = klong amplitude for k0/k0bar *
+//* wninou = neutron algebraic balance of interactions (both *
+//* for "high" energy particles and "low" energy *
+//* neutrons) *
+//* spausr = user defined spare variables for the current *
+//* particle *
+//* sttrck = macroscopic total cross section for low energy *
+//* neutron collisions *
+//* satrck = macroscopic absorption cross section for low energy*
+//* neutron collisions (it can be negative for pnab>1) *
+//* ktrack = if > 0 neutron group of the particle (neutron) *
+//* *
+//* ntrack > 0, mtrack > 0 : energy loss distributed along the *
+//* track *
+//* ntrack > 0, mtrack = 0 : no energy loss along the track *
+//* ntrack = 0, mtrack = 0 : local energy deposition (the *
+//* value and the point are not re- *
+//* corded in trackr) *
+//* mmtrck = flag recording the material index for low energy *
+//* neutron collisions *
+//* lt1trk = initial lattice cell of the current track *
+//* (or lattice cell for a point energy deposition) *
+//* lt2trk = final lattice cell of the current track *
+//* ihspnt = current geometry history pointer (not set if -1) *
+//* ltrack = flag recording the generation number *
+//* llouse = user defined flag for the current particle *
+//* ispusr = user defined spare flags for the current particle *
+//* lfsssc = logical flag for inelastic interactions ending with*
+//* fission (used also for low energy neutrons) *
+//* *
+//*----------------------------------------------------------------------*
+//* *
+const Int_t mxtrck = 2500;
+
+typedef struct {
+ Double_t xtrack[mxtrck+1];
+ Double_t ytrack[mxtrck+1];
+ Double_t ztrack[mxtrck+1];
+ Double_t ttrack[mxtrck];
+ Double_t dtrack[mxtrck];
+ Double_t etrack;
+ Double_t ptrack;
+ Double_t cxtrck;
+ Double_t cytrck;
+ Double_t cztrck;
+ Double_t wtrack;
+ Double_t cxtrpl;
+ Double_t cytrpl;
+ Double_t cztrpl;
+ Double_t zfftrk;
+ Double_t zfrttk;
+ Double_t atrack;
+ Double_t ctrack;
+ Double_t akshrt;
+ Double_t aklong;
+ Double_t wscrng;
+ Double_t wninou;
+ Double_t spausr[mkbmx1];
+ Double_t sttrck;
+ Double_t satrck;
+ Int_t ntrack;
+ Int_t mtrack;
+ Int_t jtrack;
+ Int_t ktrack;
+ Int_t mmtrck;
+ Int_t lt1trk;
+ Int_t lt2trk;
+ Int_t ihspnt;
+ Int_t ltrack;
+ Int_t llouse;
+ Int_t ispusr[mkbmx2];
+ Int_t lfsssc;
+} trackrCommon;
+#define TRACKR COMMON_BLOCK(TRACKR,trackr)
+COMMON_BLOCK_DEF(trackrCommon,TRACKR);
+//static union { Double_t spause; Double_t spausr[0];};
+//static union { Int_t ispuse; Int_t ispusr[0];};
+}