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 */
9 /// \class AliMUONSubEventTrigger
10 /// \brief MUON subevent trigger
14 class AliMUONSubEventTrigger : public TObject{
17 AliMUONSubEventTrigger();
18 virtual ~AliMUONSubEventTrigger(){;}
21 UInt_t GetRegWord() const {return fRegWord;}
22 UInt_t GetRegInput(Int_t n) const {return fRegInput[n];}
23 UInt_t GetLocalData(Int_t n) const {return fLocalData[n];}
25 //MBZ:3,serialNb:5,Version:8,RegId:4,MBZ:4,RegOut:8
26 Char_t GetSerialNb() {return (Char_t)(fRegWord >> 24) & 0x1F;}
27 Char_t GetVersion() {return (Char_t)(fRegWord >> 16) & 0xFF;}
28 Char_t GetRegId() {return (Char_t)(fRegWord >> 12) & 0x0F;}
29 Char_t GetRegOutput() {return (Char_t)(fRegWord) & 0xFF;}
31 UShort_t GetX2(Int_t n) {return (fLocalData[5*n] >> 16) & 0xFFFF;}
32 UShort_t GetX1(Int_t n) {return (fLocalData[5*n]) & 0xFFFF;}
33 UShort_t GetX4(Int_t n) {return (fLocalData[5*n + 1] >> 16) & 0xFFFF;}
34 UShort_t GetX3(Int_t n) {return (fLocalData[5*n + 1]) & 0xFFFF;}
36 UShort_t GetY2(Int_t n) {return (fLocalData[5*n + 2] >> 16) & 0xFFFF;}
37 UShort_t GetY1(Int_t n) {return (fLocalData[5*n + 2]) & 0xFFFF;}
38 UShort_t GetY4(Int_t n) {return (fLocalData[5*n + 3] >> 16) & 0xFFFF;}
39 UShort_t GetY3(Int_t n) {return (fLocalData[5*n + 3]) & 0xFFFF;}
41 Char_t GetLocalId(Int_t n) {return fLocalData[5*n + 4] >> 19 & 0xF;}
42 Char_t GetLocalDec(Int_t n) {return fLocalData[5*n + 4] >> 15 & 0xF;}
43 Char_t GetTriggerY(Int_t n) {return fLocalData[5*n + 4] >> 14 & 0x1;}
44 Char_t GetYPos(Int_t n) {return fLocalData[5*n + 4] >> 10 & 0xF;}
45 Char_t GetXDev(Int_t n) {return fLocalData[5*n + 4] >> 5 & 0x1F;}
46 Char_t GetXPos(Int_t n) {return fLocalData[5*n + 4] & 0x1F;}
48 void SetRegWord(UInt_t w) {fRegWord = w;}
49 void SetRegInput(UInt_t in, Int_t n) {fRegInput[n] = in;}
50 void SetLocalData(UInt_t d, Int_t n) {fLocalData[n] = d;}
52 Int_t GetRegHeaderLength() const {return fgkRegHeaderLength;}
53 UInt_t* GetRegHeader() {return &fRegWord;}
57 UInt_t fRegWord; // first word
58 UInt_t fRegInput[2]; // regional input
60 static const Int_t fgkRegHeaderLength; // header length in word
62 UInt_t fLocalData[16*5]; // local data
64 ClassDef(AliMUONSubEventTrigger,3)