#define ALIHLTTPCCATRACKERCOMPONENT_H
#include "AliHLTProcessor.h"
+#include "AliHLTComponentBenchmark.h"
class AliHLTTPCCATrackerFramework;
class AliHLTTPCCASliceOutput;
-class AliHLTTPCSpacePointData;
+class AliHLTTPCCAClusterData;
+struct AliHLTTPCSpacePointData;
/**
* @class AliHLTTPCCATrackerComponent
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