]>
Commit | Line | Data |
---|---|---|
905654c2 | 1 | #ifndef ALIMUONTRIGGERGUIBOARD_H |
2 | #define ALIMUONTRIGGERGUIBOARD_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | /// \ingroup evaluation | |
8 | /// \class AliMUONTriggerGUIboard | |
9 | /// \brief Trigger GUI utility class: single board object | |
37391c63 | 10 | // Author Bogdan Vulpescu, LPC Clermont-Ferrand |
905654c2 | 11 | |
12 | #include <TString.h> | |
13 | #include <TObject.h> | |
14 | ||
15 | class TObjArray; | |
16 | class TBox; | |
17 | ||
18 | class AliMUONTriggerGUIboard : public TObject | |
19 | { | |
20 | ||
21 | public: | |
22 | ||
23 | AliMUONTriggerGUIboard(Int_t id, Char_t *name); | |
24 | virtual ~AliMUONTriggerGUIboard(); | |
25 | ||
905654c2 | 26 | /// returns the standard name of this board |
27 | Char_t *GetBoardName() const { return (Char_t*)(fName->Data()); }; | |
28 | /// returns the working status of this board | |
29 | UShort_t GetStatus() const { return fStatus; }; | |
30 | /// returns the number of this board | |
31 | Int_t GetNumber() const { return fID; }; | |
32 | ||
33 | /// initialize the board | |
34 | void Init() {}; | |
35 | /// set the working status of this board | |
36 | void SetStatus(UShort_t s) { fStatus = s; }; | |
37 | /// set the standard name of this board | |
38 | void SetBoardName(Char_t *name) { fName = new TString(name); }; | |
39 | /// set the geometrical location and dimensions of this board | |
40 | void SetDimensions(Int_t imt, | |
41 | Float_t xc, Float_t yc, Float_t zc, | |
42 | Float_t xw, Float_t yw) { | |
43 | fXCenter[imt] = xc; fYCenter[imt] = yc; fZCenter[imt] = zc; | |
44 | fXWidth[imt] = xw; fYWidth[imt] = yw; | |
45 | }; | |
46 | /// set the index range for the x strips | |
47 | void SetXSindex(Int_t ix, Int_t iy1, Int_t iy2) { | |
48 | fXSix = ix; | |
49 | fXSiy1 = iy1; | |
50 | fXSiy2 = iy2; | |
51 | }; | |
52 | /// set the index range for the y strips | |
53 | void SetYSindex(Int_t ix1, Int_t ix2, Int_t iy) { | |
54 | fYSix1 = ix1; | |
55 | fYSix2 = ix2; | |
56 | fYSiy = iy; | |
57 | }; | |
58 | /// set the number of the detector element containing this board | |
59 | void SetDetElemId(Int_t id) { fDetElemId = id; }; | |
60 | /// set the number of this board | |
61 | void SetIdCircuit(Int_t id) { fIdCircuit = id; }; | |
62 | /// set an x-strip digit in a chamber with amplitude = amp | |
63 | void SetDigitX(Int_t imt, Int_t is, Int_t amp) { | |
64 | fXDig[imt][is] = (UChar_t)amp; }; | |
65 | /// set a y-strip digit in a chamber with amplitude = amp | |
66 | void SetDigitY(Int_t imt, Int_t is, Int_t amp) { | |
67 | fYDig[imt][is] = (UChar_t)amp; }; | |
68 | /// set neighbouring boards with common y strips | |
69 | void SetYOver(Int_t over) { fYOver = (UChar_t)over; }; | |
70 | /// get neighbouring boards with common y strips | |
71 | UChar_t GetYOver() const { return fYOver; }; | |
72 | /// set the board position inside the detector element in y direction | |
73 | void SetPosition(Int_t pos) { fPosition = (UChar_t)pos; }; | |
74 | /// get the board position inside the detector element in y direction | |
75 | UChar_t GetPosition() const { return fPosition; }; | |
76 | /// get the digit amplitude for an x-strip in a given chamber | |
77 | Int_t GetXDig(Int_t imt, Int_t is) const { return fXDig[imt][is]; }; | |
78 | /// get the digit amplitude for a y-strip in a given chamber | |
79 | Int_t GetYDig(Int_t imt, Int_t is) const { return fYDig[imt][is]; }; | |
80 | ||
81 | void SetXDigBox(Int_t imt, Int_t is, Double_t x1, Double_t y1, Double_t x2, Double_t y2); | |
82 | void SetYDigBox(Int_t imt, Int_t is, Double_t x1, Double_t y1, Double_t x2, Double_t y2); | |
83 | /// get the graphical box of an x-trip | |
84 | TBox *GetXDigBox(Int_t imt, Int_t is) const { return fXDigBox[imt][is]; }; | |
85 | /// get the graphical box of a y-trip | |
86 | TBox *GetYDigBox(Int_t imt, Int_t is) const { return fYDigBox[imt][is]; }; | |
87 | ||
88 | /// get x-center of the board in chamber imt | |
89 | Float_t GetXCenter(Int_t imt) const { return fXCenter[imt]; }; | |
90 | /// get y-center of the board in chamber imt | |
91 | Float_t GetYCenter(Int_t imt) const { return fYCenter[imt]; }; | |
92 | /// get z-center of the board in chamber imt | |
93 | Float_t GetZCenter(Int_t imt) const { return fZCenter[imt]; }; | |
94 | /// get x-width of the board in chamber imt | |
95 | Float_t GetXWidth(Int_t imt) const { return fXWidth[imt]; }; | |
96 | /// get y-width of the board in chamber imt | |
97 | Float_t GetYWidth(Int_t imt) const { return fYWidth[imt]; }; | |
98 | ||
99 | /// get x-index in detector element for an x-strip | |
100 | Int_t GetXSix() const { return fXSix; }; | |
101 | /// get first y-index in detector element for an x-strip | |
102 | Int_t GetXSiy1() const { return fXSiy1; }; | |
103 | /// get last y-index in detector element for an x-strip | |
104 | Int_t GetXSiy2() const { return fXSiy2; }; | |
105 | /// get first x-index in detector element for a y-strip | |
106 | Int_t GetYSix1() const { return fYSix1; }; | |
107 | /// get last x-index in detector element for a y-strip | |
108 | Int_t GetYSix2() const { return fYSix2; }; | |
109 | /// get y-index in detector element for a y-strip | |
110 | Int_t GetYSiy() const { return fYSiy; }; | |
111 | /// get number of x strips | |
112 | Int_t GetNStripX() const { return GetXSiy2() - GetXSiy1() + 1; }; | |
113 | /// get number of y strips | |
114 | Int_t GetNStripY() const { return GetYSix2() - GetYSix1() + 1; }; | |
115 | /// get the id of the detector element | |
116 | Int_t GetDetElemId() const { return fDetElemId; }; | |
117 | /// get the id of the circuit | |
118 | Int_t GetIdCircuit() const { return fIdCircuit; }; | |
119 | ||
120 | /// set true if this board has a gui active | |
121 | void SetOpen(Bool_t open) { fIsOpen = open; }; | |
122 | /// true if this board has a gui active | |
123 | Bool_t IsOpen() const { return fIsOpen; }; | |
124 | ||
125 | void ClearXDigits(); | |
126 | void ClearYDigits(); | |
127 | ||
128 | private: | |
129 | ||
130 | enum { kNMT = 4, kNS = 16 }; ///< constants | |
131 | ||
37391c63 | 132 | /// Not implemented |
133 | AliMUONTriggerGUIboard (const AliMUONTriggerGUIboard& board); | |
134 | /// Not implemented | |
135 | AliMUONTriggerGUIboard& operator=(const AliMUONTriggerGUIboard& board); | |
136 | ||
905654c2 | 137 | TString *fName; ///< Board name LCxLxBx or RCxLxBx |
138 | Int_t fID; ///< Board serial number | |
139 | UShort_t fStatus; ///< Board status | |
140 | UChar_t fPosition; ///< Y-boards position | |
141 | UChar_t fYOver; ///< Y-boards with common y-strips | |
142 | ||
143 | Float_t fXCenter[kNMT]; ///< X-center of the board | |
144 | Float_t fYCenter[kNMT]; ///< Y-center of the board | |
145 | Float_t fZCenter[kNMT]; ///< Z-center of the board | |
146 | Float_t fXWidth[kNMT]; ///< X-width of the board | |
147 | Float_t fYWidth[kNMT]; ///< Y-width of the board | |
148 | ||
149 | Int_t fXSix; ///< X-strips ix index in the board | |
150 | Int_t fXSiy1; ///< X-strips first iy index in the board | |
151 | Int_t fXSiy2; ///< X-strips last iy index in the board | |
152 | ||
153 | Int_t fYSix1; ///< Y-strips first ix index in the board | |
154 | Int_t fYSix2; ///< Y-strips last ix index in the board | |
155 | Int_t fYSiy; ///< Y-strips iy index in the board | |
156 | ||
157 | Int_t fDetElemId; ///< Detector element ID (modulo 100) | |
158 | ||
159 | Int_t fIdCircuit; ///< Circuit number | |
160 | ||
161 | UChar_t fXDig[kNMT][kNS]; ///< X-digits amplitude, set by GUI | |
162 | UChar_t fYDig[kNMT][kNS]; ///< Y-digits amplitude, set by GUI | |
163 | ||
164 | TBox *fXDigBox[kNMT][kNS]; ///< X-digits boxes | |
165 | TBox *fYDigBox[kNMT][kNS]; ///< Y-digits boxes | |
166 | ||
167 | Bool_t fIsOpen; ///< Selection flag for the digits map | |
168 | ||
69d7ac2e | 169 | ClassDef(AliMUONTriggerGUIboard,1) //Trigger GUI utility class: single board object |
905654c2 | 170 | |
171 | }; | |
172 | ||
173 | #endif |