When Pt is bad defined (ex. no field), the multiple scattering effect is calculated...
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCAHitArea.h
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 class AliHLTTPCCATracker;
19 class AliHLTTPCCARow;
20 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     GPUd() void Init( const AliHLTTPCCARow &row, const 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     int GetNext( const AliHLTTPCCATracker &tracker, const AliHLTTPCCARow &row,
37                  const 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