fix bugs add new features
[u/mrichter/AliRoot.git] / ITS / AliITSEventHeader.h
1 #ifndef ALIITSEVENTHEADER_H
2 #define ALIITSEVENTHEADER_H
3
4 ////////////////////////////////////////////////////
5 //  Base class to define                          //
6 //  ITS Event Header                              //
7 //  
8 //  Origin: E. Crescio crescio@to.infn.it         //
9 //                                                //
10 ////////////////////////////////////////////////////
11
12 #include "AliDetectorEventHeader.h"
13
14 typedef enum { kSimulated, kReal, kCalibration1, kCalibration2 }  EventType_t;
15
16 class AliITSEventHeader : public AliDetectorEventHeader {
17  
18  public:
19
20
21   AliITSEventHeader(const char* name);
22   AliITSEventHeader();
23
24   virtual ~AliITSEventHeader() {}
25   
26   EventType_t GetEventTypeSDD()   const {return fEventTypeSDD;};
27   UChar_t     GetL1TriggerType(Int_t i) const {return fL1TriggerType[i];}
28   UInt_t      GetOrbitNumber(Int_t i) const  {return fOrbitNumber[i];}
29   UShort_t    GetBunchCross(Int_t i)  const  {return fBunchCross[i];}
30   UChar_t     GetBlockAttributes(Int_t i) const {return fBlockAttr[i];}
31   ULong64_t   GetTriggerClass(Int_t i) const {return fTriggerClass[i];}
32   UInt_t      GetStatusBits(Int_t i)  const {return fStatusBits[i];}
33   UInt_t      GetMiniEvId(Int_t i)   const {return fMiniEvId[i];}
34   UInt_t      GetSubDet(Int_t i)     const {return fSubDet[i];}
35   UInt_t      GetVersion(Int_t i)    const {return fVersion[i];}
36   Int_t       GetJitterSDD()         const {return fJitterSDD;}
37
38   void SetEventTypeSDD(EventType_t type=kSimulated){fEventTypeSDD=type;}
39   void SetL1TriggerType(Int_t i,UChar_t l1trig) {fL1TriggerType[i]=l1trig;}
40   void SetOrbitNumber(Int_t i,UInt_t orbitnum) {fOrbitNumber[i]=orbitnum;}
41   void SetBunchCross(Int_t i,UShort_t bunchcross) {fBunchCross[i]=bunchcross;}
42   void SetBlockAttributes(Int_t i,UChar_t attr) {fBlockAttr[i]=attr;}
43   void SetTriggerClass(Int_t i,ULong64_t trigclass){fTriggerClass[i]=trigclass;}
44   void SetStatusBits(Int_t i,UInt_t bits) {fStatusBits[i]=bits;}
45   void SetMiniEvId(Int_t i,UInt_t minievid) {fMiniEvId[i]=minievid;}
46   void SetSubDet(Int_t i,UInt_t subdet) {fSubDet[i]=subdet;}
47   void SetVersion(Int_t i,UInt_t version) {fVersion[i]=version;}
48   void SetJitterSDD(Int_t jitter) {fJitterSDD=jitter;}
49   
50  protected:
51   
52   EventType_t fEventTypeSDD;       //event type for SDD 
53   UChar_t   fL1TriggerType[3];     //Level 1 trigger type (0 spd,1 sdd,2 ssd) 
54   UInt_t    fOrbitNumber[3];       //Orbit Number (0 spd,1 sdd,2 ssd)
55   UShort_t  fBunchCross[3];        //Bunch Crossing Number (0 spd,1 sdd,2 ssd)
56   UChar_t   fBlockAttr[3];         //Block Attributes (0 spd,1 sdd,2 ssd)
57   ULong64_t fTriggerClass[3];      //Trigger classes (0 spd,1 sdd,2 ssd)
58   UInt_t    fStatusBits[3];        //Status Bits (0 spd,1 sdd,2 ssd)
59   UInt_t    fMiniEvId[3];          //MiniEvent ID (0 spd,1 sdd,2 ssd)
60   UInt_t    fSubDet[3];            //partic. sub-detectors (0 spd,1 sdd,2 ssd)
61   UInt_t    fVersion[3];           //Header Version (0 spd,1 sdd,2 ssd)
62   Int_t     fJitterSDD;            // SDD jitter between L0 and pascal stop
63
64   ClassDef(AliITSEventHeader,1)  // An Alice ITS event header 
65
66  };
67
68
69 #endif
70
71