#ifndef ALIMUONPAYLOADTRACKER_H #define ALIMUONPAYLOADTRACKER_H /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ /*$Id$*/ /// \ingroup raw /// \class AliMUONPayloadTracker /// \brief Class for decoding the payload for tracker raw data /// // Author Christian Finck #include #include class AliMUONDDLTracker; class AliMUONBusStruct; class AliMUONDspHeader; class AliMUONBlockHeader; class AliMUONLogger; class AliMUONPayloadTracker: public TObject { public : AliMUONPayloadTracker(); virtual ~AliMUONPayloadTracker(); /// Return maximum number of block per DDL in DATE file Int_t GetMaxBlock() const {return fMaxBlock;} /// Return maximum number of Dsp per block in DATE file Int_t GetMaxDsp() const {return fMaxDsp;} /// Return maximum number of Buspatch per Dsp in DATE file Int_t GetMaxBus() const {return fMaxBus;} // check input before assigment void SetMaxBlock(Int_t blk); /// \brief Set maximum number of Dsp per block in DATE file /// does not check, done via BusPatchManager void SetMaxDsp(Int_t dsp) {fMaxDsp = dsp;} /// \brief Set maximum number of Buspatch per Dsp in DATE file /// does not check, done via BusPatchManager void SetMaxBus(Int_t bus) {fMaxBus = bus;} void ResetDDL(); Bool_t Decode(UInt_t* buffer, Int_t datasize); /// Return pointer for local structure AliMUONBusStruct* GetBusPatchInfo() const {return fBusStruct;} /// Return pointer for buspatch structure AliMUONDDLTracker* GetDDLTracker() const {return fDDLTracker;} /// Get number of parity errors Int_t GetParityErrors() const {return fParityErrors;} // for online /// Get number of glitch errors Int_t GetGlitchErrors() const {return fGlitchErrors;} /// Get number of padding word errors Int_t GetPaddingErrors() const {return fPaddingErrors;} /// Get Error logger AliMUONLogger* GetErrorLogger() const {return fLog;} /// set warnings flag void DisableWarnings() {fWarnings = kFALSE;} private : /// Not implemented AliMUONPayloadTracker(const AliMUONPayloadTracker& stream); /// Not implemented AliMUONPayloadTracker& operator = (const AliMUONPayloadTracker& stream); Bool_t CheckDataParity(); void AddErrorMessage(const Char_t* msg); Int_t fBusPatchId; ///< entry of buspatch structure Int_t fDspId; ///< entry of Dsp header Int_t fBlkId; ///< entry of Block header Int_t fMaxDDL; ///< maximum number of DDL in DATE file Int_t fMaxBlock; ///< maximum number of block per DDL in DATE file Int_t fMaxDsp; ///< maximum number of Dsp per block in DATE file Int_t fMaxBus; ///< maximum number of Buspatch per Dsp in DATE file AliMUONDDLTracker* fDDLTracker; //!< pointer for buspatch structure AliMUONBusStruct* fBusStruct; //!< pointer for local structure AliMUONBlockHeader* fBlockHeader; //!< pointer for block structure AliMUONDspHeader* fDspHeader; //!< pointer for dsp structure AliMUONLogger* fLog; //!< Map of errors msg; Int_t fParityErrors; //!< number of parity errors; Int_t fGlitchErrors; //!< number of glitch errors; Int_t fPaddingErrors; //!< number of padding word errors; Bool_t fWarnings; //!< flag to enable/disable warnings ClassDef(AliMUONPayloadTracker, 4) // base class for reading MUON raw digits }; #endif