]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/TPCLib/tracking-ca/AliHLTTPCCATrackerComponent.h
fixing clang issues
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCATrackerComponent.h
index 82e96ea3d390ecff3d313291ea319aa7134c7751..ce2cc57717a5a1accba5ced79ca431ee7728220a 100644 (file)
 #define ALIHLTTPCCATRACKERCOMPONENT_H
 
 #include "AliHLTProcessor.h"
+#include "AliHLTComponentBenchmark.h"
 
 class AliHLTTPCCATrackerFramework;
 class AliHLTTPCCASliceOutput;
-class AliHLTTPCSpacePointData;
+class AliHLTTPCCAClusterData;
+struct AliHLTTPCSpacePointData;
 
 /**
  * @class AliHLTTPCCATrackerComponent
@@ -75,32 +77,43 @@ class AliHLTTPCCATrackerComponent : public AliHLTProcessor
 
   private:
 
-    /** the tracker object */
-    AliHLTTPCCATrackerFramework* fTracker;                                //! transient
+    static const int fgkNSlices = 36;       //* N slices
 
-    /** magnetic field */
-    double fSolenoidBz;                                            // see above
-    int fMinNTrackClusters; //* required min number of clusters on the track
-    double fClusterZCut;  //* cut on cluster Z position (for noise rejection at the age of TPC)
-  double fNeighboursSearchArea; //* area in cm for the neighbour search algorithm
-    double fClusterErrorCorrectionY; // correction for the cluster errors
-    double fClusterErrorCorrectionZ; // correction for the cluster errors
+    /** the tracker object */
+    AliHLTTPCCATrackerFramework* fTracker;                      //! transient
+    AliHLTTPCCAClusterData* fClusterData;                       //Storage classes for cluser data in slice
+    AliHLTTPCCASliceOutput* fSliceOutput[fgkNSlices];           //Pointers to slice tracker output structures
 
-    double fFullTime; //* total time for DoEvent() [s]
-    double fRecoTime; //* total reconstruction time [s]
-    Long_t    fNEvents;  //* number of reconstructed events
-    bool fOutputTRAKSEGS; //* use old type of output
-    bool fAllowGPU;    //* Allow this tracker to run on GPU
+    //The following parameters are maintained for compatibility to be able to change the component
+    //such to process less than all 36 slices. Currently, fMinSlice is always 0 and fSliceCount is 36
+    int fMinSlice;                                              //minimum slice number to be processed
+    int fSliceCount;                                            //Number of slices to be processed
 
-    static bool CompareClusters( AliHLTTPCSpacePointData *a, AliHLTTPCSpacePointData *b );
+    /** magnetic field */
+    double fSolenoidBz;               // see above
+    int fMinNTrackClusters;           //* required min number of clusters on the track
+    double fMinTrackPt;               //* required min Pt of tracks
+    double fClusterZCut;              //* cut on cluster Z position (for noise rejection at the age of TPC)
+    double fNeighboursSearchArea;     //* area in cm for the neighbour search algorithm
+    double fClusterErrorCorrectionY;  // correction for the cluster errors
+    double fClusterErrorCorrectionZ;  // correction for the cluster errors
+
+    AliHLTComponentBenchmark fBenchmark; // benchmarks
+    bool fAllowGPU;                   //* Allow this tracker to run on GPU
+    int fGPUHelperThreads;            // Number of helper threads for GPU tracker, set to -1 to use default number
+    int fCPUTrackers;                 //Number of CPU trackers to run in addition to GPU tracker
+    bool fGlobalTracking;             //Activate global tracking feature
+       int fGPUDeviceNum;                                //GPU Device to use, default -1 for auto detection
+       TString fGPULibrary;                      //Name of the library file that provides the GPU tracker object
 
     /** set configuration parameters **/
     void SetDefaultConfiguration();
     int ReadConfigurationString(  const char* arguments );
     int ReadCDBEntry( const char* cdbEntry, const char* chainId );
-    int Configure( const char* cdbEntry, const char* chainId, const char *commandLine  );
+    int Configure( const char* cdbEntry, const char* chainId, const char *commandLine );
+    void ConfigureSlices();
 
     ClassDef( AliHLTTPCCATrackerComponent, 0 );
 
 };
-#endif
+#endif //ALIHLTTPCCATRACKERCOMPONENT_H