]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONBlockHeader.h
Add comments for Doxygen
[u/mrichter/AliRoot.git] / MUON / AliMUONBlockHeader.h
1 #ifndef ALIMUONBLOCKHEADER_H
2 #define ALIMUONBLOCKHEADER_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 AliMUONBlockHeader
10 /// \brief MUON block (Crocus CRT)  header for tracker event
11 ///
12 //  Author Christian Finck
13
14 #include <TObject.h>
15 #include <TClonesArray.h>
16
17 class AliMUONDspHeader;
18
19 class AliMUONBlockHeader : public TObject {
20
21 public:
22    AliMUONBlockHeader();
23    AliMUONBlockHeader(const AliMUONBlockHeader &event);
24    AliMUONBlockHeader& operator=(const AliMUONBlockHeader &event);
25
26    virtual ~AliMUONBlockHeader();
27
28    //
29    // Block header
30    //
31            /// Return data key word for CRT header
32    Int_t   GetDataKey()        const {return fDataKey;}
33            /// Return total length of block structure (w/o padding word)
34    Int_t   GetTotalLength()    const {return fTotalLength;}
35            /// Return length of raw data
36    Int_t   GetLength()         const {return fLength;}
37            /// Return Dsp id
38    Int_t   GetDspId()          const {return fDspId;}
39            /// Return L0 trigger word
40    Int_t   GetL0Trigger()      const {return fL0Trigger;}
41            /// Return Bunch Crossing for mini-event id (see TDR chapter 8)
42    Int_t   GetMiniEventId()    const {return fMiniEventId;}
43            /// Return Event Id in bunch crossing
44    Int_t   GetEventId1()       const {return fEventId1;}
45            /// Return Event Id in orbit number
46    Int_t   GetEventId2()       const {return fEventId2;}
47
48            /// Return header length in word
49    Int_t   GetHeaderLength()   const {return fgkHeaderLength;}
50            /// Return default data key word for CRT header
51    UInt_t  GetDefaultDataKey() const {return fgkDefaultDataKey;}
52
53
54            /// Set data key word for CRT header
55    void    SetDataKey(Int_t d)     {fDataKey = d;}
56            /// Set total length of block structure (w/o padding word)
57    void    SetTotalLength(Int_t l) {fTotalLength = l;}
58            /// Set length of raw data
59    void    SetLength(Int_t l)      {fLength = l;}
60            /// Set Dsp id
61    void    SetDspId(Int_t d)       {fDspId = d;}  
62            /// Set L0 trigger word
63    void    SetL0Trigger(Int_t l)   {fL0Trigger = l;}
64            /// Set Bunch Crossing for mini-event id (see TDR chapter 8)
65    void    SetMiniEventId(Int_t e) {fMiniEventId = e;}
66            /// Set Event Id in bunch crossing
67    void    SetEventId1(Int_t e)    {fEventId1 = e;}
68            /// Set Event Id in orbit number
69    void    SetEventId2(Int_t e)    {fEventId2 = e;}
70    
71    
72    /// Return header
73    Int_t* GetHeader() {return &fDataKey;}
74
75    void   AddDspHeader(const AliMUONDspHeader& dspHeader);
76
77    /// get TClonesArray
78    TClonesArray*      GetDspHeaderArray()  const {return fDspHeaderArray;}
79
80    /// get entries
81    Int_t              GetDspHeaderEntries() const {return fDspHeaderArray->GetEntriesFast();}
82
83    /// get entry
84    AliMUONDspHeader*  GetDspHeaderEntry(Int_t i) const {
85      return (AliMUONDspHeader*)fDspHeaderArray->At(i);}
86
87    // clear
88    void Clear(Option_t* opt);
89
90    // print out
91    void Print(Option_t* /*opt*/) const;
92
93  private:
94
95    // block header
96    Int_t     fDataKey;        ///< Data key word for CRT header 
97    Int_t     fTotalLength;    ///< total length of block structure (w/o padding word)
98    Int_t     fLength;         ///< length of raw data
99    Int_t     fDspId;          ///< Dsp id
100    Int_t     fL0Trigger;      ///< L0 trigger word
101    Int_t     fMiniEventId;    ///< Bunch Crossing for mini-event id (see TDR chapter 8)
102    Int_t     fEventId1;       ///< Event Id in bunch crossing
103    Int_t     fEventId2;       ///< Event Id in orbit number
104
105
106    static const Int_t fgkHeaderLength;   ///< header length in word
107    static const UInt_t fgkDefaultDataKey; ///< default data key word for CRT header 
108
109    TClonesArray*  fDspHeaderArray;  ///< array of block header
110
111    ClassDef(AliMUONBlockHeader,2)  // MUON block header for Tracker event
112 };
113 #endif