1 #ifndef ALITRDTRAPCONFIG_H
\r
2 #define ALITRDTRAPCONFIG_H
\r
6 #include <TClonesArray.h>
\r
8 class AliTRDtrapConfig : public TObject
\r
11 static AliTRDtrapConfig* Instance();
\r
13 enum TrapReg_t { kSML0,
\r
446 kLastReg }; // enum of all TRAP registers, to be used for access to them
\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
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
456 Bool_t SetTrapReg(TrapReg_t reg, Int_t value, Int_t det = -1, Int_t rob = -1, Int_t mcm = -1);
\r
458 Bool_t LoadConfig();
\r
461 static AliTRDtrapConfig *fgInstance; // pointer to instance (singleton)
\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
472 struct RegValue_t {
\r
480 Int_t *individualValue;
\r
484 SimpleReg_t fRegs[kLastReg]; // array of TRAP registers
\r
485 RegValue_t fRegisterValue[kLastReg]; // array of TRAP register values in use
\r
488 struct BlockDescr_t {
\r
500 enum DbankProp_t { kDBankEmpty = 0,
\r
510 AliTRDtrapConfig();
\r
512 ClassDef(AliTRDtrapConfig, 1);
\r