]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TRD/AliHLTTRDTracklet.h
cleanup of HLTTRDCalibration component, fixing bug in calibration: dQdl (Theodor)
[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   // void ReadClustersFromMemory(void *input);
28   
29  private:
30   AliHLTTRDTracklet(const AliHLTTRDTracklet&);
31   AliHLTTRDTracklet& operator=(const AliHLTTRDTracklet&);
32   void InitArrays();
33
34   /* Defenitely need */
35   UInt_t         fN;                     // number of clusters attached/used/shared
36   Float_t        fdX;                    // length of time bin
37   Float_t        fYref[2];               // Reference y
38   Float_t        fZref[2];               // Reference z
39   Float_t        fS2Y;                   // estimated resolution in the r-phi direction
40   Float_t        fPt;                    // Momentum estimate for tracklet [GeV/c]
41  
42   /* Probably need */
43   Float_t        fPad[3];                //  local pad definition : length/width/tilt 
44   Float_t        fX0;                    //  X0 position
45   Float_t        fYfit[2];               //  Y fit position +derivation
46   Float_t        fZfit[2];               //  Z fit position
47   Float_t        fC;                     //  Curvature
48   Float_t        fChi2;                  //  Global chi2
49   Float_t        fProb[AliPID::kSPECIES];// PID probabilities
50
51   /* Not needed */
52   // Float_t        fExB;                    // tg(a_L) @ tracklet location
53   // Float_t        fVD;                     // drift velocity @ tracklet location
54   // Float_t        fT0;                     // time 0 @ tracklet location
55   // Float_t        fS2PRF;                  // sigma^2 PRF for xd->0 and phi=a_L 
56   // Float_t        fDiffL;                  // longitudinal diffusion coefficient
57   // Float_t        fDiffT;                  // transversal diffusion coefficient
58   // Float_t        fX;                      // radial position of the tracklet
59   // Float_t        fY;                      // r-phi position of the tracklet
60   // Float_t        fZ;                      // z position of the tracklet
61   // Float_t        fS2Z;                    // estimated resolution in the z direction 
62   // Float_t        fdEdx[AliTRDseedV1::kNslices];         // dE/dx measurements for tracklet
63   // Float_t        fRefCov[7];              // covariance matrix of the track in the yz plane + the rest of the diagonal elements
64   // Float_t        fCov[3];                 // covariance matrix of the tracklet in the xy plane
65
66   UChar_t        fPos[AliTRDseedV1::kNclusters]; // position of the cluster in the original array
67
68   Short_t        fDet;                   // TRD detector
69   UChar_t        fBits;                  // Bits of the tracklet
70   AliHLTUInt8_t  fCount;                 // Number of clusters saved in the open array
71   AliHLTUInt32_t fSize;                  // Size of the tracklet with clusters in the memory
72
73 #if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC)
74   AliHLTTRDCluster fClusters[1];                         // Open array of clusters
75 #else
76   AliHLTTRDCluster fClusters[0];                         // Open array of clusters
77 #endif
78
79 };
80
81 #endif