Classes for tracker raw data
[u/mrichter/AliRoot.git] / MUON / AliMUONDspHeader.h
1 #ifndef ALIMUONDSPHEADER_H
2 #define ALIMUONDSPHEADER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /*$Id$*/
7
8 /// \ingroup raw
9 /// \class AliMUONDspHeader
10 /// \brief MUON DSP header for tracker event
11 ///
12 /// \author Christian Finck
13
14 #include <TObject.h>
15 #include <TClonesArray.h>
16
17 class AliMUONBusStruct;
18
19 class AliMUONDspHeader : public TObject {
20
21 public:
22    AliMUONDspHeader();
23    AliMUONDspHeader(const AliMUONDspHeader& event);
24    AliMUONDspHeader& operator=(const AliMUONDspHeader& event);
25
26    virtual ~AliMUONDspHeader();
27
28    // DSP header
29    Int_t   GetTotalLength()    const {return fTotalLength;}
30    Int_t   GetLength()         const {return fLength;}
31    Int_t   GetDspId()          const {return fDspId;}
32    Int_t   GetTriggerWord(Int_t n) const {return fTriggerWord[n];}
33    Int_t   GetEventWord()      const {return fEventWord;}
34    Int_t   GetHeaderLength()   const {return fgkHeaderLength;}
35
36    void    SetTotalLength(Int_t l) {fTotalLength = l;}
37    void    SetLength(Int_t l)      {fLength = l;}
38    void    SetDspId(Int_t d)       {fDspId = d;}  
39    void    SetTriggerWord(Int_t w, Int_t n) {fTriggerWord[n] = w;}
40    void    SetEventWord(Int_t w)   {fEventWord = w;}
41
42    Int_t*  GetHeader() {return &fTotalLength;}
43
44    void    AddBusPatch(const AliMUONBusStruct& busPatch);
45
46    // get TClonesArray
47    TClonesArray*  GetBusPatchArray()  const {return fBusPatchArray;}
48
49    // get entries
50    Int_t GetBusPatchEntries()  const {return fBusPatchArray->GetEntriesFast();}
51
52    // get entry
53    AliMUONBusStruct* GetBusPatchEntry(Int_t i) const {
54      return (AliMUONBusStruct*)fBusPatchArray->At(i);}
55
56    // clear
57    void Clear(Option_t* opt);
58
59  private:
60
61    // Dsp header
62    Int_t     fTotalLength;      // total length of block structure
63    Int_t     fLength;           // length of raw data
64    Int_t     fDspId;            // Dsp id ??
65    Int_t     fTriggerWord[4];   // counter trigger word ?
66    Int_t     fEventWord;        // nb word odd = 1, even = 0
67    static const Int_t fgkHeaderLength; // header length
68
69     TClonesArray* fBusPatchArray;   // array of buspatch structure
70
71    ClassDef(AliMUONDspHeader,1)  // MUON Dsp header for Tracker event
72 };
73 #endif