]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/tracking-ca/AliHLTTPCCAGPUTracker.h
OpenCL version of the HLT tracker added (the new code is not used in standard compila...
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCAGPUTracker.h
1 // ************************************************************************
2 // This file is property of and copyright by the ALICE HLT Project        *
3 // ALICE Experiment at CERN, All rights reserved.                         *
4 // See cxx source for full Copyright notice                               *
5 //                                                                        *
6 //*************************************************************************
7
8 #ifndef ALIHLTTPCCAGPUTRACKER_H
9 #define ALIHLTTPCCAGPUTRACKER_H
10
11 #include "AliHLTTPCCADef.h"
12 #include "AliHLTTPCCASliceOutput.h"
13 #include <iostream>
14
15 class AliHLTTPCCAClusterData;
16 class AliHLTTPCCASliceOutput;
17 class AliHLTTPCCAParam;
18 class AliHLTTPCGMMerger;
19
20 //Abstract Interface for GPU Tracker class
21 class AliHLTTPCCAGPUTracker
22 {
23 public:
24         AliHLTTPCCAGPUTracker();
25         virtual ~AliHLTTPCCAGPUTracker();
26
27         virtual int InitGPU(int sliceCount = -1, int forceDeviceID = -1);
28         virtual int IsInitialized();
29         virtual int Reconstruct(AliHLTTPCCASliceOutput** pOutput, AliHLTTPCCAClusterData* pClusterData, int fFirstSlice, int fSliceCount = -1);
30         virtual int ExitGPU();
31
32         virtual void SetDebugLevel(const int dwLevel, std::ostream* const NewOutFile = NULL);
33         virtual int SetGPUTrackerOption(char* OptionName, int OptionValue);
34
35         virtual unsigned long long int* PerfTimer(int iSlice, unsigned int i);
36
37         virtual int InitializeSliceParam(int iSlice, AliHLTTPCCAParam &param);
38         virtual void SetOutputControl( AliHLTTPCCASliceOutput::outputControlStruct* val);
39
40         virtual const AliHLTTPCCASliceOutput::outputControlStruct* OutputControl() const;
41         virtual int GetSliceCount() const;
42
43         virtual int RefitMergedTracks(AliHLTTPCGMMerger* Merger);
44         virtual char* MergerBaseMemory();
45         virtual int GPUMergerAvailable();
46
47 private:
48         // disable copy
49         AliHLTTPCCAGPUTracker( const AliHLTTPCCAGPUTracker& );
50         AliHLTTPCCAGPUTracker &operator=( const AliHLTTPCCAGPUTracker& );
51 };
52
53 #endif //ALIHLTTPCCAGPUTRACKER_H