]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/tracking-ca/AliHLTTPCCARow.h
added offline wrapper for HLT TPC CA tracker (Sergey)
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCARow.h
1 //-*- Mode: C++ -*-
2 // @(#) $Id$
3
4 //* This file is property of and copyright by the ALICE HLT Project        * 
5 //* ALICE Experiment at CERN, All rights reserved.                         *
6 //* See cxx source for full Copyright notice                               *
7
8 #ifndef ALIHLTTPCCAROW_H
9 #define ALIHLTTPCCAROW_H
10
11 #include "Rtypes.h"
12
13 #include "AliHLTTPCCAHit.h"
14 #include "AliHLTTPCCACell.h"
15 #include "AliHLTTPCCAEndPoint.h"
16
17 /**
18  * @class ALIHLTTPCCARow
19  *
20  * The ALIHLTTPCCARow class is a hit and cells container for one TPC row.
21  * It is the internal class of the AliHLTTPCCATracker algorithm.
22  *
23  */
24 class AliHLTTPCCARow
25 {
26  public: 
27
28   AliHLTTPCCARow();
29   AliHLTTPCCARow ( const AliHLTTPCCARow &);
30   AliHLTTPCCARow &operator=( const AliHLTTPCCARow &);
31
32   virtual ~AliHLTTPCCARow(){ Clear(); }
33
34   AliHLTTPCCAHit  *&Hits() { return fHits; }
35   AliHLTTPCCACell *&Cells(){ return fCells;}
36   Int_t  *&CellHitPointers() { return fCellHitPointers; }
37   AliHLTTPCCAEndPoint *&EndPoints(){ return fEndPoints;}
38  
39   Int_t &NHits()  { return fNHits; }
40   Int_t &NCells() { return fNCells; }
41   Int_t &NEndPoints() { return fNEndPoints; }
42   Float_t &X() { return fX; }
43   Float_t &MaxY() { return fMaxY; }
44   Float_t &DeltaY() { return fDeltaY; }
45   Float_t &DeltaZ() { return fDeltaZ; }
46
47   AliHLTTPCCAHit  &GetCellHit( AliHLTTPCCACell &c, Int_t i ){ 
48     //* get hit number i of the cell c
49     return fHits[fCellHitPointers[c.FirstHitRef()+i]]; 
50   }
51
52   void Clear();
53
54   static Bool_t CompareCellZMax( AliHLTTPCCACell&c, Double_t ZMax )
55   {
56     return (c.ZMax()<ZMax);
57   }
58   static Bool_t CompareEndPointZ( AliHLTTPCCAEndPoint &p, Double_t Z )
59   {
60     return (p.Param().GetZ()<Z);
61   }
62
63 private:
64
65   AliHLTTPCCAHit *fHits;   // hit array
66   AliHLTTPCCACell *fCells; // cell array
67   Int_t *fCellHitPointers; // pointers cell->hits
68   AliHLTTPCCAEndPoint *fEndPoints; // array of track end points
69   Int_t fNHits, fNCells, fNEndPoints;   // number of hits and cells
70   Float_t fX;              // X coordinate of the row
71   Float_t fMaxY;           // maximal Y coordinate of the row
72   Float_t fDeltaY;         // allowed Y deviation to the next row
73   Float_t fDeltaZ;         // allowed Z deviation to the next row
74
75   ClassDef(AliHLTTPCCARow,1);
76 };
77
78 #endif