X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONRawStreamTrigger.h;h=27174a1a4d9ba5c592724e3c87eb3a7b37ee032b;hb=ff672838dfa47233e0209e2ca2f4e213c2474b22;hp=4460b0413d2933aef3d0496c880c4aa45a15e132;hpb=68d8641391561a40c3e624f349b4766daabaa1d1;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONRawStreamTrigger.h b/MUON/AliMUONRawStreamTrigger.h index 4460b0413d2..27174a1a4d9 100644 --- a/MUON/AliMUONRawStreamTrigger.h +++ b/MUON/AliMUONRawStreamTrigger.h @@ -13,47 +13,73 @@ #include #include "AliMUONPayloadTrigger.h" +#include "AliMUONVRawStreamTrigger.h" +class TArrayS; class AliRawReader; class AliMUONDDLTrigger; +class AliMUONDarcHeader; +class AliMUONRegkHeader; +class AliMUONLocalStruct; - -class AliMUONRawStreamTrigger: public TObject { +class AliMUONRawStreamTrigger: public AliMUONVRawStreamTrigger { public : AliMUONRawStreamTrigger(); AliMUONRawStreamTrigger(AliRawReader* rawReader); virtual ~AliMUONRawStreamTrigger(); - virtual Bool_t Next(); + /// Initialize iterator + void First(); + + /// Returns current DDL object during iteration + AliMUONDDLTrigger* CurrentDDL() const { return fCurrentDDL; } + + /// Returns current DarcHeader object during iteration + AliMUONDarcHeader* CurrentDarcHeader() const { return fCurrentDarcHeader; } + + /// Returns current RegHeader object during iteration + AliMUONRegHeader* CurrentRegHeader() const { return fCurrentRegHeader; } + + /// Returns current LocalStruct object during iteration + AliMUONLocalStruct* CurrentLocalStruct() const { return fCurrentLocalStruct; } + + /// Advance one step in the iteration. Returns false if finished. + virtual Bool_t Next(UChar_t& id, UChar_t& dec, Bool_t& trigY, + UChar_t& yPos, UChar_t& sXDev, UChar_t& xDev, + UChar_t& xPos, Bool_t& triggerY, Bool_t& triggerX, + TArrayS& xPattern, TArrayS& yPattern); + + 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 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 SetMaxReg(Int_t reg); void SetMaxLoc(Int_t loc); - /// Set object for reading the raw data - void SetReader(AliRawReader* rawReader) {fRawReader = rawReader;} - /// Return pointer for DDL structure AliMUONDDLTrigger* GetDDLTrigger() const {return fPayload->GetDDLTrigger();} + /// Return number of DDL + Int_t GetDDL() const {return fDDL - 1;} + /// Return pointer for payload AliMUONPayloadTrigger* 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();} + /// error numbers enum rawStreamTriggerError { kDarcEoWErr = 6, ///< end of Darc word error @@ -69,15 +95,30 @@ class AliMUONRawStreamTrigger: public TObject { /// Not implemented AliMUONRawStreamTrigger& operator = (const AliMUONRawStreamTrigger& stream); - AliRawReader* fRawReader; ///< object for reading the raw data + Bool_t GetNextDDL(); + Bool_t GetNextRegHeader(); + Bool_t GetNextLocalStruct(); + + private: + AliMUONPayloadTrigger* fPayload; ///< pointer to payload decoder + AliMUONDDLTrigger* fCurrentDDL; //!< for iterator: current ddl ptr + Int_t fCurrentDDLIndex; //!< for iterator: current ddl index + AliMUONDarcHeader* fCurrentDarcHeader; //!< for iterator: current darc ptr + AliMUONRegHeader* fCurrentRegHeader; //!< for iterator: current reg ptr + Int_t fCurrentRegHeaderIndex; //!< for iterator: current reg index + AliMUONLocalStruct* fCurrentLocalStruct; //!< for iterator: current local ptr + Int_t fCurrentLocalStructIndex; //!< for iterator: current local index + Bool_t fLocalStructRead; //!< flag for read out local structure + Int_t fDDL; //!< number of DDL + - Int_t fDDL; ///< number of DDL - Int_t fSubEntries; ///< entries of buspatch structure Bool_t fNextDDL; ///< flag for next DDL to be read - Int_t fMaxDDL; ///< maximum number of DDL in DATE file + Bool_t fEnableErrorLogger; //!< flag to enable the error info logger + + static const Int_t fgkMaxDDL; ///< maximum number of DDLs - ClassDef(AliMUONRawStreamTrigger, 3) // base class for reading MUON trigger rawdata + ClassDef(AliMUONRawStreamTrigger, 4) // base class for reading MUON trigger rawdata }; #endif