Making online tracklets usable in offline reconstruction
[u/mrichter/AliRoot.git] / TRD / AliTRDtrapConfig.h
CommitLineData
7627bf12 1#ifndef ALITRDTRAPCONFIG_H\r
2#define ALITRDTRAPCONFIG_H\r
3\r
4#include <TObject.h>\r
5#include <TString.h>\r
6#include <TClonesArray.h>\r
7\r
8class AliTRDtrapConfig : public TObject\r
9{\r
10 public:\r
11 static AliTRDtrapConfig* Instance();\r
12\r
13 enum TrapReg_t { kSML0, \r
14 kSML1, \r
15 kSML2,\r
16 kSMMODE,\r
17 kNITM0,\r
18 kNITM1,\r
19 kNITM2,\r
20 kNIP4D,\r
21 kCPU0CLK,\r
22 kCPU1CLK,\r
23 kCPU2CLK,\r
24 kCPU3CLK,\r
25 kNICLK,\r
26 kFILCLK,\r
27 kPRECLK,\r
28 kADCEN,\r
29 kNIODE,\r
30 kNIOCE,\r
31 kNIIDE,\r
32 kNIICE,\r
33 kARBTIM, \r
34 kIA0IRQ0, \r
35 kIA0IRQ1, \r
36 kIA0IRQ2, \r
37 kIA0IRQ3, \r
38 kIA0IRQ4, \r
39 kIA0IRQ5, \r
40 kIA0IRQ6, \r
41 kIA0IRQ7, \r
42 kIA0IRQ8, \r
43 kIA0IRQ9, \r
44 kIA0IRQA, \r
45 kIA0IRQB, \r
46 kIA0IRQC, \r
47 kIRQSW0, \r
48 kIRQHW0, \r
49 kIRQHL0, \r
50 kIA1IRQ0, \r
51 kIA1IRQ1, \r
52 kIA1IRQ2, \r
53 kIA1IRQ3, \r
54 kIA1IRQ4, \r
55 kIA1IRQ5, \r
56 kIA1IRQ6, \r
57 kIA1IRQ7, \r
58 kIA1IRQ8, \r
59 kIA1IRQ9, \r
60 kIA1IRQA, \r
61 kIA1IRQB, \r
62 kIA1IRQC, \r
63 kIRQSW1, \r
64 kIRQHW1, \r
65 kIRQHL1, \r
66 kIA2IRQ0, \r
67 kIA2IRQ1, \r
68 kIA2IRQ2, \r
69 kIA2IRQ3, \r
70 kIA2IRQ4, \r
71 kIA2IRQ5, \r
72 kIA2IRQ6, \r
73 kIA2IRQ7, \r
74 kIA2IRQ8, \r
75 kIA2IRQ9, \r
76 kIA2IRQA, \r
77 kIA2IRQB, \r
78 kIA2IRQC, \r
79 kIRQSW2, \r
80 kIRQHW2, \r
81 kIRQHL2, \r
82 kIA3IRQ0, \r
83 kIA3IRQ1, \r
84 kIA3IRQ2, \r
85 kIA3IRQ3, \r
86 kIA3IRQ4, \r
87 kIA3IRQ5, \r
88 kIA3IRQ6, \r
89 kIA3IRQ7, \r
90 kIA3IRQ8, \r
91 kIA3IRQ9, \r
92 kIA3IRQA, \r
93 kIA3IRQB, \r
94 kIA3IRQC, \r
95 kIRQSW3, \r
96 kIRQHW3, \r
97 kIRQHL3, \r
98 kCTGDINI, \r
99 kCTGCTRL, \r
100 kC08CPU0, \r
101 kC09CPU0, \r
102 kC10CPU0, \r
103 kC11CPU0, \r
104 kC12CPUA, \r
105 kC13CPUA, \r
106 kC14CPUA, \r
107 kC15CPUA, \r
108 kC08CPU1, \r
109 kC09CPU1, \r
110 kC10CPU1, \r
111 kC11CPU1, \r
112 kC08CPU2, \r
113 kC09CPU2, \r
114 kC10CPU2, \r
115 kC11CPU2, \r
116 kC08CPU3, \r
117 kC09CPU3, \r
118 kC10CPU3, \r
119 kC11CPU3, \r
120 kNMOD, \r
121 kNDLY, \r
122 kNED, \r
123 kNTRO, \r
124 kNRRO, \r
125 kNES, \r
126 kNTP, \r
127 kNBND, \r
128 kNP0, \r
129 kNP1, \r
130 kNP2, \r
131 kNP3, \r
132 kNCUT, \r
133 kTPPT0, \r
134 kTPFS, \r
135 kTPFE, \r
136 kTPPGR, \r
137 kTPPAE, \r
138 kTPQS0, \r
139 kTPQE0, \r
140 kTPQS1, \r
141 kTPQE1, \r
142 kEBD, \r
143 kEBAQA, \r
144 kEBSIA, \r
145 kEBSF, \r
146 kEBSIM, \r
147 kEBPP, \r
148 kEBPC, \r
149 kEBIS, \r
150 kEBIT, \r
151 kEBIL, \r
152 kEBIN, \r
153 kFLBY, \r
154 kFPBY, \r
155 kFGBY, \r
156 kFTBY, \r
157 kFCBY, \r
158 kFPTC, \r
159 kFPNP, \r
160 kFPCL, \r
161 kFGTA, \r
162 kFGTB, \r
163 kFGCL, \r
164 kFTAL, \r
165 kFTLL, \r
166 kFTLS, \r
167 kFCW1, \r
168 kFCW2, \r
169 kFCW3, \r
170 kFCW4, \r
171 kFCW5, \r
172 kTPFP, \r
173 kTPHT, \r
174 kTPVT, \r
175 kTPVBY, \r
176 kTPCT, \r
177 kTPCL, \r
178 kTPCBY, \r
179 kTPD, \r
180 kTPCI0, \r
181 kTPCI1, \r
182 kTPCI2, \r
183 kTPCI3, \r
184 kADCMSK, \r
185 kADCINB, \r
186 kADCDAC, \r
187 kADCPAR, \r
188 kADCTST, \r
189 kSADCAZ, \r
190 kFGF0, \r
191 kFGF1, \r
192 kFGF2, \r
193 kFGF3, \r
194 kFGF4, \r
195 kFGF5, \r
196 kFGF6, \r
197 kFGF7, \r
198 kFGF8, \r
199 kFGF9, \r
200 kFGF10, \r
201 kFGF11, \r
202 kFGF12, \r
203 kFGF13, \r
204 kFGF14, \r
205 kFGF15, \r
206 kFGF16, \r
207 kFGF17, \r
208 kFGF18, \r
209 kFGF19, \r
210 kFGF20, \r
211 kFGA0, \r
212 kFGA1, \r
213 kFGA2, \r
214 kFGA3, \r
215 kFGA4, \r
216 kFGA5, \r
217 kFGA6, \r
218 kFGA7, \r
219 kFGA8, \r
220 kFGA9, \r
221 kFGA10, \r
222 kFGA11, \r
223 kFGA12, \r
224 kFGA13, \r
225 kFGA14, \r
226 kFGA15, \r
227 kFGA16, \r
228 kFGA17, \r
229 kFGA18, \r
230 kFGA19, \r
231 kFGA20, \r
232 kFLL00, \r
233 kFLL01, \r
234 kFLL02, \r
235 kFLL03, \r
236 kFLL04, \r
237 kFLL05, \r
238 kFLL06, \r
239 kFLL07, \r
240 kFLL08, \r
241 kFLL09, \r
242 kFLL0A, \r
243 kFLL0B, \r
244 kFLL0C, \r
245 kFLL0D, \r
246 kFLL0E, \r
247 kFLL0F, \r
248 kFLL10, \r
249 kFLL11, \r
250 kFLL12, \r
251 kFLL13, \r
252 kFLL14, \r
253 kFLL15, \r
254 kFLL16, \r
255 kFLL17, \r
256 kFLL18, \r
257 kFLL19, \r
258 kFLL1A, \r
259 kFLL1B, \r
260 kFLL1C, \r
261 kFLL1D, \r
262 kFLL1E, \r
263 kFLL1F, \r
264 kFLL20, \r
265 kFLL21, \r
266 kFLL22, \r
267 kFLL23, \r
268 kFLL24, \r
269 kFLL25, \r
270 kFLL26, \r
271 kFLL27, \r
272 kFLL28, \r
273 kFLL29, \r
274 kFLL2A, \r
275 kFLL2B, \r
276 kFLL2C, \r
277 kFLL2D, \r
278 kFLL2E, \r
279 kFLL2F, \r
280 kFLL30, \r
281 kFLL31, \r
282 kFLL32, \r
283 kFLL33, \r
284 kFLL34, \r
285 kFLL35, \r
286 kFLL36, \r
287 kFLL37, \r
288 kFLL38, \r
289 kFLL39, \r
290 kFLL3A, \r
291 kFLL3B, \r
292 kFLL3C, \r
293 kFLL3D, \r
294 kFLL3E, \r
295 kFLL3F, \r
296 kPASADEL, \r
297 kPASAPHA, \r
298 kPASAPRA, \r
299 kPASADAC, \r
300 kPASACHM, \r
301 kPASASTL, \r
302 kPASAPR1, \r
303 kPASAPR0, \r
304 kSADCTRG, \r
305 kSADCRUN, \r
306 kSADCPWR, \r
307 kL0TSIM, \r
308 kSADCEC, \r
309 kSADCMC, \r
310 kSADCOC, \r
311 kSADCGTB, \r
312 kSEBDEN, \r
313 kSEBDOU, \r
314 kTPL00, \r
315 kTPL01, \r
316 kTPL02, \r
317 kTPL03, \r
318 kTPL04, \r
319 kTPL05, \r
320 kTPL06, \r
321 kTPL07, \r
322 kTPL08, \r
323 kTPL09, \r
324 kTPL0A, \r
325 kTPL0B, \r
326 kTPL0C, \r
327 kTPL0D, \r
328 kTPL0E, \r
329 kTPL0F, \r
330 kTPL10, \r
331 kTPL11, \r
332 kTPL12, \r
333 kTPL13, \r
334 kTPL14, \r
335 kTPL15, \r
336 kTPL16, \r
337 kTPL17, \r
338 kTPL18, \r
339 kTPL19, \r
340 kTPL1A, \r
341 kTPL1B, \r
342 kTPL1C, \r
343 kTPL1D, \r
344 kTPL1E, \r
345 kTPL1F, \r
346 kTPL20, \r
347 kTPL21, \r
348 kTPL22, \r
349 kTPL23, \r
350 kTPL24, \r
351 kTPL25, \r
352 kTPL26, \r
353 kTPL27, \r
354 kTPL28, \r
355 kTPL29, \r
356 kTPL2A, \r
357 kTPL2B, \r
358 kTPL2C, \r
359 kTPL2D, \r
360 kTPL2E, \r
361 kTPL2F, \r
362 kTPL30, \r
363 kTPL31, \r
364 kTPL32, \r
365 kTPL33, \r
366 kTPL34, \r
367 kTPL35, \r
368 kTPL36, \r
369 kTPL37, \r
370 kTPL38, \r
371 kTPL39, \r
372 kTPL3A, \r
373 kTPL3B, \r
374 kTPL3C, \r
375 kTPL3D, \r
376 kTPL3E, \r
377 kTPL3F, \r
378 kTPL40, \r
379 kTPL41, \r
380 kTPL42, \r
381 kTPL43, \r
382 kTPL44, \r
383 kTPL45, \r
384 kTPL46, \r
385 kTPL47, \r
386 kTPL48, \r
387 kTPL49, \r
388 kTPL4A, \r
389 kTPL4B, \r
390 kTPL4C, \r
391 kTPL4D, \r
392 kTPL4E, \r
393 kTPL4F, \r
394 kTPL50, \r
395 kTPL51, \r
396 kTPL52, \r
397 kTPL53, \r
398 kTPL54, \r
399 kTPL55, \r
400 kTPL56, \r
401 kTPL57, \r
402 kTPL58, \r
403 kTPL59, \r
404 kTPL5A, \r
405 kTPL5B, \r
406 kTPL5C, \r
407 kTPL5D, \r
408 kTPL5E, \r
409 kTPL5F, \r
410 kTPL60, \r
411 kTPL61, \r
412 kTPL62, \r
413 kTPL63, \r
414 kTPL64, \r
415 kTPL65, \r
416 kTPL66, \r
417 kTPL67, \r
418 kTPL68, \r
419 kTPL69, \r
420 kTPL6A, \r
421 kTPL6B, \r
422 kTPL6C, \r
423 kTPL6D, \r
424 kTPL6E, \r
425 kTPL6F, \r
426 kTPL70, \r
427 kTPL71, \r
428 kTPL72, \r
429 kTPL73, \r
430 kTPL74, \r
431 kTPL75, \r
432 kTPL76, \r
433 kTPL77, \r
434 kTPL78, \r
435 kTPL79, \r
436 kTPL7A, \r
437 kTPL7B, \r
438 kTPL7C, \r
439 kTPL7D, \r
440 kTPL7E, \r
441 kTPL7F, \r
442 kMEMRW, \r
443 kMEMCOR, \r
444 kDMDELA, \r
445 kDMDELS, \r
446 kLastReg }; // enum of all TRAP registers, to be used for access to them\r
447\r
448 inline const char* GetRegName(TrapReg_t reg) { return fRegs[reg].name.Data(); }\r
449 inline UShort_t GetRegAddress(TrapReg_t reg) { return fRegs[reg].addr; }\r
450 inline UShort_t GetRegNBits(TrapReg_t reg) { return fRegs[reg].nbits; }\r
451 inline UInt_t GetRegResetValue(TrapReg_t reg) { return fRegs[reg].res_val; }\r
452\r
453 Int_t GetTrapReg(TrapReg_t reg, Int_t det = -1, Int_t rob = -1, Int_t mcm = -1);\r
454 void PrintTrapReg(TrapReg_t reg, Int_t det = -1, Int_t rob = -1, Int_t mcm = -1);\r
455\r
456 Bool_t SetTrapReg(TrapReg_t reg, Int_t value, Int_t det = -1, Int_t rob = -1, Int_t mcm = -1);\r
457\r
458 Bool_t LoadConfig();\r
459\r
460 protected:\r
461 static AliTRDtrapConfig *fgInstance; // pointer to instance (singleton)\r
462\r
463 struct SimpleReg_t {\r
464 TString name; // Name of the register\r
465 UShort_t addr; // Address in GIO of TRAP\r
466 UShort_t nbits; // Number of bits, from 1 to 32\r
467 UInt_t res_val; // reset value\r
468 SimpleReg_t(char *nnn = 0, UShort_t a = 0, UShort_t n = 0, UInt_t r = 0) : \r
469 name(nnn), addr(a), nbits(n), res_val(r) {}\r
470 };\r
471\r
472 struct RegValue_t {\r
473 enum {\r
474 kInvalid = 0,\r
475 kGlobal,\r
476 kIndividual\r
477 } state;\r
478 union {\r
479 Int_t globalValue;\r
480 Int_t *individualValue;\r
481 };\r
482 };\r
483\r
484 SimpleReg_t fRegs[kLastReg]; // array of TRAP registers\r
485 RegValue_t fRegisterValue[kLastReg]; // array of TRAP register values in use\r
486\r
487/* not yet used\r
488 struct BlockDescr_t {\r
489 UShort_t addr;\r
490 UShort_t nregs;\r
491 UShort_t nbits;\r
492 UShort_t step;\r
493 };\r
494\r
495 struct CmdReg_t {\r
496 char *name;\r
497 UShort_t addr;\r
498 };\r
499\r
500 enum DbankProp_t { kDBankEmpty = 0,\r
501 kDBankHeader,\r
502 kDBankData,\r
503 kDBankNoB,\r
504 kDBankCRC,\r
505 kDBankEHeader,\r
506 kDBankSCSNData };\r
507*/\r
508\r
509 private:\r
510 AliTRDtrapConfig();\r
511\r
512 ClassDef(AliTRDtrapConfig, 1);\r
513};\r
514\r
515#endif\r
516\r
517\r