]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/tracking-ca/AliHLTTPCCANeighboursFinder.h
bug fix: reconstruction crash when the output buffer size exceed
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCANeighboursFinder.h
CommitLineData
00d07bcd 1//-*- Mode: C++ -*-
ce565086 2// ************************************************************************
fbb9b71b 3// This file is property of and copyright by the ALICE HLT Project *
ce565086 4// ALICE Experiment at CERN, All rights reserved. *
5// See cxx source for full Copyright notice *
6// *
7//*************************************************************************
00d07bcd 8
9#ifndef ALIHLTTPCCANEIGHBOURSFINDER_H
10#define ALIHLTTPCCANEIGHBOURSFINDER_H
11
12
13#include "AliHLTTPCCADef.h"
b22af1bf 14#include "AliHLTTPCCARow.h"
00d07bcd 15class AliHLTTPCCATracker;
16
17/**
18 * @class AliHLTTPCCANeighboursFinder
fbb9b71b 19 *
00d07bcd 20 */
21class AliHLTTPCCANeighboursFinder
22{
fbb9b71b 23 public:
24 class AliHLTTPCCASharedMemory
00d07bcd 25 {
fbb9b71b 26 friend class AliHLTTPCCANeighboursFinder;
27 public:
00d07bcd 28#if !defined(HLTCA_GPUCODE)
fbb9b71b 29 AliHLTTPCCASharedMemory()
b22af1bf 30 : fNHits( 0 ), fUpNHits( 0 ), fDnNHits( 0 ), fUpDx( 0 ), fDnDx( 0 ), fUpTx( 0 ), fDnTx( 0 ), fIRow( 0 ), fIRowUp( 0 ), fIRowDn( 0 ), fNRows( 0 ), fRow(), fRowUp(), fRowDown() {}
00d07bcd 31
fbb9b71b 32 AliHLTTPCCASharedMemory( const AliHLTTPCCASharedMemory& /*dummy*/ )
b22af1bf 33 : fNHits( 0 ), fUpNHits( 0 ), fDnNHits( 0 ), fUpDx( 0 ), fDnDx( 0 ), fUpTx( 0 ), fDnTx( 0 ), fIRow( 0 ), fIRowUp( 0 ), fIRowDn( 0 ), fNRows( 0 ), fRow(), fRowUp(), fRowDown() {}
fbb9b71b 34 AliHLTTPCCASharedMemory& operator=( const AliHLTTPCCASharedMemory& /*dummy*/ ) { return *this; }
31649d4b 35#endif //!HLTCA_GPUCODE
7be9b0d7 36
fbb9b71b 37 protected:
fbb9b71b 38 int fNHits; // n hits
39 int fUpNHits; // n hits in the next row
40 int fDnNHits; // n hits in the prev row
41 float fUpDx; // x distance to the next row
42 float fDnDx; // x distance to the previous row
43 float fUpTx; // normalized x distance to the next row
44 float fDnTx; // normalized x distance to the previous row
45 int fIRow; // row number
46 int fIRowUp; // next row number
47 int fIRowDn;// previous row number
fbb9b71b 48 int fNRows; // number of rows
7be9b0d7 49 float2 fA[256][ALIHLTTPCCANEIGHBOURS_FINDER_MAX_NNEIGHUP]; // temp memory
50 unsigned short fB[256][ALIHLTTPCCANEIGHBOURS_FINDER_MAX_NNEIGHUP]; // temp memory
b22af1bf 51 AliHLTTPCCARow fRow, fRowUp, fRowDown;
00d07bcd 52 };
00d07bcd 53
fbb9b71b 54 GPUd() static int NThreadSyncPoints() { return 2; }
55
56 GPUd() static void Thread( int nBlocks, int nThreads, int iBlock, int iThread, int iSync,
57 AliHLTTPCCASharedMemory &smem, AliHLTTPCCATracker &tracker );
ce565086 58
00d07bcd 59};
60
61
31649d4b 62#endif //ALIHLTTPCCANEIGHBOURSFINDER_H