]>
Commit | Line | Data |
---|---|---|
47c194a6 | 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 | |
84ceeb06 | 10 | /// \brief MUON block (Crocus CRT) header for tracker event |
47c194a6 | 11 | /// |
78649106 | 12 | // Author Christian Finck |
47c194a6 | 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 | ||
71a2d3aa | 28 | // |
47c194a6 | 29 | // Block header |
71a2d3aa | 30 | // |
31 | /// Return data key word for CRT header | |
84ceeb06 | 32 | Int_t GetDataKey() const {return fDataKey;} |
71a2d3aa | 33 | /// Return total length of block structure (w/o padding word) |
47c194a6 | 34 | Int_t GetTotalLength() const {return fTotalLength;} |
71a2d3aa | 35 | /// Return length of raw data |
47c194a6 | 36 | Int_t GetLength() const {return fLength;} |
71a2d3aa | 37 | /// Return Dsp id |
47c194a6 | 38 | Int_t GetDspId() const {return fDspId;} |
71a2d3aa | 39 | /// Return L0 trigger word |
84ceeb06 | 40 | Int_t GetL0Trigger() const {return fL0Trigger;} |
71a2d3aa | 41 | /// Return Bunch Crossing for mini-event id (see TDR chapter 8) |
84ceeb06 | 42 | Int_t GetMiniEventId() const {return fMiniEventId;} |
71a2d3aa | 43 | /// Return Event Id in bunch crossing |
84ceeb06 | 44 | Int_t GetEventId1() const {return fEventId1;} |
71a2d3aa | 45 | /// Return Event Id in orbit number |
84ceeb06 | 46 | Int_t GetEventId2() const {return fEventId2;} |
47 | ||
71a2d3aa | 48 | /// Return header length in word |
47c194a6 | 49 | Int_t GetHeaderLength() const {return fgkHeaderLength;} |
71a2d3aa | 50 | /// Return default data key word for CRT header |
84ceeb06 | 51 | UInt_t GetDefaultDataKey() const {return fgkDefaultDataKey;} |
1c66abf3 | 52 | /// Return data key end word for CRT header |
53 | UInt_t GetDdlDataKey() const {return fgkDdlDataKey;} | |
71a2d3aa | 54 | |
55 | /// Set data key word for CRT header | |
84ceeb06 | 56 | void SetDataKey(Int_t d) {fDataKey = d;} |
71a2d3aa | 57 | /// Set total length of block structure (w/o padding word) |
47c194a6 | 58 | void SetTotalLength(Int_t l) {fTotalLength = l;} |
71a2d3aa | 59 | /// Set length of raw data |
47c194a6 | 60 | void SetLength(Int_t l) {fLength = l;} |
71a2d3aa | 61 | /// Set Dsp id |
47c194a6 | 62 | void SetDspId(Int_t d) {fDspId = d;} |
71a2d3aa | 63 | /// Set L0 trigger word |
84ceeb06 | 64 | void SetL0Trigger(Int_t l) {fL0Trigger = l;} |
71a2d3aa | 65 | /// Set Bunch Crossing for mini-event id (see TDR chapter 8) |
84ceeb06 | 66 | void SetMiniEventId(Int_t e) {fMiniEventId = e;} |
71a2d3aa | 67 | /// Set Event Id in bunch crossing |
84ceeb06 | 68 | void SetEventId1(Int_t e) {fEventId1 = e;} |
71a2d3aa | 69 | /// Set Event Id in orbit number |
84ceeb06 | 70 | void SetEventId2(Int_t e) {fEventId2 = e;} |
71a2d3aa | 71 | |
72 | ||
73 | /// Return header | |
84ceeb06 | 74 | Int_t* GetHeader() {return &fDataKey;} |
47c194a6 | 75 | |
76 | void AddDspHeader(const AliMUONDspHeader& dspHeader); | |
77 | ||
71a2d3aa | 78 | /// get TClonesArray |
47c194a6 | 79 | TClonesArray* GetDspHeaderArray() const {return fDspHeaderArray;} |
80 | ||
71a2d3aa | 81 | /// get entries |
47c194a6 | 82 | Int_t GetDspHeaderEntries() const {return fDspHeaderArray->GetEntriesFast();} |
83 | ||
71a2d3aa | 84 | /// get entry |
47c194a6 | 85 | AliMUONDspHeader* GetDspHeaderEntry(Int_t i) const { |
86 | return (AliMUONDspHeader*)fDspHeaderArray->At(i);} | |
87 | ||
88 | // clear | |
89 | void Clear(Option_t* opt); | |
90 | ||
1ed3c5c2 | 91 | // print out |
92 | void Print(Option_t* /*opt*/) const; | |
93 | ||
47c194a6 | 94 | private: |
95 | ||
96 | // block header | |
84ceeb06 | 97 | Int_t fDataKey; ///< Data key word for CRT header |
829425a5 | 98 | Int_t fTotalLength; ///< total length of block structure (w/o padding word) |
99 | Int_t fLength; ///< length of raw data | |
100 | Int_t fDspId; ///< Dsp id | |
84ceeb06 | 101 | Int_t fL0Trigger; ///< L0 trigger word |
102 | Int_t fMiniEventId; ///< Bunch Crossing for mini-event id (see TDR chapter 8) | |
103 | Int_t fEventId1; ///< Event Id in bunch crossing | |
104 | Int_t fEventId2; ///< Event Id in orbit number | |
105 | ||
106 | ||
1c66abf3 | 107 | static const Int_t fgkHeaderLength; ///< header length in word |
108 | static const UInt_t fgkDefaultDataKey; ///< default data key word for CRT header | |
109 | static const UInt_t fgkDdlDataKey; ///< data key end word for CRT header | |
47c194a6 | 110 | |
829425a5 | 111 | TClonesArray* fDspHeaderArray; ///< array of block header |
47c194a6 | 112 | |
1c66abf3 | 113 | ClassDef(AliMUONBlockHeader,3) // MUON block header for Tracker event |
47c194a6 | 114 | }; |
115 | #endif |