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

          Line data    Source code
       1             : //-*- Mode: C++ -*-
       2             : // $Id: AliHLTTPCHWClusterMergerV1.h 53447 2011-12-06 21:52:47Z richterm $
       3             : 
       4             : #ifndef ALIHLTTPCHWCLUSTERMERGERV1_H
       5             : #define ALIHLTTPCHWCLUSTERMERGERV1_H
       6             : //* This file is property of and copyright by the ALICE HLT Project        * 
       7             : //* ALICE Experiment at CERN, All rights reserved.                         *
       8             : //* See cxx source for full Copyright notice                               *
       9             : 
      10             : //  @file   AliHLTTPCHWClusterMergerV1.h
      11             : //  @author Matthias Richter, Sergey Gorbunov
      12             : //  @date   2011-11-25
      13             : //  @brief  Merger class for HLT TPC Hardware clusters
      14             : //          Handles merging of branch border clusters
      15             : 
      16             : #include "AliHLTTPCClusterMCData.h"
      17             : #include "AliHLTLogging.h"
      18             : #include <vector>
      19             : #include "TObject.h"
      20             : 
      21             : class AliHLTTPCRawCluster;
      22             : 
      23             : /**
      24             :  * @class AliHLTTPCHWClusterMergerV1
      25             :  *
      26             :  * @ingroup alihlt_base
      27             :  */
      28             : class AliHLTTPCHWClusterMergerV1 : public AliHLTLogging
      29             : {
      30             :  public:
      31             :   /// standard constructor
      32             :   AliHLTTPCHWClusterMergerV1();
      33             :   /// destructor
      34             :   ~AliHLTTPCHWClusterMergerV1();
      35             : 
      36             :   Int_t Init( Bool_t processingRCU2Data );
      37             : 
      38           0 :   void SetDataPointer(  AliHLTUInt8_t *data ){ fpData=data; }
      39             : 
      40             :   Int_t SetDataBlock(  AliHLTComponentBlockData *block);
      41             : 
      42             :   /// merge clusters
      43             :   int Merge();
      44             : 
      45             :   /// cleanup
      46             :   void Clear();
      47             : 
      48             :  private:
      49             :   /// copy constructor
      50             :   AliHLTTPCHWClusterMergerV1(const AliHLTTPCHWClusterMergerV1&);
      51             :   /// assignment operator
      52             :   AliHLTTPCHWClusterMergerV1& operator=(const AliHLTTPCHWClusterMergerV1&);
      53             : 
      54             :   //////////////////////////////////////////////////////////////////////////////////////////////////////////
      55             : 
      56             :   /// helper class to store relevant data for branch border
      57             : 
      58             :   struct AliBorderParam {
      59           0 :     AliBorderParam(float a, int b): fPadPosition(a), fPatch(b){}
      60             :     Float_t fPadPosition;
      61             :     Int_t fPatch;
      62             :   };
      63             :   
      64             :   /// helper class to store relevant data for a cluster at border
      65             :   struct AliBorderRecord {
      66           0 :     AliBorderRecord( AliHLTTPCRawCluster *a, AliHLTTPCClusterMCLabel *b, AliHLTUInt32_t c ):fCluster(a), fMC(b), fTimeBin(c){}
      67             :     AliHLTTPCRawCluster *fCluster;
      68             :     AliHLTTPCClusterMCLabel *fMC;
      69             :     AliHLTUInt32_t fTimeBin;    
      70             :   };
      71             : 
      72             :   //////////////////////////////////////////////////////////////////////////////////////////////////////////
      73             : 
      74             :   static bool CompareTime( const AliBorderRecord &b1, const AliBorderRecord &b2){
      75           0 :     return b1.fTimeBin > b2.fTimeBin;
      76             :   }
      77             :  
      78             :   static bool CompareMCWeights(const AliHLTTPCClusterMCWeight &a, const AliHLTTPCClusterMCWeight &b){
      79           0 :     return a.fWeight > b.fWeight;
      80             :   }
      81             :   static bool CompareMCLabels(const AliHLTTPCClusterMCWeight &a, const AliHLTTPCClusterMCWeight &b){
      82           0 :     return a.fMCID < b.fMCID;
      83             :   }
      84             : 
      85             :   static const int fkMergeWidth = 3;
      86             :   static const int fkNSlices = 36;
      87             :   static const int fkNPatches = 6;
      88             :   static const int fkMergeTimeWindow = 3;
      89             : 
      90             :   int fNRows;//!
      91             :   int fNRowPads;//!
      92             :   int fNBorders;//!
      93             : 
      94             :   AliHLTInt16_t *fMapping;//!
      95             :   std::vector<AliBorderParam> fBorders; //!
      96             :   AliHLTUInt8_t *fpData;
      97             :   AliHLTComponentBlockData **fRawClusterBlocks; //!
      98             :   AliHLTComponentBlockData **fMCBlocks; //!
      99             : };
     100             : 
     101             : #endif //ALIHLTTPCHWCLUSTERMERGERV1_H

Generated by: LCOV version 1.11