/// \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