#include <TObject.h>
#include "AliMUONPayloadTracker.h"
+#include "AliMUONVRawStreamTracker.h"
class AliRawReader;
class AliMUONDDLTracker;
class AliMUONBusStruct;
class AliMUONBlockHeader;
-class AliMUONRawStreamTracker: public TObject {
+class AliMUONRawStreamTracker: public AliMUONVRawStreamTracker {
public :
AliMUONRawStreamTracker();
AliMUONRawStreamTracker(AliRawReader* rawReader);
virtual Bool_t NextDDL();
- /// Return maximum number of DDL in DATE file
- Int_t GetMaxDDL() const {return fMaxDDL;}
+ /// Return maximum number of DDLs
+ Int_t GetMaxDDL() const {return fgkMaxDDL;}
/// Return maximum number of block per DDL in DATE file
Int_t GetMaxBlock() const {return fPayload->GetMaxBlock();}
/// Return maximum number of Dsp per block in DATE file
Int_t GetMaxBus() const {return fPayload->GetMaxBus();}
// check input before assigment
- void SetMaxDDL(Int_t ddl);
void SetMaxBlock(Int_t blk);
/// Set maximum number of Dsp per block in DATE file
/// does not check, done via BusPatchManager
void SetMaxBus(Int_t bus) {fPayload->SetMaxBus(bus);}
- /// Set object for reading the raw data
- void SetReader(AliRawReader* rawReader) {fRawReader = rawReader;}
-
/// Return pointer for DDL
AliMUONDDLTracker* GetDDLTracker() const {return fPayload->GetDDLTracker();}
+ /// Return number of DDL
+ Int_t GetDDL() const {return fDDL - 1;}
+
+ /// Return current DDL index
+ Int_t GetCurentDDL() const {return fCurrentDDLIndex;}
+
/// Return pointer for payload
AliMUONPayloadTracker* GetPayLoad() const {return fPayload;}
- /// Return number of DDL
- Int_t GetDDL() const {return fDDL - 1;}
-
/// Whether the iteration is finished or not
Bool_t IsDone() const;
+ /// add error message into error logger
+ void AddErrorMessage();
+
+ /// Disable Warnings
+ void DisableWarnings() {fPayload->DisableWarnings();}
+
+ /// check error/Warning presence
+ Bool_t IsErrorMessage() const;
+
+ /// error numbers
+ enum rawStreamTrackerError {
+ kGlitchErr = 1, ///< glitch error
+ kPaddingWordErr = 2, ///< padding word error
+ kParityErr = 3 ///< parity error
+ };
+
private :
/// Not implemented
AliMUONRawStreamTracker(const AliMUONRawStreamTracker& stream);
Bool_t GetNextDspHeader();
Bool_t GetNextBusStruct();
+
private:
- AliRawReader* fRawReader; ///< object for reading the raw data
- Int_t fDDL; ///< number of DDL
- Int_t fMaxDDL; ///< maximum number of DDL in DATE file
- AliMUONPayloadTracker* fPayload; ///< pointer to payload decoder
-
- AliMUONDDLTracker* fCurrentDDL; //!< for iterator: current ddl ptr
- Int_t fCurrentDDLIndex; //!< for iterator: current ddl index
+
+ AliMUONPayloadTracker* fPayload; ///< pointer to payload decoder
+ AliMUONDDLTracker* fCurrentDDL; //!< for iterator: current ddl ptr
+ Int_t fCurrentDDLIndex; //!< for iterator: current ddl index
AliMUONBlockHeader* fCurrentBlockHeader; //!< for iterator: current block ptr
- Int_t fCurrentBlockHeaderIndex; //!< for iterator: current block index
- AliMUONDspHeader* fCurrentDspHeader; //!< for iterator: current dsp ptr
- Int_t fCurrentDspHeaderIndex; //!< for iterator: current dsp index
- AliMUONBusStruct* fCurrentBusStruct; //!< for iterator: current bus ptr
- Int_t fCurrentBusStructIndex; //!< for iterator: current bus index
- Int_t fCurrentDataIndex; //!< for iterator: current data index
-
- ClassDef(AliMUONRawStreamTracker, 3) // base class for reading MUON raw digits
+ Int_t fCurrentBlockHeaderIndex; //!< for iterator: current block index
+ AliMUONDspHeader* fCurrentDspHeader; //!< for iterator: current dsp ptr
+ Int_t fCurrentDspHeaderIndex; //!< for iterator: current dsp index
+ AliMUONBusStruct* fCurrentBusStruct; //!< for iterator: current bus ptr
+ Int_t fCurrentBusStructIndex; //!< for iterator: current bus index
+ Int_t fCurrentDataIndex; //!< for iterator: current data index
+ Int_t fDDL; //!< number of DDL
+ static const Int_t fgkMaxDDL; //!< maximum number of DDLs
+
+ ClassDef(AliMUONRawStreamTracker, 4) // base class for reading MUON raw digits
};
#endif