]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TRD/AliHLTTRDTracklet.h
Updates from Filip
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDTracklet.h
1 //-*- Mode: C++ -*-
2 // $Id$
3
4 #ifndef ALIHLTTRDTRACKLET_H
5 #define ALIHLTTRDTRACKLET_H
6 //* This file is property of and copyright by the ALICE HLT Project        * 
7 //* ALICE Experiment at CERN, All rights reserved.                         *
8 //* See cxx source for full Copyright notice                               *
9
10 #include "AliTRDseedV1.h"
11 #include "AliHLTDataTypes.h"
12 #include "AliHLTLogging.h"
13 #include "AliHLTTRDCluster.h"
14
15 class AliHLTTRDTracklet
16 {
17  public:
18   AliHLTTRDTracklet();
19   AliHLTTRDTracklet(const AliTRDseedV1* const inTracklet);
20   
21   void CopyDataMembers(const AliTRDseedV1* const inTracklet);
22   void ExportTRDTracklet(AliTRDseedV1* const outTracklet) const;
23   AliHLTUInt8_t *GetEndPointer() const // Returns pointer to the end of the tracklet
24     { return ((AliHLTUInt8_t *)this + fSize); };
25   AliHLTUInt32_t GetSize() const { return fSize; };
26   void Print(Bool_t printClusters = kTRUE) const;
27   static AliHLTUInt32_t SaveAt(AliHLTUInt8_t *const block, const AliTRDseedV1* const inTracklet);
28   static AliHLTUInt32_t LoadFrom(AliTRDseedV1 *const outTracklet, const AliHLTUInt8_t *const block);
29   
30  private:
31   AliHLTTRDTracklet(const AliHLTTRDTracklet&);
32   AliHLTTRDTracklet& operator=(const AliHLTTRDTracklet&);
33   void InitArrays();
34
35   /* Defenitely need */
36   UInt_t         fN;                     // number of clusters attached/used/shared
37   Float_t        fdX;                    // length of time bin
38   Float_t        fYref[2];               // Reference y
39   Float_t        fZref[2];               // Reference z
40   Float_t        fS2Y;                   // estimated resolution in the r-phi direction
41   Float_t        fPt;                    // Momentum estimate for tracklet [GeV/c]
42  
43   /* Probably need */
44   Float_t        fPad[3];                //  local pad definition : length/width/tilt 
45   Float_t        fX0;                    //  X0 position
46   Float_t        fYfit[2];               //  Y fit position +derivation
47   Float_t        fZfit[2];               //  Z fit position
48   Float_t        fC[2];                  //  Curvature Rieman[0] Vertex[1]
49   Float_t        fChi2;                  //  Global chi2
50   Float_t        fProb[AliPID::kSPECIES];// PID probabilities
51
52   /* Not needed */
53   // Float_t        fExB;                    // tg(a_L) @ tracklet location
54   // Float_t        fVD;                     // drift velocity @ tracklet location
55   // Float_t        fT0;                     // time 0 @ tracklet location
56   // Float_t        fS2PRF;                  // sigma^2 PRF for xd->0 and phi=a_L 
57   // Float_t        fDiffL;                  // longitudinal diffusion coefficient
58   // Float_t        fDiffT;                  // transversal diffusion coefficient
59   // Float_t        fX;                      // radial position of the tracklet
60   // Float_t        fY;                      // r-phi position of the tracklet
61   // Float_t        fZ;                      // z position of the tracklet
62   // Float_t        fS2Z;                    // estimated resolution in the z direction 
63   // Float_t        fdEdx[AliTRDseedV1::kNslices];         // dE/dx measurements for tracklet
64   // Float_t        fRefCov[7];              // covariance matrix of the track in the yz plane + the rest of the diagonal elements
65   // Float_t        fCov[3];                 // covariance matrix of the tracklet in the xy plane
66
67   UChar_t        fPos[AliTRDseedV1::kNclusters]; // position of the cluster in the original array
68
69   Short_t        fDet;                   // TRD detector
70   UChar_t        fBits;                  // Bits of the tracklet
71   AliHLTUInt8_t  fCount;                 // Number of clusters saved in the open array
72   AliHLTUInt32_t fSize;                  // Size of the tracklet with clusters in the memory
73
74 #if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC)
75   AliHLTTRDExtCluster fClusters[1];                         // Open array of clusters
76 #else
77   AliHLTTRDExtCluster fClusters[0];                         // Open array of clusters
78 #endif
79
80 };
81
82 #endif