]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONRawStreamTrigger.h
Adding FindPCBIndexByMotifPositionID method (Laurent)
[u/mrichter/AliRoot.git] / MUON / AliMUONRawStreamTrigger.h
index 0cc469dde9872cc3433c004db247b45bf9de2259..1ff7d101c29c4bb29f730944f184a8f45bdbe62d 100644 (file)
@@ -9,67 +9,78 @@
 /// \class AliMUONRawStreamTrigger
 /// \brief Class for reading MUON raw digits
 ///
-/// \author Christian Finck
-///
-///////////////////////////////////////////////////////////////////////////////
-///
-/// This class provides access to MUON digits in raw data.
-///
-///////////////////////////////////////////////////////////////////////////////
+//  Author: Christian Finck
 
 #include <TObject.h>
-#include <TClonesArray.h>
+#include "AliMUONPayloadTrigger.h"
 
 class AliRawReader;
 class AliMUONDDLTrigger;
-class AliMUONLocalStruct;
-class AliMUONRegHeader;
+
 
 class AliMUONRawStreamTrigger: public TObject {
   public :
     AliMUONRawStreamTrigger();
     AliMUONRawStreamTrigger(AliRawReader* rawReader);
-    AliMUONRawStreamTrigger(const AliMUONRawStreamTrigger& stream);
-    AliMUONRawStreamTrigger& operator = (const AliMUONRawStreamTrigger& stream);
     virtual ~AliMUONRawStreamTrigger();
 
     virtual Bool_t   Next();
     virtual Bool_t   NextDDL();
-    virtual void     ResetDDL();
 
+    /// Return maximum number of DDLs
     Int_t GetMaxDDL() const {return fMaxDDL;}
-    Int_t GetMaxReg() const {return fMaxReg;}
-    Int_t GetMaxLoc() const {return fMaxLoc;}
+    /// Return maximum number of regional cards in DATE file
+    Int_t GetMaxReg() const {return fPayload->GetMaxReg();}
+    /// Return maximum number of local cards in DATE file
+    Int_t GetMaxLoc() const {return fPayload->GetMaxLoc();}
 
-
-    void SetMaxDDL(Int_t ddl);
     void SetMaxReg(Int_t reg);
     void SetMaxLoc(Int_t loc);
 
-
+    /// Set object for reading the raw data
     void SetReader(AliRawReader* rawReader) {fRawReader = rawReader;}
 
-    AliMUONLocalStruct*     GetLocalInfo()  const {return fLocalStruct;}
-    AliMUONDDLTrigger*      GetDDLTrigger() const {return fDDLTrigger;}
-    Int_t                   GetDDL()        const {return fDDL - 1;}
+    /// Return pointer for DDL structure
+    AliMUONDDLTrigger* GetDDLTrigger() const {return fPayload->GetDDLTrigger();}
 
-  protected :
+    /// Return pointer for payload
+    AliMUONPayloadTrigger*  GetPayLoad()    const {return fPayload;}
+
+    /// Return number of DDL
+    Int_t              GetDDL()        const {return fDDL - 1;}
+
+    /// add error message into error logger
+    void AddErrorMessage();
+
+    /// Enable error info logger
+    void EnabbleErrorLogger() {fEnableErrorLogger = kTRUE;}
+
+    /// error numbers
+    enum rawStreamTriggerError {
+      kDarcEoWErr   = 6, ///< end of Darc word error 
+      kGlobalEoWErr = 7, ///< end of Global word error
+      kRegEoWErr    = 8, ///< end of Regional word error 
+      kLocalEoWErr  = 9  ///< end of local word error
+
+    };
+
+  private :
+    /// Not implemented
+    AliMUONRawStreamTrigger(const AliMUONRawStreamTrigger& stream);
+    /// Not implemented
+    AliMUONRawStreamTrigger& operator = (const AliMUONRawStreamTrigger& stream);
 
-    AliRawReader*    fRawReader;    // object for reading the raw data
-    Int_t  fDDL;          // number of DDL
-    Int_t  fSubEntries;   // entries of buspatch structure
-    Bool_t fNextDDL;      // flag for next DDL to be read
+    AliRawReader*    fRawReader;     ///< object for reading the raw data
+    AliMUONPayloadTrigger* fPayload; ///< pointer to payload decoder
 
-    Int_t fMaxDDL;        // maximum number of DDL in DATE file
-    Int_t fMaxReg;        // maximum number of regional cards in DATE file
-    Int_t fMaxLoc;        // maximum number of local cards in DATE file
+    Int_t  fDDL;          ///< number of DDL
+    Int_t  fSubEntries;   ///< entries of buspatch structure
+    Bool_t fNextDDL;      ///< flag for next DDL to be read
+    Bool_t fEnableErrorLogger; //!< flag to enable the error info logger
 
-    AliMUONDDLTrigger*       fDDLTrigger;   //! pointer for DDL structure
-    AliMUONRegHeader*        fRegHeader;    //! pointer for regional structure
-    AliMUONLocalStruct*      fLocalStruct;  //! pointer to local structure
+    static const Int_t  fMaxDDL;       ///< maximum number of DDLs
 
-    ClassDef(AliMUONRawStreamTrigger, 2)    // base class for reading MUON trigger rawdata
+    ClassDef(AliMUONRawStreamTrigger, 4)    // base class for reading MUON trigger rawdata
 };
 
 #endif