LCOV - code coverage report
Current view: top level - MUON/MUONraw - AliMUONRawStreamTrigger.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 12 8.3 %
Date: 2016-06-14 17:26:59 Functions: 1 16 6.2 %

          Line data    Source code
       1             : #ifndef ALIMUONRAWSTREAMTRIGGER_H
       2             : #define ALIMUONRAWSTREAMTRIGGER_H
       3             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       4             :  * See cxx source for full Copyright notice                               */
       5             : 
       6             : /*$Id$*/
       7             : 
       8             : /// \ingroup raw
       9             : /// \class AliMUONRawStreamTrigger
      10             : /// \brief Class for reading MUON raw digits
      11             : ///
      12             : //  Author: Christian Finck
      13             : 
      14             : #include <TObject.h>
      15             : #include "AliMUONPayloadTrigger.h"
      16             : #include "AliMUONVRawStreamTrigger.h"
      17             : class TArrayS;
      18             : 
      19             : class AliRawReader;
      20             : class AliMUONDDLTrigger;
      21             : class AliMUONDarcHeader;
      22             : class AliMUONRegkHeader;
      23             : class AliMUONLocalStruct;
      24             : 
      25             : class AliMUONRawStreamTrigger: public AliMUONVRawStreamTrigger {
      26             :   public :
      27             :     AliMUONRawStreamTrigger();
      28             :     AliMUONRawStreamTrigger(TRootIOCtor* dummy);
      29             :     AliMUONRawStreamTrigger(AliRawReader* rawReader);
      30             :     virtual ~AliMUONRawStreamTrigger();
      31             : 
      32             :     /// Initialize iterator
      33             :     void First();
      34             : 
      35             :    /// Returns current DDL object during iteration
      36           0 :     AliMUONDDLTrigger* CurrentDDL() const { return fCurrentDDL; }
      37             :     
      38             :     /// Returns current DarcHeader object during iteration
      39           0 :     AliMUONDarcHeader* CurrentDarcHeader() const { return fCurrentDarcHeader; }
      40             :     
      41             :     /// Returns current RegHeader object during iteration
      42           0 :     AliMUONRegHeader* CurrentRegHeader() const { return fCurrentRegHeader; }
      43             :     
      44             :     /// Returns current LocalStruct object during iteration
      45           0 :     AliMUONLocalStruct* CurrentLocalStruct() const { return fCurrentLocalStruct; }
      46             :     
      47             :     /// Advance one step in the iteration. Returns false if finished.
      48             :     virtual Bool_t Next(UChar_t& id,   UChar_t& dec,     Bool_t& trigY, 
      49             :                         UChar_t& yPos, UChar_t& sXDev,   UChar_t& xDev,
      50             :                         UChar_t& xPos, Bool_t& triggerY, Bool_t& triggerX,
      51             :                         TArrayS& xPattern, TArrayS& yPattern);
      52             : 
      53             : 
      54             :     virtual Bool_t   NextDDL();
      55             : 
      56             :     /// Return maximum number of DDLs
      57           0 :     Int_t GetMaxDDL() const {return fgkMaxDDL;}
      58             :     /// Return maximum number of regional cards in DATE file
      59           0 :     Int_t GetMaxReg() const {return fPayload->GetMaxReg();}
      60             :     /// Return maximum number of local cards in DATE file
      61           0 :     Int_t GetMaxLoc() const {return fPayload->GetMaxLoc();}
      62             : 
      63             :     //void SetMaxReg(Int_t reg);
      64             :     void SetMaxLoc(Int_t loc);
      65             : 
      66             :     /// Return pointer for DDL structure
      67           0 :     AliMUONDDLTrigger* GetDDLTrigger() const {return fPayload->GetDDLTrigger();}
      68             : 
      69             :     /// Return number of DDL
      70           0 :     Int_t GetDDL() const {return fDDL - 1;}
      71             : 
      72             :     /// Return pointer for payload
      73           0 :     AliMUONPayloadTrigger*  GetPayLoad()    const {return fPayload;}
      74             : 
      75             :     /// Whether the iteration is finished or not
      76             :     Bool_t IsDone() const;
      77             : 
      78             :     /// add error message into error logger
      79             :     void AddErrorMessage();
      80             : 
      81             :     /// Disable Warnings
      82           0 :     void DisableWarnings() {fPayload->DisableWarnings();}
      83             :     
      84             :     /// error numbers
      85             :     enum rawStreamTriggerError {
      86             :       kDarcEoWErr   = 6, ///< end of Darc word error 
      87             :       kGlobalEoWErr = 7, ///< end of Global word error
      88             :       kRegEoWErr    = 8, ///< end of Regional word error 
      89             :       kLocalEoWErr  = 9  ///< end of local word error
      90             : 
      91             :     };
      92             : 
      93             :   private :
      94             :     /// Not implemented
      95             :     AliMUONRawStreamTrigger(const AliMUONRawStreamTrigger& stream);
      96             :     /// Not implemented
      97             :     AliMUONRawStreamTrigger& operator = (const AliMUONRawStreamTrigger& stream);
      98             : 
      99             :     Bool_t GetNextDDL();
     100             :     Bool_t GetNextRegHeader();
     101             :     Bool_t GetNextLocalStruct();
     102             : 
     103             :  private:
     104             : 
     105             :     AliMUONPayloadTrigger* fPayload; ///< pointer to payload decoder
     106             :     AliMUONDDLTrigger* fCurrentDDL;          //!<! for iterator: current ddl ptr
     107             :     Int_t fCurrentDDLIndex;                  //!<! for iterator: current ddl index
     108             :     AliMUONDarcHeader* fCurrentDarcHeader;   //!<! for iterator: current darc ptr
     109             :     AliMUONRegHeader* fCurrentRegHeader;     //!<! for iterator: current reg ptr
     110             :     Int_t fCurrentRegHeaderIndex;            //!<! for iterator: current reg index    
     111             :     AliMUONLocalStruct* fCurrentLocalStruct; //!<! for iterator: current local ptr
     112             :     Int_t fCurrentLocalStructIndex;          //!<! for iterator: current local index    
     113             :     Bool_t fLocalStructRead;                 //!<! flag for read out local structure
     114             :     Int_t fDDL;                              //!<! number of DDL    
     115             : 
     116             : 
     117             :     Bool_t fNextDDL;      ///< flag for next DDL to be read
     118             : 
     119             :     static const Int_t  fgkMaxDDL;       ///< maximum number of DDLs
     120             : 
     121          18 :     ClassDef(AliMUONRawStreamTrigger, 4)    // base class for reading MUON trigger rawdata
     122             : };
     123             : 
     124             : #endif

Generated by: LCOV version 1.11