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 *
6 //*************************************************************************
8 #ifndef ALIHLTTPCCAGPUTRACKER_H
9 #define ALIHLTTPCCAGPUTRACKER_H
11 #include "AliHLTTPCCADef.h"
12 #include "AliHLTTPCCASliceOutput.h"
15 class AliHLTTPCCAClusterData;
16 class AliHLTTPCCASliceOutput;
17 class AliHLTTPCCAParam;
18 class AliHLTTPCGMMerger;
20 //Abstract Interface for GPU Tracker class
21 class AliHLTTPCCAGPUTracker
24 AliHLTTPCCAGPUTracker();
25 virtual ~AliHLTTPCCAGPUTracker();
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();
32 virtual void SetDebugLevel(const int dwLevel, std::ostream* const NewOutFile = NULL);
33 virtual int SetGPUTrackerOption(char* OptionName, int OptionValue);
35 virtual unsigned long long int* PerfTimer(int iSlice, unsigned int i);
37 virtual int InitializeSliceParam(int iSlice, AliHLTTPCCAParam ¶m);
38 virtual void SetOutputControl( AliHLTTPCCASliceOutput::outputControlStruct* val);
40 virtual const AliHLTTPCCASliceOutput::outputControlStruct* OutputControl() const;
41 virtual int GetSliceCount() const;
43 virtual int RefitMergedTracks(AliHLTTPCGMMerger* Merger);
44 virtual char* MergerBaseMemory();
45 virtual int GPUMergerAvailable();
49 AliHLTTPCCAGPUTracker( const AliHLTTPCCAGPUTracker& );
50 AliHLTTPCCAGPUTracker &operator=( const AliHLTTPCCAGPUTracker& );
53 #endif //ALIHLTTPCCAGPUTRACKER_H