Fixes for the head of root, effc++
[u/mrichter/AliRoot.git] / RAW / AliRawEquipmentHeader.h
1 #ifndef ALIRAWEQUIPMENTHEADER_H
2 #define ALIRAWEQUIPMENTHEADER_H
3 // @(#)alimdc:$Name$:$Id$
4 // Author: Fons Rademakers  26/11/99
5
6 /* Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
7  * See cxx source for full Copyright notice                               */
8
9 //////////////////////////////////////////////////////////////////////////
10 //                                                                      //
11 // AliRawEquipmentHeader                                                //
12 //                                                                      //
13 //////////////////////////////////////////////////////////////////////////
14
15 #ifndef ROOT_TObject
16 #include <TObject.h>
17 #endif
18
19
20 class AliRawEquipmentHeader : public TObject {
21
22 public:
23    AliRawEquipmentHeader() { fSize = 0; }
24    ~AliRawEquipmentHeader() { }
25
26    void         *HeaderBegin() { return (void *) &fSize; }
27    Int_t         HeaderSize() const { return (Long_t) &fBasicElementSizeType - (Long_t) &fSize + sizeof(fBasicElementSizeType); }
28    void          Swap();
29
30    UInt_t        GetEquipmentSize() const { return fSize; }
31    UInt_t        GetEquipmentType() const { return fEquipmentType; }
32    UInt_t        GetId() const { return fEquipmentID; }
33    const UInt_t *GetTypeAttribute() const { return fTypeAttribute; }
34    UInt_t        GetBasicSizeType() const { return fBasicElementSizeType; }
35
36    enum {
37      kAttributeWords = 3
38    };
39
40 private:
41    UInt_t fSize;                            // number of raw data bytes
42    UInt_t fEquipmentType;                   // equipment type
43    UInt_t fEquipmentID;                     // equipment ID
44    UInt_t fTypeAttribute[kAttributeWords];  // system (0,1) and user (2) attributes
45    UInt_t fBasicElementSizeType;            // basic element size type
46
47    ClassDef(AliRawEquipmentHeader,1) //Alice equipment header
48 };
49
50 #endif