ALIROOT-5600 - skip non-participating detector modules
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTExternalTrackParam.h
1 // $Id$
2 //* This file is property of and copyright by the ALICE HLT Project        * 
3 //* ALICE Experiment at CERN, All rights reserved.                         *
4 //* See cxx source for full Copyright notice                               *
5
6 #ifndef ALIHLTEXTERNALTRACKPARAM_H
7 #define ALIHLTEXTERNALTRACKPARAM_H
8
9 #include "AliHLTDataTypes.h"
10 #include "AliHLTStdIncludes.h"
11
12 /**
13  * @struct AliHLTExternalTrackParam
14  * This in a struct for tracks which are closer to the format used by offline.
15  * The offline parametrisation we find in AliExternalTrackParam class.
16  * The covariance matrix is in Double_t since this is the format in AliExternalTrackParam.
17  * This saves time in translating from Float_t to Double_t. The other values has to be copied 
18  * anyway, so these can be Float_t for saveing space.The charge is now removed and the Pt has a sign.
19  *
20  * The array of points is just appended to the structure. The member of array size 0
21  * is not supported by all compilers. An open issue is that the code can not work if
22  * the array size is 1, this was just added in order to make it compile.
23  * @ingroup alihlt_component_datatypes
24  */
25 struct AliHLTExternalTrackParam
26     {
27       Float_t fAlpha;  // azimuthal angle of reference frame
28       Float_t fX;      // x: radial distance
29       Float_t fY;      // local Y-coordinate of a track (cm)
30       Float_t fZ;      // local Z-coordinate of a track (cm)
31       Float_t fSinPsi; // local sine of the track momentum azimuthal angle
32       Float_t fTgl;    // tangent of the track momentum dip angle
33       Float_t fq1Pt;   // 1/pt (1/(GeV/c))
34       Float_t fC[15];  // covariance matrix
35       Float_t fLastX;  // x of last point
36       Float_t fLastY;  // y of last point
37       Float_t fLastZ;  // z of last point
38       Int_t   fTrackID;// track id
39       UInt_t  fFlags;  // flags
40       UInt_t  fNPoints;// number of points
41 #if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC)
42       UInt_t  fPointIDs[1]; // array of points
43 #else
44       UInt_t  fPointIDs[0]; // array of points
45 #endif
46      };
47
48 typedef struct AliHLTExternalTrackParam AliHLTExternalTrackParam;
49
50 struct AliHLTTracksData {
51   AliHLTUInt32_t fCount; // number of tracklets
52 #if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC)
53   AliHLTExternalTrackParam fTracklets[1]; // array of tracklets
54 #else
55   AliHLTExternalTrackParam fTracklets[0]; // array of tracklets
56 #endif
57 };
58
59 typedef struct AliHLTTracksData AliHLTTracksData;
60
61 #endif