]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/TPCLib/tracking-ca/AliHLTTPCCATrackerFramework.h
update from David Rohr: the CATrackerComponent now supports multiple slices
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCATrackerFramework.h
index 6b26542c0f26737acae4cd0a7d9f47dcf6551867..a9b725e5440101cdd1c5945d9df33c29c95f4f78 100644 (file)
@@ -13,6 +13,7 @@
 #include "AliHLTTPCCATracker.h"
 #include "AliHLTTPCCAGPUTracker.h"
 #include "AliHLTTPCCAParam.h"
+#include "AliHLTTPCCASliceOutput.h"
 #include <iostream>
 
 class AliHLTTPCCASliceOutput;
@@ -22,13 +23,12 @@ class AliHLTTPCCATrackerFramework
 {
 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);
@@ -39,6 +39,9 @@ public:
 
        int InitializeSliceParam(int iSlice, AliHLTTPCCAParam &param);
 
+       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);
 
@@ -57,6 +60,8 @@ private:
   int fGPUSliceCount;  //How many slices to process parallel
   AliHLTTPCCAGPUTracker fGPUTracker;
 
+  AliHLTTPCCASliceOutput::outputControlStruct* fOutputControl;
+
   AliHLTTPCCATracker fCPUTrackers[fgkNSlices];
   int fCPUSliceCount;