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

          Line data    Source code
       1             : //-*- Mode: C++ -*-
       2             : // $Id$
       3             : #ifndef ALIHLTTPCHWCFEMULATOR_H
       4             : #define ALIHLTTPCHWCFEMULATOR_H
       5             : 
       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             : #include "AliHLTTPCHWCFExtractorUnit.h"
      11             : #include "AliHLTTPCHWCFPeakFinderUnit.h"
      12             : #include "AliHLTTPCHWCFProcessorUnit.h"
      13             : #include "AliHLTTPCHWCFMergerUnit.h"
      14             : #include "AliHLTTPCHWCFDivisionUnit.h"
      15             : 
      16             : class AliHLTTPCClusterMCData;
      17             : class AliHLTTPCClusterMCLabel;
      18             : 
      19             : //  @class   AliHLTTPCHWCFEmulator
      20             : //  @author Sergey Gorbunov <sergey.gorbunov@fias.uni-frankfurt.de>
      21             : //  @author Torsten Alt <talt@cern.ch> 
      22             : //  @brief  FPGA ClusterFinder Emulator for TPC
      23             : //  @note
      24             : //
      25             : class AliHLTTPCHWCFEmulator 
      26             : {
      27             :  public:  
      28             : 
      29             :   /** standard constructor */
      30             :    AliHLTTPCHWCFEmulator();
      31             :   
      32             :   /** destructor */
      33             :   virtual ~AliHLTTPCHWCFEmulator();
      34             :    
      35             :   /** set debug level */
      36           0 :   void SetDebugLevel( int val ){ fDebug = val; }
      37             : 
      38             :   /** initialisation 
      39             :    */
      40             :   void Init( const AliHLTUInt32_t *mapping, AliHLTUInt32_t configWord1, AliHLTUInt32_t configWord2 );
      41             :   
      42             :   /** Loops over all rows finding the clusters 
      43             :    */
      44             :   int FindClusters( const AliHLTUInt32_t *rawEvent,
      45             :                     AliHLTUInt32_t rawEventSize32,
      46             :                     AliHLTUInt32_t *output,
      47             :                     AliHLTUInt32_t &outputSize32,
      48             :                     const AliHLTTPCClusterMCLabel *mcLabels,
      49             :                     AliHLTUInt32_t nMCLabels,
      50             :                     AliHLTTPCClusterMCData *outputMC
      51             :                     );
      52             : 
      53             :   /* useful tools */
      54             : 
      55             :   /** read the word written in big endian format (lowest byte first) 
      56             :    */
      57             :   static AliHLTUInt32_t ReadBigEndian( AliHLTUInt32_t word );
      58             : 
      59             :   /** write a word in big endian format (least byte first) 
      60             :    */
      61             :   static  AliHLTUInt32_t WriteBigEndian( AliHLTUInt32_t word );
      62             : 
      63             :   /** create configuration word 
      64             :    **/
      65             :   static void CreateConfiguration
      66             :     ( bool doDeconvTime, bool doDeconvPad, bool doFlowControl,  
      67             :       bool doSinglePadSuppression, bool bypassMerger, 
      68             :       AliHLTUInt32_t clusterLowerLimit,AliHLTUInt32_t singleSeqLimit, 
      69             :       AliHLTUInt32_t mergerDistance, bool useTimeBinWindow, AliHLTUInt32_t chargeFluctuation, bool useTimeFollow,
      70             :       AliHLTUInt32_t &configWord1, AliHLTUInt32_t &configWord2  );
      71             :  
      72             :   /** create default configuration word 
      73             :    **/
      74             :   static void CreateDefaultConfiguration( AliHLTUInt32_t &configWord1, AliHLTUInt32_t &configWord2 ){
      75           0 :     CreateConfiguration(0,0,0,1,0,0,0, 3, 1, 0, 1, configWord1, configWord2 );
      76           0 :   }
      77             : 
      78             :   /** set tagging of deconvoluted clusters
      79             :    **/
      80           0 :   void SetTagDeconvolutedClusters( AliHLTUInt32_t option ){ fDivisionUnit.SetTagDeconvolutedClusters( option ); }
      81             : 
      82             :   /** set RCU2 flag (data is not split in two branches)
      83             :    **/
      84           0 :   void SetProcessingRCU2Data( bool b ){ fChannelExtractor.SetRCU2Flag( b ); }
      85             :   
      86           0 :   void SetNoiseSuppression(int ns) {fPeakFinderUnit.SetNoiseSuppression(ns);}
      87             : 
      88             :  private: 
      89             : 
      90             :   /** copy constructor prohibited */
      91             :   AliHLTTPCHWCFEmulator(const AliHLTTPCHWCFEmulator&);
      92             :   /** assignment operator prohibited */
      93             :   AliHLTTPCHWCFEmulator& operator=(const AliHLTTPCHWCFEmulator&);
      94             :  
      95             :   int  fDebug; // debug level
      96             :   const AliHLTUInt32_t *fkMapping; //! mapping array
      97             :   AliHLTTPCHWCFExtractorUnit fChannelExtractor; //! transient
      98             :   AliHLTTPCHWCFPeakFinderUnit fPeakFinderUnit; //! transient
      99             :   AliHLTTPCHWCFProcessorUnit fChannelProcessor; //! transient
     100             :   AliHLTTPCHWCFMergerUnit    fChannelMerger; //! transient
     101             :   AliHLTTPCHWCFDivisionUnit  fDivisionUnit;   //! transient
     102             : };
     103             : #endif

Generated by: LCOV version 1.11