]>
Commit | Line | Data |
---|---|---|
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 | float Y() const { return fY; } | |
47 | float Z() const { return fZ; } | |
48 | float MinZ() const { return fMinZ; } | |
49 | float MaxZ() const { return fMaxZ; } | |
50 | float MinY() const { return fMinY; } | |
51 | float MaxY() const { return fMaxY; } | |
52 | int BZmax() const { return fBZmax; } | |
53 | int BDY() const { return fBDY; } | |
54 | int IndYmin() const { return fIndYmin; } | |
55 | int Iz() const { return fIz; } | |
56 | int HitYfst() const { return fHitYfst; } | |
57 | int HitYlst() const { return fHitYlst; } | |
58 | int Ih() const { return fIh; } | |
59 | int Ny() const { return fNy; } | |
60 | 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 |