/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
+/*$Id$*/
+
+/// \ingroup raw
+/// \class AliMUONDDLTracker
+/// \brief MUON DDL tracker
+///
+// Author Christian Finck
#include <TObject.h>
-static const Int_t bufsize = 1024;
+#include <TClonesArray.h>
+
+class AliMUONBusStruct;
+class AliMUONDspHeader;
+class AliMUONBlockHeader;
class AliMUONDDLTracker : public TObject {
public:
AliMUONDDLTracker();
- virtual ~AliMUONDDLTracker(){;}
+ 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);
- UInt_t GetRawData(Int_t n) const {return fData[n];}
- Int_t GetLength() const {return fLength;}
- Int_t GetBusPatchId() const {return fBusPatchId;}
- Int_t GetEoD() const {return fEndOfDDL;}
+ /// get TClonesArray
+ TClonesArray* GetBlkHeaderArray() const {return fBlkHeaderArray;}
- Char_t GetParity(Int_t n) {return (Char_t)(fData[n] >> 29) & 0x7;}
- UShort_t GetManuId(Int_t n) {return (UShort_t)(fData[n] >> 18) & 0x7FF;}
- Char_t GetChannelId(Int_t n) {return (Char_t)(fData[n] >> 12) & 0x3F;}
- UShort_t GetCharge(Int_t n) {return (UShort_t)(fData[n] & 0xFFF);}
+ /// get entries
+ Int_t GetBlkHeaderEntries() const {return fBlkHeaderArray->GetEntriesFast();}
+
+ /// get entry
+ AliMUONBlockHeader* GetBlkHeaderEntry(Int_t i) const {
+ return (AliMUONBlockHeader*)fBlkHeaderArray->At(i);}
- void SetRawData(UInt_t w) {fData[fLength++] = w;}
- void SetLength(Int_t l) {fLength = l;}
- void SetBusPatchId(Int_t b) {fBusPatchId = b;}
- void SetEoD(Int_t e) {fEndOfDDL = e;}
+ // clear
+ void Clear(Option_t* opt);
- Int_t* GetAddress() {return &fLength;}
private:
-
- Int_t fLength; // length of data
- Int_t fBusPatchId; // bus patch id
- UInt_t fData[bufsize]; // data
- Int_t fEndOfDDL ; // end of DDL
+ /// Not implemented
+ AliMUONDDLTracker(const AliMUONDDLTracker& event);
+ /// Not implemented
+ AliMUONDDLTracker& operator=(const AliMUONDDLTracker& event);
+ TClonesArray* fBlkHeaderArray; ///< array of block header
+
ClassDef(AliMUONDDLTracker,1) // MUON DDL Tracker
};
#endif