32fd0287893fd20820e8ee6831d6e4cde0af12ee
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDTrack.h
1 #ifndef ALIHLTTRDTRACK_H
2 #define ALIHLTTRDTRACK_H
3
4 #include "AliTRDtrackV1.h"
5 #include "AliHLTLogging.h"
6 class AliHLTTRDTracklet;
7
8
9 class AliHLTTRDTrack
10 {
11  public:
12   AliHLTTRDTrack();
13   ~AliHLTTRDTrack();
14   AliHLTTRDTrack( AliTRDtrackV1* inTrack);
15
16   void AddTracklets();
17   void CopyDataMembers();
18   void ExportTRDTrack(AliTRDtrackV1* outTrack);
19   AliHLTUInt8_t *GetEndPointer() // Returns pointer to the end of the track
20     { return ((AliHLTUInt8_t *) this + fSize); };
21   AliHLTUInt32_t GetSize(){return fSize;};
22   void Print(Bool_t printTracklets = kTRUE);
23   void ReadTrackletsFromMemory(void* );
24   
25  private:
26   AliHLTTRDTrack(const AliHLTTRDTrack& inTrack);
27   AliHLTTRDTrack& operator=(const AliHLTTRDTrack& inTrack);
28   void InitArrays();
29   
30   AliHLTUInt32_t fSize; // Size of the track with tracklets and clusters in the memory
31   AliTRDtrackV1* fTRDtrack;
32   
33   /* ======== From AliTRDtrackV1 ======== */
34     enum { kNdet      = 540
35         , kNstacks   =  90
36         , kNplane    =   AliESDtrack::kTRDnPlanes
37         , kNcham     =   5
38         , kNsect     =  18
39         , kNslice    =   3
40         , kNMLPslice =   8 };
41
42   /* Defenitely need */
43   UChar_t      fPIDquality;           //  No of planes used for PID calculation 
44   AliHLTTRDTracklet *fTracklet[kNplane];   //  Tracklets array defining the track
45   
46   /* Probably need */
47   Double32_t   fPID[AliPID::kSPECIES];//  PID probabilities
48   Double32_t   fBudget[3];            //  Integrated material budget
49   Double32_t   fDE;                   //  Integrated delta energy
50
51   /* ======== From AliKalmanTrack ======== */
52   
53   /* Defenitely need */
54   Double32_t fFakeRatio;  // fake ratio
55   Double32_t fChi2;       // total chi2 value for this track
56   Double32_t fMass;       // mass hypothesis
57   Int_t fLab;             // track label
58
59   /* Probably need */
60   Int_t fN;               // number of associated clusters
61   Double32_t fIntegratedLength;        // integrated length  // variables for time integration (S.Radomski@gsi.de)
62
63   /* ======= From AliExternalTrackParam ======== */
64
65   /* Defenitely need */
66   Double32_t           fX;     // X coordinate for the point of parametrisation
67   Double32_t           fAlpha; // Local <-->global coor.system rotation angle
68   Double32_t           fP[5];  // The track parameters
69   Double32_t           fC[15]; // The track parameter covariance matrix
70
71   /* Probably need */
72   //  static Double32_t    fgMostProbablePt; // "Most probable" pt (to be used if Bz=0)
73
74 };
75
76 #endif