#include "AliHLTTPCCATracker.h"
#include "AliHLTTPCCAGPUTracker.h"
#include "AliHLTTPCCAParam.h"
+#include "AliHLTTPCCASliceOutput.h"
#include <iostream>
class AliHLTTPCCASliceOutput;
{
public:
AliHLTTPCCATrackerFramework() :
- fGPUTrackerAvailable(false), fUseGPUTracker(false), fGPUDebugLevel(0), fGPUSliceCount(0), fGPUTracker(), fCPUSliceCount(fgkNSlices)
+ fGPUTrackerAvailable(false), fUseGPUTracker(false), fGPUDebugLevel(0), fGPUSliceCount(0), fGPUTracker(), fOutputControl( NULL ), fCPUSliceCount(fgkNSlices)
{
- fGPUTrackerAvailable= (fGPUTracker.InitGPU(1, -1) == 0);
- fGPUSliceCount = fGPUTrackerAvailable;
- fUseGPUTracker = fGPUTrackerAvailable;
+ fUseGPUTracker = (fGPUTrackerAvailable= (fGPUTracker.InitGPU() == 0));
+ fGPUSliceCount = fGPUTrackerAvailable ? fGPUTracker.GetSliceCount() : 0;
}
- ~AliHLTTPCCATrackerFramework()
+ ~AliHLTTPCCATrackerFramework()
{}
int InitGPU(int sliceCount = 1, int forceDeviceID = -1);
int InitializeSliceParam(int iSlice, AliHLTTPCCAParam ¶m);
+ GPUhd() const AliHLTTPCCASliceOutput::outputControlStruct* OutputControl() const { return fOutputControl; }
+ GPUhd() void SetOutputControl( AliHLTTPCCASliceOutput::outputControlStruct* val);
+
int ProcessSlices(int firstSlice, int sliceCount, AliHLTTPCCAClusterData* pClusterData, AliHLTTPCCASliceOutput** pOutput);
unsigned long long int* PerfTimer(int GPU, int iSlice, int iTimer);
int fGPUSliceCount; //How many slices to process parallel
AliHLTTPCCAGPUTracker fGPUTracker;
+ AliHLTTPCCASliceOutput::outputControlStruct* fOutputControl;
+
AliHLTTPCCATracker fCPUTrackers[fgkNSlices];
int fCPUSliceCount;