ROOT logo
#ifndef ALIMUONPAYLOADTRIGGER_H
#define ALIMUONPAYLOADTRIGGER_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/*$Id$*/

/// \ingroup raw
/// \class AliMUONPayloadTrigger
/// \brief Class for decoding the payload for trigger raw data 
///
//  Author Christian Finck

#include <TObject.h>

class AliMUONDDLTrigger;
class AliMUONLocalStruct;
class AliMUONRegHeader;
class AliMUONLogger;
class AliMUONLogger;

class AliMUONPayloadTrigger: public TObject {
  public :
    AliMUONPayloadTrigger();
    virtual ~AliMUONPayloadTrigger();

    Bool_t Decode(UInt_t *buffer, Bool_t scalerEvent = kFALSE);
    void   ResetDDL();

    /// Return maximum number of regional cards in DATE file
    Int_t GetMaxReg() const {return fMaxReg;}
    /// Return maximum number of local cards in DATE file
    Int_t GetMaxLoc() const {return fMaxLoc;}


    void SetMaxLoc(Int_t loc);

    /// Return pointer to local structure
    AliMUONLocalStruct*     GetLocalInfo()  const {return fLocalStruct;}
    /// Return pointer for regional structure
    AliMUONRegHeader*       GetRegHeader()  const {return fRegHeader;}
    /// Return pointer for DDL structure
    AliMUONDDLTrigger*      GetDDLTrigger() const {return fDDLTrigger;}

    /// Get number of end of DARC word errors
    Int_t   GetDarcEoWErrors() const {return fDarcEoWErrors;}
    /// Get number of end of Global word errors
    Int_t   GetGlobalEoWErrors() const {return fGlobalEoWErrors;}
    /// Get number of end of regional word errors
    Int_t   GetRegEoWErrors() const {return fRegEoWErrors;}
    /// Get number of end of local word errors
    Int_t   GetLocalEoWErrors() const {return fLocalEoWErrors;}

   /// Get Error logger
    AliMUONLogger* GetErrorLogger() const {return fLog;}
    
    /// set warnings flag
    void DisableWarnings() {fWarnings = kFALSE;} 
    
  private :
    /// Not implemented
    AliMUONPayloadTrigger(const AliMUONPayloadTrigger& stream);
    /// Not implemented
    AliMUONPayloadTrigger& operator = (const AliMUONPayloadTrigger& stream);

    void   AddErrorMessage(const Char_t* msg);
    void   SetMaxReg(Int_t reg);

    Int_t fMaxReg;        ///< maximum number of regional cards in DATE file
    Int_t fMaxLoc;        ///< maximum number of local cards in DATE file

    AliMUONDDLTrigger*       fDDLTrigger;   //!< pointer for DDL structure
    AliMUONRegHeader*        fRegHeader;    //!< pointer for regional structure
    AliMUONLocalStruct*      fLocalStruct;  //!< pointer to local structure

    AliMUONLogger* fLog;                    //!< Map of errors msg;
    Int_t   fDarcEoWErrors;                 //!< number of end of DARC word errors;
    Int_t   fGlobalEoWErrors;               //!< number of end of global word errors;
    Int_t   fRegEoWErrors;                  //!< number of end of regional word errors;
    Int_t   fLocalEoWErrors;                //!< number of end of local word errors;
    Bool_t  fWarnings;                      //!< flag to enable/disable warnings
    Bool_t  fNofRegSet;                     //!< true if number of regional boards is set from outside

    ClassDef(AliMUONPayloadTrigger, 3)    // base class for reading MUON trigger rawdata
};

#endif
 AliMUONPayloadTrigger.h:1
 AliMUONPayloadTrigger.h:2
 AliMUONPayloadTrigger.h:3
 AliMUONPayloadTrigger.h:4
 AliMUONPayloadTrigger.h:5
 AliMUONPayloadTrigger.h:6
 AliMUONPayloadTrigger.h:7
 AliMUONPayloadTrigger.h:8
 AliMUONPayloadTrigger.h:9
 AliMUONPayloadTrigger.h:10
 AliMUONPayloadTrigger.h:11
 AliMUONPayloadTrigger.h:12
 AliMUONPayloadTrigger.h:13
 AliMUONPayloadTrigger.h:14
 AliMUONPayloadTrigger.h:15
 AliMUONPayloadTrigger.h:16
 AliMUONPayloadTrigger.h:17
 AliMUONPayloadTrigger.h:18
 AliMUONPayloadTrigger.h:19
 AliMUONPayloadTrigger.h:20
 AliMUONPayloadTrigger.h:21
 AliMUONPayloadTrigger.h:22
 AliMUONPayloadTrigger.h:23
 AliMUONPayloadTrigger.h:24
 AliMUONPayloadTrigger.h:25
 AliMUONPayloadTrigger.h:26
 AliMUONPayloadTrigger.h:27
 AliMUONPayloadTrigger.h:28
 AliMUONPayloadTrigger.h:29
 AliMUONPayloadTrigger.h:30
 AliMUONPayloadTrigger.h:31
 AliMUONPayloadTrigger.h:32
 AliMUONPayloadTrigger.h:33
 AliMUONPayloadTrigger.h:34
 AliMUONPayloadTrigger.h:35
 AliMUONPayloadTrigger.h:36
 AliMUONPayloadTrigger.h:37
 AliMUONPayloadTrigger.h:38
 AliMUONPayloadTrigger.h:39
 AliMUONPayloadTrigger.h:40
 AliMUONPayloadTrigger.h:41
 AliMUONPayloadTrigger.h:42
 AliMUONPayloadTrigger.h:43
 AliMUONPayloadTrigger.h:44
 AliMUONPayloadTrigger.h:45
 AliMUONPayloadTrigger.h:46
 AliMUONPayloadTrigger.h:47
 AliMUONPayloadTrigger.h:48
 AliMUONPayloadTrigger.h:49
 AliMUONPayloadTrigger.h:50
 AliMUONPayloadTrigger.h:51
 AliMUONPayloadTrigger.h:52
 AliMUONPayloadTrigger.h:53
 AliMUONPayloadTrigger.h:54
 AliMUONPayloadTrigger.h:55
 AliMUONPayloadTrigger.h:56
 AliMUONPayloadTrigger.h:57
 AliMUONPayloadTrigger.h:58
 AliMUONPayloadTrigger.h:59
 AliMUONPayloadTrigger.h:60
 AliMUONPayloadTrigger.h:61
 AliMUONPayloadTrigger.h:62
 AliMUONPayloadTrigger.h:63
 AliMUONPayloadTrigger.h:64
 AliMUONPayloadTrigger.h:65
 AliMUONPayloadTrigger.h:66
 AliMUONPayloadTrigger.h:67
 AliMUONPayloadTrigger.h:68
 AliMUONPayloadTrigger.h:69
 AliMUONPayloadTrigger.h:70
 AliMUONPayloadTrigger.h:71
 AliMUONPayloadTrigger.h:72
 AliMUONPayloadTrigger.h:73
 AliMUONPayloadTrigger.h:74
 AliMUONPayloadTrigger.h:75
 AliMUONPayloadTrigger.h:76
 AliMUONPayloadTrigger.h:77
 AliMUONPayloadTrigger.h:78
 AliMUONPayloadTrigger.h:79
 AliMUONPayloadTrigger.h:80
 AliMUONPayloadTrigger.h:81
 AliMUONPayloadTrigger.h:82
 AliMUONPayloadTrigger.h:83
 AliMUONPayloadTrigger.h:84
 AliMUONPayloadTrigger.h:85
 AliMUONPayloadTrigger.h:86
 AliMUONPayloadTrigger.h:87