Line data Source code
1 : //-*- Mode: C++ -*-
2 : // @(#) $Id: AliHLTTPCCARow.h 27042 2008-07-02 12:06:02Z richterm $
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 : //*************************************************************************
9 :
10 : #ifndef ALIHLTTPCCAHITAREA_H
11 : #define ALIHLTTPCCAHITAREA_H
12 :
13 :
14 : #include "AliHLTTPCCADef.h"
15 :
16 : class AliHLTTPCCAHit;
17 : class AliHLTTPCCAGrid;
18 : MEM_CLASS_PRE() class AliHLTTPCCATracker;
19 : MEM_CLASS_PRE() class AliHLTTPCCARow;
20 : MEM_CLASS_PRE() class AliHLTTPCCASliceData;
21 :
22 : /**
23 : * @class ALIHLTTPCCAHitArea
24 : *
25 : * This class is used to _iterate_ over the hit data via GetNext
26 : */
27 : class AliHLTTPCCAHitArea
28 : {
29 : public:
30 : MEM_TEMPLATE() GPUd() void Init( const MEM_TYPE( AliHLTTPCCARow) &row, GPUglobalref() const MEM_GLOBAL(AliHLTTPCCASliceData) &slice, float y, float z, float dy, float dz );
31 :
32 : /**
33 : * look up the next hit in the requested area.
34 : * Sets h to the coordinates and returns the index for the hit data
35 : */
36 : MEM_TEMPLATE() GPUd() int GetNext( register GPUconstant() const MEM_CONSTANT(AliHLTTPCCATracker) &tracker, const MEM_TYPE( AliHLTTPCCARow) &row,
37 : GPUglobalref() const MEM_GLOBAL(AliHLTTPCCASliceData) &slice, AliHLTTPCCAHit *h );
38 : /**
39 : * look up the best hit in the next hits in the requested area.
40 : * Sets h to the coordinates and returns the index for the hit data
41 : *
42 : int GetBest( const AliHLTTPCCATracker &tracker, const AliHLTTPCCARow &row,
43 : const int *content, AliHLTTPCCAHit *h);
44 : */
45 :
46 0 : float Y() const { return fY; }
47 0 : float Z() const { return fZ; }
48 0 : float MinZ() const { return fMinZ; }
49 0 : float MaxZ() const { return fMaxZ; }
50 0 : float MinY() const { return fMinY; }
51 0 : float MaxY() const { return fMaxY; }
52 0 : int BZmax() const { return fBZmax; }
53 0 : int BDY() const { return fBDY; }
54 0 : int IndYmin() const { return fIndYmin; }
55 0 : int Iz() const { return fIz; }
56 0 : int HitYfst() const { return fHitYfst; }
57 0 : int HitYlst() const { return fHitYlst; }
58 0 : int Ih() const { return fIh; }
59 0 : int Ny() const { return fNy; }
60 0 : int HitOffset() const { return fHitOffset; }
61 :
62 : protected:
63 : float fY; // search coordinates
64 : float fZ; // search coordinates
65 : float fMinZ; // search coordinates
66 : float fMaxZ; // search coordinates
67 : float fMinY; // search coordinates
68 : float fMaxY; // search coordinates
69 : int fBZmax; // maximal Z bin index
70 : int fBDY; // Y distance of bin indexes
71 : int fIndYmin; // minimum index for
72 : int fIz; // current Z bin index (incremented while iterating)
73 : int fHitYfst; //
74 : int fHitYlst; //
75 : int fIh; // some XXX index in the hit data
76 : int fNy; // Number of bins in Y direction
77 : int fHitOffset; // global hit offset XXX what's that?
78 : };
79 :
80 : #endif //ALIHLTTPCCAHITAREA_H
|