//-*- Mode: C++ -*-
// @(#) $Id: AliHLTTPCCARow.h 27042 2008-07-02 12:06:02Z richterm $
-
-//* This file is property of and copyright by the ALICE HLT Project *
-//* ALICE Experiment at CERN, All rights reserved. *
-//* See cxx source for full Copyright notice *
+// ************************************************************************
+// This file is property of and copyright by the ALICE HLT Project *
+// ALICE Experiment at CERN, All rights reserved. *
+// See cxx source for full Copyright notice *
+// *
+//*************************************************************************
#ifndef ALIHLTTPCCAHITAREA_H
#define ALIHLTTPCCAHITAREA_H
class AliHLTTPCCAGrid;
class AliHLTTPCCATracker;
class AliHLTTPCCARow;
+class AliHLTTPCCASliceData;
/**
* @class ALIHLTTPCCAHitArea
*
+ * This class is used to _iterate_ over the hit data via GetNext
*/
class AliHLTTPCCAHitArea
{
-public:
-
- GPUd() void Init( AliHLTTPCCAGrid &grid, UShort_t *content, UInt_t hitoffset, Float_t y, Float_t z, Float_t dy, Float_t dz );
- GPUd() Int_t GetNext(AliHLTTPCCATracker &tracker, AliHLTTPCCARow &row, UShort_t *content,AliHLTTPCCAHit &h);
- GPUd() Int_t GetBest(AliHLTTPCCATracker &tracker, AliHLTTPCCARow &row, UShort_t *content,AliHLTTPCCAHit &h );
-
- GPUhd() Float_t& Y(){ return fY;}
- GPUhd() Float_t& Z(){ return fZ;}
- GPUhd() Float_t& MinZ(){ return fMinZ;}
- GPUhd() Float_t& MaxZ(){ return fMaxZ;}
- GPUhd() Float_t& MinY(){ return fMinY;}
- GPUhd() Float_t& MaxY(){ return fMaxY;}
- GPUhd() UInt_t& BZmax(){ return fBZmax;}
- GPUhd() UInt_t& BDY(){ return fBDY;}
- GPUhd() UInt_t& IndYmin(){ return fIndYmin;}
- GPUhd() UInt_t& Iz(){ return fIz;}
- GPUhd() UInt_t& HitYfst(){ return fHitYfst;}
- GPUhd() UInt_t& HitYlst(){ return fHitYlst;}
- GPUhd() UInt_t& Ih(){ return fIh;}
- GPUhd() UInt_t& Ny(){ return fNy;}
- GPUhd() UInt_t& HitOffset(){ return fHitOffset;}
+ public:
+ GPUd() void Init( const AliHLTTPCCARow &row, const AliHLTTPCCASliceData &slice, float y, float z, float dy, float dz );
- protected:
+ /**
+ * look up the next hit in the requested area.
+ * Sets h to the coordinates and returns the index for the hit data
+ */
+ int GetNext( const AliHLTTPCCATracker &tracker, const AliHLTTPCCARow &row,
+ const AliHLTTPCCASliceData &slice, AliHLTTPCCAHit *h );
+ /**
+ * look up the best hit in the next hits in the requested area.
+ * Sets h to the coordinates and returns the index for the hit data
+ *
+ int GetBest( const AliHLTTPCCATracker &tracker, const AliHLTTPCCARow &row,
+ const int *content, AliHLTTPCCAHit *h);
+ */
- Float_t fY, fZ, fMinZ, fMaxZ, fMinY, fMaxY; // search coordinates
- UInt_t fBZmax, fBDY, fIndYmin, fIz, fHitYfst, fHitYlst, fIh, fNy; // !
- UInt_t fHitOffset; // global hit offset
+ float Y() const { return fY; }
+ float Z() const { return fZ; }
+ float MinZ() const { return fMinZ; }
+ float MaxZ() const { return fMaxZ; }
+ float MinY() const { return fMinY; }
+ float MaxY() const { return fMaxY; }
+ int BZmax() const { return fBZmax; }
+ int BDY() const { return fBDY; }
+ int IndYmin() const { return fIndYmin; }
+ int Iz() const { return fIz; }
+ int HitYfst() const { return fHitYfst; }
+ int HitYlst() const { return fHitYlst; }
+ int Ih() const { return fIh; }
+ int Ny() const { return fNy; }
+ int HitOffset() const { return fHitOffset; }
+
+ protected:
+ float fY; // search coordinates
+ float fZ; // search coordinates
+ float fMinZ; // search coordinates
+ float fMaxZ; // search coordinates
+ float fMinY; // search coordinates
+ float fMaxY; // search coordinates
+ int fBZmax; // maximal Z bin index
+ int fBDY; // Y distance of bin indexes
+ int fIndYmin; // minimum index for
+ int fIz; // current Z bin index (incremented while iterating)
+ int fHitYfst; //
+ int fHitYlst; //
+ int fIh; // some XXX index in the hit data
+ int fNy; // Number of bins in Y direction
+ int fHitOffset; // global hit offset XXX what's that?
};
-#endif
+#endif //ALIHLTTPCCAHITAREA_H