LCOV - code coverage report
Current view: top level - HLT/TPCLib - AliHLTTPCHWCFDataReverterComponent.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             : // $Id$
       2             : // XEmacs -*-C++-*-
       3             : 
       4             : #ifndef ALIHLTTPCHWCFDATAREVERTERCOMPONENT_H
       5             : #define ALIHLTTPCHWCFDATAREVERTERCOMPONENT_H
       6             : 
       7             : //* This file is property of and copyright by the ALICE HLT Project        * 
       8             : //* ALICE Experiment at CERN, All rights reserved.                         *
       9             : //* See cxx source for full Copyright notice                               *
      10             : 
      11             : /// @file   AliHLTTPCHWCFDataReverterComponent.h
      12             : /// @author Kenneth Aamodt
      13             : /// @date   
      14             : /// @brief  Component for reverting data for the HW clusterfinder
      15             : ///
      16             : 
      17             : #include "AliHLTProcessor.h"
      18             : #include "AliHLTTPCPad.h"
      19             : #include "AliHLTDataTypes.h"
      20             : 
      21             : class AliHLTTPCDigitReader;
      22             : class AliHLTTPCMapping;
      23             : 
      24             : /**
      25             :  * @class AliHLTTPCHWCFDataReverterComponent
      26             :  * Implementation of the zero suppression component.
      27             :  * The component implements the interface methods of the @ref AliHLTProcessor.
      28             :  *
      29             :  * The component orders the data in the format the Hardware ClusterFinder 
      30             :  * expects, and revert the 40 bit altro words.
      31             :  * 
      32             :  * The component has the following component arguments:
      33             :  *
      34             :  * @ingroup alihlt_tpc_components
      35             :  */
      36             : class AliHLTTPCHWCFDataReverterComponent : public AliHLTProcessor
      37             :     {
      38             :     public:
      39             :         /** constructor */
      40             :         AliHLTTPCHWCFDataReverterComponent();
      41             :         /** destructor */
      42             :         virtual ~AliHLTTPCHWCFDataReverterComponent();
      43             : 
      44             :         // Public functions to implement AliHLTComponent's interface.
      45             :         // These functions are required for the registration process
      46             : 
      47             :   /** interface function, see AliHLTComponent for description */
      48             :   const char* GetComponentID();
      49             :   /** interface function, see AliHLTComponent for description */
      50             :   void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
      51             :   /** interface function, see AliHLTComponent for description */
      52             :   AliHLTComponentDataType GetOutputDataType();
      53             :   /** interface function, see AliHLTComponent for description */
      54             :   int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
      55             :   /** interface function, see AliHLTComponent for description */
      56             :   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
      57             :   /** interface function, see AliHLTComponent for description */
      58             :   AliHLTComponent* Spawn();
      59             : 
      60             :       Int_t DeInitializePadArray();
      61             :       void InitializePadArray();
      62             :       
      63             :     protected:
      64             :         
      65             :         // Protected functions to implement AliHLTComponent's interface.
      66             :         // These functions provide initialization as well as the actual processing
      67             :         // capabilities of the component. 
      68             : 
      69             :         int DoInit( int argc, const char** argv );
      70             :         int DoDeinit();
      71             :         int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, 
      72             :                      AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, 
      73             :                      AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
      74             :         using AliHLTProcessor::DoEvent;
      75             : 
      76             :     private:
      77             : 
      78             :       /** copy constructor prohibited */
      79             :       AliHLTTPCHWCFDataReverterComponent(const AliHLTTPCHWCFDataReverterComponent&);
      80             :         
      81             :       /** assignment operator prohibited */
      82             :       AliHLTTPCHWCFDataReverterComponent& operator=(const AliHLTTPCHWCFDataReverterComponent&);
      83             :         
      84             :       /** the reader object for data decoding */
      85             :       AliHLTTPCDigitReader* fDigitReader;                              //!transient
      86             : 
      87             :       /** Vector of pointers to pad objects */
      88             :       typedef vector<AliHLTTPCPad*> AliHLTTPCPadVector;
      89             :       
      90             :       /** 2D vector of pointers to pad objects (vector of vectors)*/
      91             :       vector<AliHLTTPCPadVector> fRowPadVector;                        //! transient
      92             :       
      93             :       /** Array containing number of pads in the different rows */
      94             :       Int_t* fNumberOfPadsInRow;                                      //! transient
      95             :       
      96             :       /** Array containing the index f forst pad on row with hwaddress > 2048 */
      97             :       Int_t* fFirstPadHigh;                                      //! transient
      98             : 
      99             :       /** Number of rows the patch has */
     100             :       Int_t fNumberOfRows;                                            //! transient
     101             : 
     102             :       /** Current patch number */
     103             :       UInt_t fCurrentPatch;                                            //! transient
     104             : 
     105             :       /** First row in patch */
     106             :       UInt_t fFirstRow;                                                //! transient
     107             : 
     108             :       /** Last row in patch */
     109             :       UInt_t fLastRow;                                                 //! transient
     110             :       
     111             :       /** Number of timebins */
     112             :       Int_t fNTimeBins;                                                //! transient
     113             : 
     114             :       /** Flag to check if the 2d vector is initialized */
     115             :       Bool_t fVectorInitialized;                                       //! transient
     116             : 
     117             :       /** pointer to mapping object */
     118             :       AliHLTTPCMapping *fMapping;
     119             : 
     120             :       /** Flag to check if one should interleave the data */
     121             :       Bool_t fInterleave;
     122             : 
     123           6 :       ClassDef(AliHLTTPCHWCFDataReverterComponent, 0)
     124             : };
     125             : #endif

Generated by: LCOV version 1.11