Classes for trigger raw data
[u/mrichter/AliRoot.git] / MUON / AliMUONLocalStruct.h
CommitLineData
32def6aa 1#ifndef ALIMUONLOCALSTRUCT_H
2#define ALIMUONLOCALSTRUCT_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 AliMUONLocalStruct
10/// \brief rawdata local card structure for trigger
11///
12/// \author Christian Finck
13
14#include <TObject.h>
15
16class AliMUONLocalStruct : public TObject{
17
18public:
19 AliMUONLocalStruct();
20 AliMUONLocalStruct(const AliMUONLocalStruct& event);
21 AliMUONLocalStruct& operator=(const AliMUONLocalStruct& event);
22
23
24 virtual ~AliMUONLocalStruct(){;}
25
26 // local board info
27 UInt_t GetData(Int_t n) const {return fData[n];}
28
29 UShort_t GetX2() const {return (fData[0] >> 16) & 0xFFFF;}
30 UShort_t GetX1() const {return (fData[0]) & 0xFFFF;}
31 UShort_t GetX4() const {return (fData[1] >> 16) & 0xFFFF;}
32 UShort_t GetX3() const {return (fData[1]) & 0xFFFF;}
33
34 UShort_t GetY2() const {return (fData[2] >> 16) & 0xFFFF;}
35 UShort_t GetY1() const {return (fData[2]) & 0xFFFF;}
36 UShort_t GetY4() const {return (fData[3] >> 16) & 0xFFFF;}
37 UShort_t GetY3() const {return (fData[3]) & 0xFFFF;}
38
39 Char_t GetId() const {return fData[4] >> 19 & 0xF;}
40 Char_t GetDec() const {return fData[4] >> 15 & 0xF;}
41 Char_t GetTriggerY() const {return fData[4] >> 14 & 0x1;}
42 Char_t GetYPos() const {return fData[4] >> 10 & 0xF;}
43 Char_t GetXDev() const {return fData[4] >> 5 & 0x1F;}
44 Char_t GetXPos() const {return fData[4] & 0x1F;}
45
46 Int_t GetLpt() const {return (GetDec() & 0x3);}
47 Int_t GetHpt() const {return (GetDec() >> 2) & 0x3;}
48
49 void SetData(UInt_t d, Int_t n) {fData[n] = d;}
50
51 UInt_t* GetData() {return &fData[0];}
52
53 // Scaler methods
54 UInt_t GetL0() const {return fL0;}
55 UInt_t GetHold() const {return fHold;}
56 UInt_t GetClock() const {return fClk;}
57 UChar_t GetSwitch() const {return (fEOS >> 2) & 0x3FF;}
58 UChar_t GetComptXY() const {return fEOS & 3;}
59
60 UShort_t GetXY1(Int_t n) const {return (n % 2 == 0) ?
61 (fScaler[n] & 0xFFFF) : (fScaler[n] >> 16) & 0xFFFF;}
62 UShort_t GetXY2(Int_t n) const {return (n % 2 == 0) ?
63 (fScaler[8 + n] & 0xFFFF) : (fScaler[8 + n] >> 16) & 0xFFFF;}
64 UShort_t GetXY3(Int_t n) const {return (n % 2 == 0) ?
65 (fScaler[8*2 + n] & 0xFFFF) : (fScaler[8*2 + n] >> 16) & 0xFFFF;}
66 UShort_t GetXY4(Int_t n) const {return (n % 2 == 0) ?
67 (fScaler[8*3 + n] & 0xFFFF) : (fScaler[8*3 + n] >> 16) & 0xFFFF;}
68
69 UInt_t* GetScalers() {return &fL0;}
70
71 // get length
72 Int_t GetScalerLength() const {return fgkScalerLength;}
73 Int_t GetLength() const {return fgkLength;}
74 UInt_t GetEndOfLocal() const {return fgkEndOfLocal;}
75
76 // set random numbers to fill variable
77 void SetScalersNumbers();
78
79 private:
80
81 // local info
82 UInt_t fData[5]; // local data
83
84 // local card scalers
85 UInt_t fL0; // local L0
86 UInt_t fHold; // local hold (dead time)
87 UInt_t fClk; // local clock
88
89 UInt_t fLPtNTrig; // local low Pt no trigger
90 UInt_t fHPtNTrig; // local high Pt no trigger
91
92 UInt_t fLPtRTrig; // local low Pt right trigger
93 UInt_t fHPtRTrig; // local high Pt right trigger
94
95 UInt_t fLPtLTrig; // local low Pt left trigger
96 UInt_t fHPtLTrig; // local high Pt left trigger
97
98 UInt_t fLPtSTrig; // local low Pt straight trigger
99 UInt_t fHPtSTrig; // local high Pt straight trigger
100
101 UInt_t fScaler[8*4]; // local data
102 UInt_t fEOS; // contains switches conf. & flag for reading X (0) or Y (1) in fScaler
103 UInt_t fReset; // reset signal
104
105 static const Int_t fgkLength; // local info length in word
106 static const Int_t fgkScalerLength; // scaler length in word
107 static const UInt_t fgkEndOfLocal; // end of local info word
108
109 ClassDef(AliMUONLocalStruct,3)
110};
111#endif