LCOV - code coverage report
Current view: top level - HLT/TPCLib/tracking-ca - AliHLTTPCCATrackerComponent.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 1 100.0 %
Date: 2016-06-14 17:26:59 Functions: 1 5 20.0 %

          Line data    Source code
       1             : //-*- Mode: C++ -*-
       2             : // @(#) $Id$
       3             : // ************************************************************************
       4             : // This file is property of and copyright by the ALICE HLT Project        *
       5             : // ALICE Experiment at CERN, All rights reserved.                         *
       6             : // See cxx source for full Copyright notice                               *
       7             : //                                                                        *
       8             : //*************************************************************************
       9             : 
      10             : #ifndef ALIHLTTPCCATRACKERCOMPONENT_H
      11             : #define ALIHLTTPCCATRACKERCOMPONENT_H
      12             : 
      13             : #include "AliHLTProcessor.h"
      14             : #include "AliHLTComponentBenchmark.h"
      15             : 
      16             : class AliHLTTPCCATrackerFramework;
      17             : class AliHLTTPCCASliceOutput;
      18             : class AliHLTTPCCAClusterData;
      19             : struct AliHLTTPCSpacePointData;
      20             : 
      21             : /**
      22             :  * @class AliHLTTPCCATrackerComponent
      23             :  * The Cellular Automaton tracker component.
      24             :  */
      25             : class AliHLTTPCCATrackerComponent : public AliHLTProcessor
      26             : {
      27             :   public:
      28             :     /** standard constructor */
      29             :     AliHLTTPCCATrackerComponent();
      30             : 
      31             :     /** dummy copy constructor, defined according to effective C++ style */
      32             :     AliHLTTPCCATrackerComponent( const AliHLTTPCCATrackerComponent& );
      33             : 
      34             :     /** dummy assignment op, but defined according to effective C++ style */
      35             :     AliHLTTPCCATrackerComponent& operator=( const AliHLTTPCCATrackerComponent& );
      36             : 
      37             :     /** standard destructor */
      38             :     virtual ~AliHLTTPCCATrackerComponent();
      39             : 
      40             :     // Public functions to implement AliHLTComponent's interface.
      41             :     // These functions are required for the registration process
      42             : 
      43             :     /** @see component interface @ref AliHLTComponent::GetComponentID */
      44             :     const char* GetComponentID() ;
      45             : 
      46             :     /** @see component interface @ref AliHLTComponent::GetInputDataTypes */
      47             :     void GetInputDataTypes( vector<AliHLTComponentDataType>& list )  ;
      48             : 
      49             :     /** @see component interface @ref AliHLTComponent::GetOutputDataType */
      50             :     AliHLTComponentDataType GetOutputDataType() ;
      51             : 
      52             :     /** @see component interface @ref AliHLTComponent::GetOutputDataSize */
      53             :     virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ) ;
      54             : 
      55             :     /** @see component interface @ref AliHLTComponent::Spawn */
      56             :     AliHLTComponent* Spawn() ;
      57             : 
      58             :   protected:
      59             : 
      60             :     // Protected functions to implement AliHLTComponent's interface.
      61             :     // These functions provide initialization as well as the actual processing
      62             :     // capabilities of the component.
      63             : 
      64             :     /** @see component interface @ref AliHLTComponent::DoInit */
      65             :     int DoInit( int argc, const char** argv );
      66             : 
      67             :     /** @see component interface @ref AliHLTComponent::DoDeinit */
      68             :     int DoDeinit();
      69             : 
      70             :     /** reconfigure **/
      71             :     int Reconfigure( const char* cdbEntry, const char* chainId );
      72             : 
      73             :     /** @see component interface @ref AliHLTProcessor::DoEvent */
      74             :     int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
      75             :                  AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
      76             :                  AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
      77             : 
      78             :   private:
      79             : 
      80             :     static const int fgkNSlices = 36;       //* N slices
      81             : 
      82             :     /** the tracker object */
      83             :     AliHLTTPCCATrackerFramework* fTracker;                      //! transient
      84             :     AliHLTTPCCAClusterData* fClusterData;                       //Storage classes for cluser data in slice
      85             :     AliHLTTPCCASliceOutput* fSliceOutput[fgkNSlices];           //Pointers to slice tracker output structures
      86             : 
      87             :     //The following parameters are maintained for compatibility to be able to change the component
      88             :     //such to process less than all 36 slices. Currently, fMinSlice is always 0 and fSliceCount is 36
      89             :     int fMinSlice;                                              //minimum slice number to be processed
      90             :     int fSliceCount;                                            //Number of slices to be processed
      91             : 
      92             :     /** magnetic field */
      93             :     double fSolenoidBz;               // see above
      94             :     int fMinNTrackClusters;           //* required min number of clusters on the track
      95             :     double fMinTrackPt;               //* required min Pt of tracks
      96             :     double fClusterZCut;              //* cut on cluster Z position (for noise rejection at the age of TPC)
      97             :     double fNeighboursSearchArea;     //* area in cm for the neighbour search algorithm
      98             :     double fClusterErrorCorrectionY;  // correction for the cluster errors
      99             :     double fClusterErrorCorrectionZ;  // correction for the cluster errors
     100             : 
     101             :     AliHLTComponentBenchmark fBenchmark; // benchmarks
     102             :     bool fAllowGPU;                   //* Allow this tracker to run on GPU
     103             :     int fGPUHelperThreads;            // Number of helper threads for GPU tracker, set to -1 to use default number
     104             :     int fCPUTrackers;                 //Number of CPU trackers to run in addition to GPU tracker
     105             :     bool fGlobalTracking;             //Activate global tracking feature
     106             :         int fGPUDeviceNum;                                //GPU Device to use, default -1 for auto detection
     107             :         TString fGPULibrary;                      //Name of the library file that provides the GPU tracker object
     108             : 
     109             :     /** set configuration parameters **/
     110             :     void SetDefaultConfiguration();
     111             :     int ReadConfigurationString(  const char* arguments );
     112             :     int ReadCDBEntry( const char* cdbEntry, const char* chainId );
     113             :     int Configure( const char* cdbEntry, const char* chainId, const char *commandLine );
     114             :     void ConfigureSlices();
     115             : 
     116           6 :     ClassDef( AliHLTTPCCATrackerComponent, 0 );
     117             : 
     118             : };
     119             : #endif //ALIHLTTPCCATRACKERCOMPONENT_H

Generated by: LCOV version 1.11