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

/*$Id$*/

/// \ingroup raw
/// \class AliMUONDspHeader
/// \brief MUON DSP header for tracker event
///
//  Author Christian Finck

#include <TObject.h>
#include <TClonesArray.h>

class AliMUONBusStruct;

class AliMUONDspHeader : public TObject {

public:
   AliMUONDspHeader();
  AliMUONDspHeader(TRootIOCtor* dummy);
   AliMUONDspHeader(const AliMUONDspHeader& event);
   AliMUONDspHeader& operator=(const AliMUONDspHeader& event);

   virtual ~AliMUONDspHeader();

   // DSP header
           /// Return Data key word for FRT header
   Int_t   GetDataKey()        const {return fDataKey;}
           /// Return total length of block structure
   Int_t   GetTotalLength()    const {return fTotalLength;}
           /// Return length of raw data
   Int_t   GetLength()         const {return fLength;}
           /// Return Dsp id
   Int_t   GetDspId()          const {return fDspId;}
           /// Return L1 accept in Block Structure (CRT)
   Int_t   GetBlkL1ATrigger()  const {return fBlkL1ATrigger;}
           /// Return Mini Event Id in bunch crossing
   Int_t   GetMiniEventId()    const {return fMiniEventId;}
           /// Return Number of L1 accept in DSP Structure (FRT)
   Int_t   GetL1ATrigger()     const {return fL1ATrigger;}
           /// Return Number of L1 reject in DSP Structure (FRT)
   Int_t   GetL1RTrigger()     const {return fL1RTrigger;}
           /// Return padding dummy word for 64 bits transfer
   UInt_t  GetPaddingWord()    const {return fPaddingWord;}
           /// Return Error word
   Int_t   GetErrorWord()      const {return fErrorWord;}

           /// Return header length
   Int_t   GetHeaderLength()   const {return fgkHeaderLength;}
           /// Return default data key word for FRT header
   UInt_t  GetDefaultDataKey() const {return fgkDefaultDataKey;}
           /// Return default padding word value
   UInt_t  GetDefaultPaddingWord() const {return fgkDefaultPaddingWord;}

           /// Set Data key word for FRT header
   void    SetDataKey(Int_t d)        {fDataKey = d;}
           /// Set total length of block structure
   void    SetTotalLength(Int_t l)    {fTotalLength = l;}
           /// Set length of raw data
   void    SetLength(Int_t l)         {fLength = l;}
           /// Set Dsp id
   void    SetDspId(Int_t d)          {fDspId = d;}  
           /// Set L1 accept in Block Structure (CRT)
   void    SetBlkL1ATrigger(Int_t l1) {fBlkL1ATrigger = l1;}
           /// Set Mini Event Id in bunch crossing
   void    SetMiniEventId(Int_t id)   {fMiniEventId = id;}
           /// Set Number of L1 accept in DSP Structure (FRT)
   void    SetL1ATrigger(Int_t l1a)   {fL1ATrigger = l1a;}
           /// Set Number of L1 reject in DSP Structure (FRT)
   void    SetL1RTrigger(Int_t l1r)   {fL1RTrigger = l1r;}
           /// Set padding dummy word for 64 bits transfer
   void    SetPaddingWord(UInt_t w)   {fPaddingWord = w;}
           /// Set Error word
   void    SetErrorWord(Int_t w)      {fErrorWord = w;}

           /// Return header
   Int_t*  GetHeader() {return &fDataKey;}

   void    AddBusPatch(const AliMUONBusStruct& busPatch);

   /// get TClonesArray
   TClonesArray*  GetBusPatchArray()  const {return fBusPatchArray;}

   /// get entries
   Int_t GetBusPatchEntries()  const {return fBusPatchArray->GetEntriesFast();}

   /// get entry
   AliMUONBusStruct* GetBusPatchEntry(Int_t i) const {
     return (AliMUONBusStruct*)fBusPatchArray->At(i);}

   // clear
   void Clear(Option_t* opt);

   // print out
   void Print(Option_t* /*opt*/) const;

 private:

   // Dsp header
   Int_t     fDataKey;          ///< Data key word for FRT header 
   Int_t     fTotalLength;      ///< total length of block structure
   Int_t     fLength;           ///< length of raw data
   Int_t     fDspId;            ///< Dsp id
   Int_t     fBlkL1ATrigger;    ///< L1 accept in Block Structure (CRT)
   Int_t     fMiniEventId;      ///< Mini Event Id in bunch crossing 
   Int_t     fL1ATrigger;       ///< Number of L1 accept in DSP Structure (FRT)
   Int_t     fL1RTrigger;       ///< Number of L1 reject in DSP Structure (FRT)
   Int_t     fPaddingWord;      ///< padding dummy word for 64 bits transfer
   Int_t     fErrorWord;        ///< Error word

   static const Int_t  fgkHeaderLength; ///< header length
   static const UInt_t fgkDefaultDataKey; ///< default data key word for FRT header 
   static const UInt_t fgkDefaultPaddingWord; ///< default padding word value 

   TClonesArray* fBusPatchArray;   ///< array of buspatch structure

   ClassDef(AliMUONDspHeader,2)  // MUON Dsp header for Tracker event
};
#endif
 AliMUONDspHeader.h:1
 AliMUONDspHeader.h:2
 AliMUONDspHeader.h:3
 AliMUONDspHeader.h:4
 AliMUONDspHeader.h:5
 AliMUONDspHeader.h:6
 AliMUONDspHeader.h:7
 AliMUONDspHeader.h:8
 AliMUONDspHeader.h:9
 AliMUONDspHeader.h:10
 AliMUONDspHeader.h:11
 AliMUONDspHeader.h:12
 AliMUONDspHeader.h:13
 AliMUONDspHeader.h:14
 AliMUONDspHeader.h:15
 AliMUONDspHeader.h:16
 AliMUONDspHeader.h:17
 AliMUONDspHeader.h:18
 AliMUONDspHeader.h:19
 AliMUONDspHeader.h:20
 AliMUONDspHeader.h:21
 AliMUONDspHeader.h:22
 AliMUONDspHeader.h:23
 AliMUONDspHeader.h:24
 AliMUONDspHeader.h:25
 AliMUONDspHeader.h:26
 AliMUONDspHeader.h:27
 AliMUONDspHeader.h:28
 AliMUONDspHeader.h:29
 AliMUONDspHeader.h:30
 AliMUONDspHeader.h:31
 AliMUONDspHeader.h:32
 AliMUONDspHeader.h:33
 AliMUONDspHeader.h:34
 AliMUONDspHeader.h:35
 AliMUONDspHeader.h:36
 AliMUONDspHeader.h:37
 AliMUONDspHeader.h:38
 AliMUONDspHeader.h:39
 AliMUONDspHeader.h:40
 AliMUONDspHeader.h:41
 AliMUONDspHeader.h:42
 AliMUONDspHeader.h:43
 AliMUONDspHeader.h:44
 AliMUONDspHeader.h:45
 AliMUONDspHeader.h:46
 AliMUONDspHeader.h:47
 AliMUONDspHeader.h:48
 AliMUONDspHeader.h:49
 AliMUONDspHeader.h:50
 AliMUONDspHeader.h:51
 AliMUONDspHeader.h:52
 AliMUONDspHeader.h:53
 AliMUONDspHeader.h:54
 AliMUONDspHeader.h:55
 AliMUONDspHeader.h:56
 AliMUONDspHeader.h:57
 AliMUONDspHeader.h:58
 AliMUONDspHeader.h:59
 AliMUONDspHeader.h:60
 AliMUONDspHeader.h:61
 AliMUONDspHeader.h:62
 AliMUONDspHeader.h:63
 AliMUONDspHeader.h:64
 AliMUONDspHeader.h:65
 AliMUONDspHeader.h:66
 AliMUONDspHeader.h:67
 AliMUONDspHeader.h:68
 AliMUONDspHeader.h:69
 AliMUONDspHeader.h:70
 AliMUONDspHeader.h:71
 AliMUONDspHeader.h:72
 AliMUONDspHeader.h:73
 AliMUONDspHeader.h:74
 AliMUONDspHeader.h:75
 AliMUONDspHeader.h:76
 AliMUONDspHeader.h:77
 AliMUONDspHeader.h:78
 AliMUONDspHeader.h:79
 AliMUONDspHeader.h:80
 AliMUONDspHeader.h:81
 AliMUONDspHeader.h:82
 AliMUONDspHeader.h:83
 AliMUONDspHeader.h:84
 AliMUONDspHeader.h:85
 AliMUONDspHeader.h:86
 AliMUONDspHeader.h:87
 AliMUONDspHeader.h:88
 AliMUONDspHeader.h:89
 AliMUONDspHeader.h:90
 AliMUONDspHeader.h:91
 AliMUONDspHeader.h:92
 AliMUONDspHeader.h:93
 AliMUONDspHeader.h:94
 AliMUONDspHeader.h:95
 AliMUONDspHeader.h:96
 AliMUONDspHeader.h:97
 AliMUONDspHeader.h:98
 AliMUONDspHeader.h:99
 AliMUONDspHeader.h:100
 AliMUONDspHeader.h:101
 AliMUONDspHeader.h:102
 AliMUONDspHeader.h:103
 AliMUONDspHeader.h:104
 AliMUONDspHeader.h:105
 AliMUONDspHeader.h:106
 AliMUONDspHeader.h:107
 AliMUONDspHeader.h:108
 AliMUONDspHeader.h:109
 AliMUONDspHeader.h:110
 AliMUONDspHeader.h:111
 AliMUONDspHeader.h:112
 AliMUONDspHeader.h:113
 AliMUONDspHeader.h:114
 AliMUONDspHeader.h:115
 AliMUONDspHeader.h:116
 AliMUONDspHeader.h:117
 AliMUONDspHeader.h:118
 AliMUONDspHeader.h:119
 AliMUONDspHeader.h:120
 AliMUONDspHeader.h:121
 AliMUONDspHeader.h:122