]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/tracking-ca/AliHLTTPCCAStartHitsFinder.h
- a patch to be able to load the CUDA library at runtime and only when available.
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCAStartHitsFinder.h
1 //-*- Mode: C++ -*-
2 // ************************************************************************
3 // This file is property of and copyright by the ALICE HLT Project        *
4 // ALICE Experiment at CERN, All rights reserved.                         *
5 // See cxx source for full Copyright notice                               *
6 //                                                                        *
7 //*************************************************************************
8
9 #ifndef ALIHLTTPCCASTARTHITSFINDER_H
10 #define ALIHLTTPCCASTARTHITSFINDER_H
11
12 #include "AliHLTTPCCADef.h"
13 #include "AliHLTTPCCAHitId.h"
14
15 class AliHLTTPCCATracker;
16
17 /**
18  * @class AliHLTTPCCAStartHitsFinder
19  *
20  */
21 class AliHLTTPCCAStartHitsFinder
22 {
23   public:
24     class AliHLTTPCCASharedMemory
25     {
26         friend class AliHLTTPCCAStartHitsFinder;
27       public:
28 #if !defined(HLTCA_GPUCODE)
29         AliHLTTPCCASharedMemory()
30             : fIRow( 0 ), fNRows( 0 ), fNHits( 0 ), fNOldStartHits( 0 ), fNRowStartHits( 0 ) {}
31
32         AliHLTTPCCASharedMemory( const AliHLTTPCCASharedMemory& /*dummy*/ )
33             : fIRow( 0 ), fNRows( 0 ), fNHits( 0 ), fNOldStartHits( 0 ), fNRowStartHits( 0 ) {}
34         AliHLTTPCCASharedMemory& operator=( const AliHLTTPCCASharedMemory& /*dummy*/ ) { return *this; }
35 #endif //!HLTCA_GPUCODE
36
37       protected:
38         int fIRow; // row index
39         int fNRows; // n rows
40         int fNHits; // n hits in the row
41         AliHLTTPCCAHitId fRowStartHits[ALIHLTTPCCASTARTHITSFINDER_MAX_FROWSTARTHITS]; // temp. array for the start hits
42         int fNOldStartHits; // n start hits from other jobs
43         int fNRowStartHits; // n start hits for this row
44     };
45
46     GPUd() static int NThreadSyncPoints() { return 3; }
47
48     GPUd() static void Thread( int nBlocks, int nThreads, int iBlock, int iThread, int iSync,
49                                AliHLTTPCCASharedMemory &smem, AliHLTTPCCATracker &tracker );
50 };
51
52
53 #endif //ALIHLTTPCCASTARTHITSFINDER_H