2ed868965d23356de4fd1d66567c027670189f28
[u/mrichter/AliRoot.git] / MUON / AliMUONSubEventTrigger.h
1 #ifndef ALIMUONSUBEVENTTRIGGER_H
2 #define ALIMUONSUBEVENTTRIGGER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6
7 #include <TObject.h>
8
9 class AliMUONSubEventTrigger : public TObject{
10  
11 public:
12    AliMUONSubEventTrigger();
13    virtual ~AliMUONSubEventTrigger(){;}
14
15
16    UInt_t  GetRegWord()          const {return fRegWord;}
17    UInt_t  GetRegInput(Int_t n)  const {return fRegInput[n];}
18    UInt_t  GetLocalData(Int_t n) const {return fLocalData[n];}
19
20    //MBZ:3,serialNb:5,Version:8,RegId:4,MBZ:4,RegOut:8
21    Char_t   GetSerialNb()  {return (Char_t)(fRegWord >> 24) &  0x1F;}
22    Char_t   GetVersion()   {return (Char_t)(fRegWord >> 16) &  0xFF;}
23    Char_t   GetRegId()     {return (Char_t)(fRegWord >> 12) &  0x0F;}
24    Char_t   GetRegOutput() {return (Char_t)(fRegWord)       &  0xFF;}
25
26    UShort_t GetX2(Int_t n) {return (fLocalData[16*n]     >> 16) &  0xFFFF;}
27    UShort_t GetX1(Int_t n) {return (fLocalData[16*n])           &  0xFFFF;}
28    UShort_t GetX4(Int_t n) {return (fLocalData[16*n + 1] >> 16) &  0xFFFF;}
29    UShort_t GetX3(Int_t n) {return (fLocalData[16*n + 1])       &  0xFFFF;}
30
31    UShort_t GetY2(Int_t n) {return (fLocalData[16*n + 2] >> 16) &  0xFFFF;}
32    UShort_t GetY1(Int_t n) {return (fLocalData[16*n + 2])       &  0xFFFF;}
33    UShort_t GetY4(Int_t n) {return (fLocalData[16*n + 3] >> 16) &  0xFFFF;}
34    UShort_t GetY3(Int_t n) {return (fLocalData[16*n + 3])       &  0xFFFF;}
35
36    Char_t   GetLocalId(Int_t n)  {return fLocalData[16*n + 4] >> 19 &  0xF;}
37    Char_t   GetLocalDec(Int_t n) {return fLocalData[16*n + 4] >> 15 &  0xF;}
38    Char_t   GetTriggerY(Int_t n) {return fLocalData[16*n + 4] >> 14 &  0x1;}
39    Char_t   GetYPos(Int_t n)     {return fLocalData[16*n + 4] >> 10 &  0xF;}
40    Char_t   GetXDev(Int_t n)     {return fLocalData[16*n + 4] >> 5  &  0x1F;}
41    Char_t   GetXPos(Int_t n)     {return fLocalData[16*n + 4]       &  0x1F;}
42
43    void    SetRegWord(UInt_t w) {fRegWord = w;}
44    void    SetRegInput(UInt_t in, Int_t n) {fRegInput[n] = in;}
45    void    SetLocalData(UInt_t d, Int_t n) {fLocalData[n] = d;}
46    
47    Int_t GetRegHeaderLength() const {return fgkRegHeaderLength;}
48    UInt_t* GetAddress() {return &fRegWord;}
49
50  private:
51    
52    UInt_t    fRegWord;          // first word
53    UInt_t    fRegInput[2];      // regional input
54
55    static const Int_t fgkRegHeaderLength; // header length in word
56
57    UInt_t    fLocalData[16*5];  // local data
58     
59    ClassDef(AliMUONSubEventTrigger,3)
60 };
61 #endif