]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TRD/AliHLTTRDTracklet.h
update of TRD HLT (Konstantin)
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDTracklet.h
1 #ifndef ALIHLTTRDTRACKLET_H
2 #define ALIHLTTRDTRACKLET_H
3
4 #include "AliTRDseedV1.h"
5 #include "AliHLTDataTypes.h"
6 #include "AliHLTLogging.h"
7 class AliHLTTRDCluster;
8
9 class AliHLTTRDTracklet
10 {
11  public:
12   AliHLTTRDTracklet();
13   AliHLTTRDTracklet(AliTRDseedV1* inTracklet);
14   
15   void ExportTRDTracklet(AliTRDseedV1* outTracklet);
16   void AddClusters();
17   void CopyDataMembers();
18   AliHLTUInt8_t *GetEndPointer() // Returns pointer to the end of the tracklet
19     { return ((AliHLTUInt8_t *) this + fSize); };
20   AliHLTUInt32_t GetSize(){ return fSize; };
21   void Print(Bool_t printClusters = kTRUE);
22   void ReadClustersFromMemory(void *input);
23   
24  private:
25   AliHLTTRDTracklet(const AliHLTTRDTracklet&);
26   AliHLTTRDTracklet& operator=(const AliHLTTRDTracklet&);
27   void InitArrays();
28   
29   AliTRDseedV1* fTRDtracklet;
30   AliHLTUInt32_t fSize; // Size of the tracklet with clusters in the memory
31   
32
33   /* ======= From AliTRDseed ======== */
34   enum { knTimebins = 35 };
35
36   /* Defenitely need */
37   AliHLTTRDCluster *fClusters[knTimebins]; // Clusters
38   Float_t        fYref[2];              //  Reference y
39   Float_t        fZref[2];              //  Reference z
40   Float_t        fSigmaY;               //  "Robust" sigma in Y - constant fit
41   Float_t        fSigmaY2;              //  "Robust" sigma in Y - line fit
42
43   /* Probably need */
44   Float_t        fTilt;                 //  Tilting angle
45   Float_t        fPadLength;            //  Pad length
46   Float_t        fX0;                   //  X0 position
47   Float_t        fX[knTimebins];        //! X position
48   Float_t        fY[knTimebins];        //! Y position
49   Float_t        fZ[knTimebins];        //! Z position
50   Int_t          fIndexes[knTimebins];  //! Indexes
51   Bool_t         fUsable[knTimebins];   //  Indication  - usable cluster
52   Float_t        fYfit[2];              //  Y fit position +derivation
53   Float_t        fYfitR[2];             //  Y fit position +derivation
54   Float_t        fZfit[2];              //  Z fit position
55   Float_t        fZfitR[2];             //  Z fit position
56   Float_t        fMeanz;                //  Mean vaue of z
57   Float_t        fZProb;                //  Max probbable z
58   Int_t          fLabels[2];            //  Labels
59   Int_t          fN;                    //  Number of associated clusters
60   Int_t          fN2;                   //  Number of not crossed
61   Int_t          fNUsed;                //  Number of used clusters
62   Int_t          fFreq;                 //  Frequency
63   Int_t          fNChange;              //  Change z counter
64   Float_t        fMPads;                //  Mean number of pads per cluster
65
66   Float_t        fC;                    //  Curvature
67   Float_t        fCC;                   //  Curvature with constrain
68   Float_t        fChi2;                 //  Global chi2
69   Float_t        fChi2Z;                //  Global chi2
70
71   /* ======= From AliTRDseedV1 ======== */
72
73   /* Defenitely need */
74   Int_t            fDet;                    //  TRD detector
75   Float_t          fMom;                    //  Momentum estimate for  tracklet [GeV/c]
76   Float_t          fdX;                     // length of time bin
77
78   /* Probably need */
79
80 };
81
82 #endif