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