]>
Commit | Line | Data |
---|---|---|
92c23b09 | 1 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
2 | * See cxx source for full Copyright notice */ | |
3 | ||
bf4d93eb | 4 | // $Id$ |
92c23b09 | 5 | |
6 | /// \ingroup calib | |
7 | /// \class AliMUONGlobalCrateConfig | |
8 | /// \brief The class defines the configuration of global crate | |
9 | /// | |
10 | /// \author Ch. Finck, Subatech Nantes | |
11 | ||
7d5d0cc5 | 12 | #ifndef ALI_MUON_GLOBAL_CRATE_CONFIG_H |
13 | #define ALI_MUON_GLOBAL_CRATE_CONFIG_H | |
92c23b09 | 14 | |
15 | #include <TNamed.h> | |
16 | #include <TString.h> | |
17 | ||
18 | class AliMUONGlobalCrateConfig : public TNamed { | |
19 | ||
20 | public: | |
21 | AliMUONGlobalCrateConfig(); | |
22 | virtual ~AliMUONGlobalCrateConfig(); | |
23 | ||
24 | // methods | |
25 | Int_t ReadData(const TString& fileName = ""); | |
26 | ||
27 | // global crate enable | |
28 | /// set global crate enbale | |
2129750f | 29 | void SetGlobalCrateEnable(UInt_t enable) {fGlobalCrateEnable = enable;} |
92c23b09 | 30 | /// Get global crate enbale |
9ee1d6ff | 31 | UInt_t GetGlobalCrateEnable() const {return fGlobalCrateEnable;} |
92c23b09 | 32 | |
33 | // Jtag | |
34 | /// Get Jtag board VME address | |
35 | ULong_t GetJtagVmeAddr() const {return fJtagVmeAddr;} | |
36 | /// Set Jtag board VME address | |
37 | void SetJtagVmeAddr(ULong_t addr) {fJtagVmeAddr = addr;} | |
38 | ||
39 | /// Get Jtag board Clock Divider | |
40 | UInt_t GetJtagClockDiv() const {return fJtagClockDiv;} | |
41 | /// Set Jtag board Clock Divider | |
42 | void SetJtagClockDiv(UInt_t clk) {fJtagClockDiv = clk;} | |
43 | ||
44 | /// Get Jtag board Rx Phase | |
45 | UInt_t GetJtagRxPhase() const {return fJtagRxPhase;} | |
46 | /// Set Jtag board Rx Phase | |
47 | void SetJtagRxPhase(UInt_t rx) {fJtagRxPhase = rx;} | |
48 | ||
49 | /// Get Jtag board Read out Delay | |
50 | UInt_t GetJtagRdDelay() const {return fJtagRdDelay;} | |
51 | /// Set Jtag board Read out Delay | |
52 | void SetJtagRdDelay(UInt_t rd) {fJtagRdDelay = rd;} | |
53 | ||
54 | /// Get Jtag enabled lines | |
55 | Bool_t GetEnableJtag(Int_t index) const; | |
56 | /// Set Jtag enable word | |
57 | void SetEnableJtag(UChar_t en) {fEnableJtag = en;} | |
58 | /// Get Jtag enable word | |
59 | UChar_t GetEnableJtag() const {return fEnableJtag;} | |
60 | ||
61 | /// Get Jtag Crate names | |
62 | TString GetJtagCrateName(Int_t jtagLine, Int_t index) const; | |
63 | /// Set Jtag Crate names | |
64 | void SetJtagCrateName(Int_t index, TString name); | |
65 | ||
66 | // first Darc Board | |
67 | /// Get First Darc board VME address | |
68 | ULong_t GetFirstDarcVmeAddr() const {return fFirstDarcVmeAddr;} | |
69 | /// Get First Darc board VME address | |
70 | void SetFirstDarcVmeAddr(ULong_t addr) {fFirstDarcVmeAddr = addr;} | |
71 | ||
72 | /// Get type for First Darc board | |
73 | Int_t GetFirstDarcType() const {return fFirstDarcType;} | |
74 | /// Get type for First Darc board | |
75 | void SetFirstDarcType(Int_t type) {fFirstDarcType = type;} | |
76 | ||
77 | /// Get disable word for First Darc board | |
78 | UChar_t GetFirstDarcDisable() const {return fFirstDarcDisable;} | |
79 | /// Get disable per regional crate for First Darc board | |
80 | Bool_t GetFirstDarcDisable(Int_t iCrate) const {return !((fFirstDarcDisable >> iCrate) & 0x1);} | |
81 | /// Set disable word for First Darc board | |
82 | void SetFirstDarcDisable(UChar_t en) {fFirstDarcDisable = en;} | |
83 | ||
84 | /// Get L0 Delay for First Darc board | |
85 | UInt_t GetFirstDarcL0Delay() const {return fFirstDarcL0Delay;} | |
86 | /// Set L0 Delay for First Darc board | |
87 | void SetFirstDarcL0Delay(UInt_t delay) {fFirstDarcL0Delay = delay;} | |
88 | ||
89 | /// Get L1 Time Out for First Darc board | |
90 | UInt_t GetFirstDarcL1TimeOut() const {return fFirstDarcL1TimeOut;} | |
91 | /// Set L1 Time Out for First Darc board | |
92 | void SetFirstDarcL1TimeOut(UInt_t time) {fFirstDarcL1TimeOut = time;} | |
93 | ||
94 | /// Get global L0 delay for First Darc board | |
95 | UInt_t GetFirstDarcGlobalL0() const {return fFirstDarcGlobalL0;} | |
96 | /// set global L0 delay for First Darc board | |
97 | void SetFirstDarcGlobalL0(UInt_t time) {fFirstDarcGlobalL0 = time;} | |
98 | ||
99 | /// Get configuration for First Darc board | |
100 | UInt_t GetFirstDarcConfig() const {return fFirstDarcConfig;} | |
101 | /// set configuration for First Darc board | |
102 | void SetFirstDarcConfig(UInt_t conf) {fFirstDarcConfig = conf;} | |
103 | ||
104 | // second Darc Board | |
105 | /// Get Second Darc board VME address | |
106 | ULong_t GetSecondDarcVmeAddr() const {return fSecondDarcVmeAddr;} | |
107 | /// Set Second Darc board VME address | |
108 | void SetSecondDarcVmeAddr(ULong_t addr) {fSecondDarcVmeAddr = addr;} | |
109 | ||
110 | /// Get type for Second Darc board | |
111 | Int_t GetSecondDarcType() const {return fSecondDarcType;} | |
112 | /// Set type for Second Darc board | |
113 | void SetSecondDarcType(Int_t type) {fSecondDarcType = type;} | |
114 | ||
115 | /// Get disable word for Second Darc board | |
116 | UChar_t GetSecondDarcDisable() const {return fSecondDarcDisable;} | |
117 | /// Get disable per regional crate for Second Darc board | |
118 | Bool_t GetSecondDarcDisable(Int_t iCrate) const {return !((fSecondDarcDisable >> iCrate) & 0x1);} | |
119 | /// Set disable word for Second Darc board | |
120 | void SetSecondDarcDisable(UChar_t en) {fSecondDarcDisable = en;} | |
121 | ||
122 | /// Get L0 Delay for Second Darc board | |
123 | UInt_t GetSecondDarcL0Delay() const {return fSecondDarcL0Delay;} | |
124 | /// Set L0 Delay for Second Darc board | |
125 | void SetSecondDarcL0Delay(UInt_t delay) {fSecondDarcL0Delay = delay;} | |
126 | /// Get L1 Time Out for Second Darc board | |
127 | UInt_t GetSecondDarcL1TimeOut() const {return fSecondDarcL1TimeOut;} | |
128 | /// Set L1 Time Out for Second Darc board | |
129 | void SetSecondDarcL1TimeOut(UInt_t time) {fSecondDarcL1TimeOut = time;} | |
130 | ||
131 | /// Get global L0 delay for Second Darc board | |
132 | UInt_t GetSecondDarcGlobalL0() const {return fSecondDarcGlobalL0;} | |
133 | /// set global L0 delay for Second Darc board | |
134 | void SetSecondDarcGlobalL0(UInt_t time) {fSecondDarcGlobalL0 = time;} | |
135 | ||
136 | /// Get configuration for Second Darc board | |
137 | UInt_t GetSecondDarcConfig() const {return fSecondDarcConfig;} | |
138 | /// set configuration for Second Darc board | |
139 | void SetSecondDarcConfig(UInt_t conf) {fSecondDarcConfig = conf;} | |
140 | ||
141 | ||
142 | // global board | |
143 | /// Get Global board VME address | |
144 | ULong_t GetGlobalVmeAddr() const {return fGlobalVmeAddr;} | |
145 | /// Set Global board VME address | |
146 | void SetGlobalVmeAddr(ULong_t addr) {fGlobalVmeAddr = addr;} | |
147 | ||
148 | /// Get register for Global | |
149 | UInt_t GetGlobalRegister(Int_t index) const; | |
150 | /// Set register for Global | |
151 | void SetGlobalRegister(Int_t index, UInt_t reg); | |
152 | /// Get register word for Global | |
153 | UInt_t* GetGlobalRegister() {return fGlobalRegisters;} | |
41a38dec | 154 | /// Set mask for the global input |
155 | void SetGlobalMask(Int_t index, UInt_t mask); | |
156 | /// Get mask for the global input | |
157 | UInt_t GetGlobalMask(Int_t index) const; | |
158 | /// Indicates if global masks are active on global inputs | |
159 | Bool_t GetMasksOn() const; | |
160 | ||
92c23b09 | 161 | // fet board |
162 | /// Get FET board VME address | |
163 | ULong_t GetFetVmeAddr() const {return fFetVmeAddr;} | |
164 | /// Set FET board VME address | |
165 | void SetFetVmeAddr(ULong_t addr) {fFetVmeAddr = addr;} | |
166 | ||
167 | /// Get register for FET | |
168 | UInt_t GetFetRegister(Int_t index) const; | |
169 | /// Set register for FET | |
170 | void SetFetRegister(Int_t index, UInt_t reg); | |
171 | /// Set register word for FET | |
172 | UInt_t* GetFetRegister() {return fFetRegisters;} | |
173 | ||
174 | //static members | |
175 | /// Get Jtag Name identifier | |
176 | const Char_t* GetJtagName() const {return fgkJtagName;} | |
177 | /// Get First Darc Name identifier | |
178 | const Char_t* GetFirstDarcName() const {return fgkFirstDarcName;} | |
179 | /// Get Second Darc Name identifier | |
180 | const Char_t* GetSecondDarcName() const {return fgkSecondDarcName;} | |
181 | /// Get Global Name identifier | |
182 | const Char_t* GetGlobalName() const {return fgkGlobalName;} | |
183 | /// Get Global Name identifier | |
184 | const Char_t* GetFetName() const {return fgkFetName;} | |
185 | ||
186 | /// Get number of registers for Global | |
94bf739c | 187 | Int_t GetGlobalNofRegisters() const {return fgkGlobalNofRegisters;} |
92c23b09 | 188 | /// Get number of registers for FET |
94bf739c | 189 | Int_t GetFetNofRegisters() const {return fgkFetNofRegisters;} |
92c23b09 | 190 | /// Get number of JTag lines |
94bf739c | 191 | Int_t GetJtagNofLines() const {return fgkJtagNofLines;} |
92c23b09 | 192 | |
193 | private: | |
194 | /// Not implemented | |
195 | AliMUONGlobalCrateConfig(const AliMUONGlobalCrateConfig& rhs); | |
196 | /// Not implemented | |
197 | AliMUONGlobalCrateConfig& operator=(const AliMUONGlobalCrateConfig& rhs); | |
198 | ||
199 | // data members | |
2129750f | 200 | UInt_t fGlobalCrateEnable; ///< Global Crate Enable |
92c23b09 | 201 | ULong_t fJtagVmeAddr; ///< JTag VME address |
202 | UInt_t fJtagClockDiv; ///< Clock Divider number for JTag | |
203 | UInt_t fJtagRxPhase; ///< Rx phase number for JTag | |
204 | UInt_t fJtagRdDelay; ///< Read delay for JTag | |
205 | UChar_t fEnableJtag; ///< Enable mask for JTag lines | |
206 | TString fJtagCrateName[16]; ///< Crate name for the Jtag lines | |
207 | ||
208 | ULong_t fFirstDarcVmeAddr; ///< First Darc Board VME Address | |
209 | Int_t fFirstDarcType; ///< Type of the first Darc Board | |
210 | UChar_t fFirstDarcDisable; ///< disable the readout of the 8 crates connected to this board | |
211 | UInt_t fFirstDarcL0Delay; ///< L0 delay for this board | |
212 | UInt_t fFirstDarcL1TimeOut; ///< L1 time out for this board | |
213 | UInt_t fFirstDarcGlobalL0 ; ///< L0 global l0 delay this board | |
214 | UInt_t fFirstDarcConfig ; ///< Trigger configuration this board | |
215 | ||
216 | ULong_t fSecondDarcVmeAddr; ///< Second Darc Board VME Address | |
217 | Int_t fSecondDarcType; ///< Type of the first Darc Board | |
218 | UChar_t fSecondDarcDisable; ///< disable the readout of the 8 crates connected to this board | |
219 | UInt_t fSecondDarcL0Delay; ///< L0 delay for this board | |
220 | UInt_t fSecondDarcL1TimeOut; ///< L1 time out for this board | |
221 | UInt_t fSecondDarcGlobalL0; ///< Global L0 delay for this board | |
222 | UInt_t fSecondDarcConfig ; ///< Trigger configuration this board | |
223 | ||
224 | ULong_t fGlobalVmeAddr; ///< Global Board VME Address | |
225 | UInt_t fGlobalRegisters[13]; ///< Global registers | |
226 | ||
227 | ULong_t fFetVmeAddr; ///< Fet Board VME Address | |
228 | UInt_t fFetRegisters[7]; ///< Fet registers | |
229 | ||
230 | static const Char_t* fgkJtagName; ///< JTag Board name | |
231 | static const Char_t* fgkFirstDarcName; ///< First DARC board name | |
232 | static const Char_t* fgkSecondDarcName; ///< Second DARC board name | |
233 | static const Char_t* fgkGlobalName; ///< Global Board name | |
234 | static const Char_t* fgkFetName; ///< FET Board name | |
235 | ||
236 | static const Int_t fgkGlobalNofRegisters; ///< Number of registers for Global Board | |
237 | static const Int_t fgkFetNofRegisters; ///< Number of registers for Fet | |
238 | static const Int_t fgkJtagNofLines; ///< Number of lines for Jtag | |
239 | ||
aca1050a | 240 | ClassDef(AliMUONGlobalCrateConfig,3) |
92c23b09 | 241 | }; |
242 | ||
243 | #endif | |
244 | ||
245 | ||
246 | ||
247 | ||
248 | ||
249 | ||
250 | ||
251 | ||
252 | ||
253 | ||
254 | ||
255 | ||
256 | ||
257 |