LCOV - code coverage report
Current view: top level - HLT/TPCLib/tracking-ca - AliHLTTPCCASliceOutput.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 11 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 12 0.0 %

          Line data    Source code
       1             : //-*- Mode: C++ -*-
       2             : // ************************************************************************
       3             : // This file is property of and copyright by the ALICE HLT Project        *
       4             : // ALICE Experiment at CERN, All rights reserved.                         *
       5             : // See cxx source for full Copyright notice                               *
       6             : //                                                                        *
       7             : //*************************************************************************
       8             : 
       9             : 
      10             : #ifndef ALIHLTTPCCASLICEOUTPUT_H
      11             : #define ALIHLTTPCCASLICEOUTPUT_H
      12             : 
      13             : #include "AliHLTTPCCADef.h"
      14             : 
      15             : #if !defined(__OPENCL__) || defined(HLTCA_HOSTCODE)
      16             : 
      17             : #include <cstdlib>
      18             : #ifndef HLTCA_GPUCODE
      19             : #include "AliHLTTPCCASliceOutTrack.h"
      20             : #else
      21             : class AliHLTTPCCASliceOutTrack;
      22             : #endif
      23             : #else
      24             : #define NULL 0
      25             : #endif
      26             : 
      27             : 
      28             : /**
      29             :  * @class AliHLTTPCCASliceOutput
      30             :  *
      31             :  * AliHLTTPCCASliceOutput class is used to store the output of AliHLTTPCCATracker{Component}
      32             :  * and transport the output to AliHLTTPCCAGBMerger{Component}
      33             :  *
      34             :  * The class contains all the necessary information about TPC tracks, reconstructed in one slice.
      35             :  * This includes the reconstructed track parameters and some compressed information
      36             :  * about the assigned clusters: clusterId, position and amplitude.
      37             :  *
      38             :  */
      39             : class AliHLTTPCCASliceOutput
      40             : {
      41             :   public:
      42             : 
      43             :   struct outputControlStruct
      44             :   {
      45           0 :     outputControlStruct() :  fOutputPtr( NULL ), fOutputMaxSize ( 0 ), fEndOfSpace(0) {}
      46             :     char* volatile fOutputPtr;          //Pointer to Output Space, NULL to allocate output space
      47             :     volatile int fOutputMaxSize;                //Max Size of Output Data if Pointer to output space is given
      48             :     bool fEndOfSpace; // end of space flag 
      49             :   };
      50             : 
      51             : #if !defined(__OPENCL__) || defined(HLTCA_HOSTCODE)
      52           0 :   GPUhd() int NTracks()                    const { return fNTracks;              }
      53           0 :   GPUhd() int NLocalTracks()               const { return fNLocalTracks;         }
      54           0 :   GPUhd() int NTrackClusters()             const { return fNTrackClusters;       }  
      55             : #ifndef HLTCA_GPUCODE
      56           0 :   GPUhd() const AliHLTTPCCASliceOutTrack *GetFirstTrack() const { return fMemory; }
      57           0 :   GPUhd() AliHLTTPCCASliceOutTrack *FirstTrack(){ return fMemory; }
      58             : #endif
      59           0 :   GPUhd() size_t Size() const { return(fMemorySize); }
      60             : 
      61             :   static int EstimateSize( int nOfTracks, int nOfTrackClusters );
      62             :   static void Allocate(AliHLTTPCCASliceOutput* &ptrOutput, int nTracks, int nTrackHits, outputControlStruct* outputControl);
      63             : 
      64           0 :   GPUhd() void SetNTracks       ( int v )  { fNTracks = v;        }
      65           0 :   GPUhd() void SetNLocalTracks  ( int v )  { fNLocalTracks = v;   }
      66           0 :   GPUhd() void SetNTrackClusters( int v )  { fNTrackClusters = v; }
      67             : 
      68             :   private:
      69             : 
      70             :   AliHLTTPCCASliceOutput()
      71             :     : fNTracks( 0 ), fNLocalTracks( 0 ), fNTrackClusters( 0 ), fMemorySize( 0 ){}
      72             :   
      73             :   ~AliHLTTPCCASliceOutput() {}
      74             :   AliHLTTPCCASliceOutput( const AliHLTTPCCASliceOutput& );
      75             :   AliHLTTPCCASliceOutput& operator=( const AliHLTTPCCASliceOutput& ) { return *this; }
      76             : 
      77           0 :   GPUh() void SetMemorySize(size_t val) { fMemorySize = val; }
      78             : 
      79             :   int fNTracks;                   // number of reconstructed tracks
      80             :   int fNLocalTracks;
      81             :   int fNTrackClusters;            // total number of track clusters
      82             :   size_t fMemorySize;           // Amount of memory really used
      83             : 
      84             :   //Must be last element of this class, user has to make sure to allocate anough memory consecutive to class memory!
      85             :   //This way the whole Slice Output is one consecutive Memory Segment
      86             : 
      87             : #ifndef HLTCA_GPUCODE
      88             :   AliHLTTPCCASliceOutTrack fMemory[0]; // the memory where the pointers above point into
      89             : #endif
      90             : #endif
      91             : 
      92             : };
      93             : #endif 

Generated by: LCOV version 1.11