/*$Id$*/
-/// \ingroup rec
+/// \ingroup raw
/// \class AliMUONDDLTracker
/// \brief MUON DDL tracker
+///
+// Author Christian Finck
#include <TObject.h>
-#include "AliRawDataHeader.h"
+#include <TClonesArray.h>
+class AliMUONBusStruct;
+class AliMUONDspHeader;
+class AliMUONBlockHeader;
class AliMUONDDLTracker : public TObject {
public:
AliMUONDDLTracker();
- virtual ~AliMUONDDLTracker(){;}
-
- // Block header
- Int_t GetTotalBlkLength() const {return fTotalBlkLength;}
- Int_t GetBlkLength() const {return fBlkLength;}
- Int_t GetDspId() const {return fDSPId;}
- Int_t GetBlkTriggerWord(Int_t n) const {return fBlkTriggerWord[n];}
- Int_t GetPadding() const {return fPadding;}
- Int_t GetBlkHeaderLength() const {return fgkBlkHeaderLength;}
-
- void SetTotalBlkLength(Int_t l) {fTotalBlkLength = l;}
- void SetBlkLength(Int_t l) {fBlkLength = l;}
- void SetDSPId(Int_t d) {fDSPId = d;}
- void SetBlkTriggerWord(Int_t w, Int_t n) {fBlkTriggerWord[n] = w;}
-
- // DSP header
- Int_t GetTotalDspLength() const {return fTotalDspLength;}
- Int_t GetDspLength() const {return fDspLength;}
- Int_t GetDspId1() const {return fDSPId1;}
- Int_t GetDspTriggerWord(Int_t n) const {return fDspTriggerWord[n];}
- Int_t GetEventWord() const {return fEventWord;}
+ virtual ~AliMUONDDLTracker();
+
+ void AddBusPatch(const AliMUONBusStruct& busPatch, Int_t iBlock, Int_t iDsp);
+ void AddDspHeader(const AliMUONDspHeader& dspHeader, Int_t iBlock);
+ void AddBlkHeader(const AliMUONBlockHeader& blkHeader);
- void SetTotalDspLength(Int_t l) {fTotalDspLength = l;}
- void SetDspLength(Int_t l) {fDspLength = l;}
- void SetDSPId1(Int_t d) {fDSPId1 = d;}
- void SetDspTriggerWord(Int_t w, Int_t n) {fDspTriggerWord[n] = w;}
- void SetEventWord(Int_t w) {fEventWord = w;}
- Int_t GetDspHeaderLength() const {return fgkDspHeaderLength;}
+ /// get TClonesArray
+ TClonesArray* GetBlkHeaderArray() const {return fBlkHeaderArray;}
- Int_t* GetBlkHeader() {return &fTotalBlkLength;}
- Int_t* GetDspHeader() {return &fTotalDspLength;}
+ /// get entries
+ Int_t GetBlkHeaderEntries() const {return fBlkHeaderArray->GetEntriesFast();}
+
+ /// get entry
+ AliMUONBlockHeader* GetBlkHeaderEntry(Int_t i) const {
+ return (AliMUONBlockHeader*)fBlkHeaderArray->At(i);}
- AliRawDataHeader GetHeader() const {return fHeader;}
- Int_t GetHeaderSize() const {return sizeof(AliRawDataHeader)/4;} // in words
+ // clear
+ void Clear(Option_t* opt);
- Int_t GetEoD() const {return fgkEndOfDDL;}
private:
+ /// Not implemented
+ AliMUONDDLTracker(const AliMUONDDLTracker& event);
+ /// Not implemented
+ AliMUONDDLTracker& operator=(const AliMUONDDLTracker& event);
- // block header
- Int_t fTotalBlkLength; // total length of block structure
- Int_t fBlkLength; // length of raw data
- Int_t fDSPId; // Dsp id
- Int_t fBlkTriggerWord[4]; // counter trigger word
- Int_t fPadding; // padding dummy word for 64 bits transfer
- static const Int_t fgkBlkHeaderLength; // header length in word
-
- // Dsp header
- Int_t fTotalDspLength; // total length of block structure
- Int_t fDspLength; // length of raw data
- Int_t fDSPId1; // Dsp id ??
- Int_t fDspTriggerWord[4]; // counter trigger word ?
- Int_t fEventWord; // nb word odd = 1, even = 0
- static const Int_t fgkDspHeaderLength; // header length
-
- static const Int_t fgkEndOfDDL; // end of DDL
-
-
- AliRawDataHeader fHeader; // header of DDL
-
+ TClonesArray* fBlkHeaderArray; ///< array of block header
ClassDef(AliMUONDDLTracker,1) // MUON DDL Tracker
};