-#ifndef ALITRDTRAPCONFIG_H
-#define ALITRDTRAPCONFIG_H
+#ifndef ALITRDTRAPCONFIG_H\r
+#define ALITRDTRAPCONFIG_H\r
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice */
-#include <TObject.h>
-#include <TClonesArray.h>
+//
+// Class holding the configuration of the tracklet processor
+// in the TRD FEE
+//
-class AliTRDtrapConfig : public TObject
-{
- public:
- static AliTRDtrapConfig* Instance();
-
- enum TrapReg_t { kSML0,
- kSML1,
- kSML2,
- kSMMODE,
- kNITM0,
- kNITM1,
- kNITM2,
- kNIP4D,
- kCPU0CLK,
- kCPU1CLK,
- kCPU2CLK,
- kCPU3CLK,
- kNICLK,
- kFILCLK,
- kPRECLK,
- kADCEN,
- kNIODE,
- kNIOCE,
- kNIIDE,
- kNIICE,
- kARBTIM,
- kIA0IRQ0,
- kIA0IRQ1,
- kIA0IRQ2,
- kIA0IRQ3,
- kIA0IRQ4,
- kIA0IRQ5,
- kIA0IRQ6,
- kIA0IRQ7,
- kIA0IRQ8,
- kIA0IRQ9,
- kIA0IRQA,
- kIA0IRQB,
- kIA0IRQC,
- kIRQSW0,
- kIRQHW0,
- kIRQHL0,
- kIA1IRQ0,
- kIA1IRQ1,
- kIA1IRQ2,
- kIA1IRQ3,
- kIA1IRQ4,
- kIA1IRQ5,
- kIA1IRQ6,
- kIA1IRQ7,
- kIA1IRQ8,
- kIA1IRQ9,
- kIA1IRQA,
- kIA1IRQB,
- kIA1IRQC,
- kIRQSW1,
- kIRQHW1,
- kIRQHL1,
- kIA2IRQ0,
- kIA2IRQ1,
- kIA2IRQ2,
- kIA2IRQ3,
- kIA2IRQ4,
- kIA2IRQ5,
- kIA2IRQ6,
- kIA2IRQ7,
- kIA2IRQ8,
- kIA2IRQ9,
- kIA2IRQA,
- kIA2IRQB,
- kIA2IRQC,
- kIRQSW2,
- kIRQHW2,
- kIRQHL2,
- kIA3IRQ0,
- kIA3IRQ1,
- kIA3IRQ2,
- kIA3IRQ3,
- kIA3IRQ4,
- kIA3IRQ5,
- kIA3IRQ6,
- kIA3IRQ7,
- kIA3IRQ8,
- kIA3IRQ9,
- kIA3IRQA,
- kIA3IRQB,
- kIA3IRQC,
- kIRQSW3,
- kIRQHW3,
- kIRQHL3,
- kCTGDINI,
- kCTGCTRL,
- kC08CPU0,
- kC09CPU0,
- kC10CPU0,
- kC11CPU0,
- kC12CPUA,
- kC13CPUA,
- kC14CPUA,
- kC15CPUA,
- kC08CPU1,
- kC09CPU1,
- kC10CPU1,
- kC11CPU1,
- kC08CPU2,
- kC09CPU2,
- kC10CPU2,
- kC11CPU2,
- kC08CPU3,
- kC09CPU3,
- kC10CPU3,
- kC11CPU3,
- kNMOD,
- kNDLY,
- kNED,
- kNTRO,
- kNRRO,
- kNES,
- kNTP,
- kNBND,
- kNP0,
- kNP1,
- kNP2,
- kNP3,
- kNCUT,
- kTPPT0,
- kTPFS,
- kTPFE,
- kTPPGR,
- kTPPAE,
- kTPQS0,
- kTPQE0,
- kTPQS1,
- kTPQE1,
- kEBD,
- kEBAQA,
- kEBSIA,
- kEBSF,
- kEBSIM,
- kEBPP,
- kEBPC,
- kEBIS,
- kEBIT,
- kEBIL,
- kEBIN,
- kFLBY,
- kFPBY,
- kFGBY,
- kFTBY,
- kFCBY,
- kFPTC,
- kFPNP,
- kFPCL,
- kFGTA,
- kFGTB,
- kFGCL,
- kFTAL,
- kFTLL,
- kFTLS,
- kFCW1,
- kFCW2,
- kFCW3,
- kFCW4,
- kFCW5,
- kTPFP,
- kTPHT,
- kTPVT,
- kTPVBY,
- kTPCT,
- kTPCL,
- kTPCBY,
- kTPD,
- kTPCI0,
- kTPCI1,
- kTPCI2,
- kTPCI3,
- kADCMSK,
- kADCINB,
- kADCDAC,
- kADCPAR,
- kADCTST,
- kSADCAZ,
- kFGF0,
- kFGF1,
- kFGF2,
- kFGF3,
- kFGF4,
- kFGF5,
- kFGF6,
- kFGF7,
- kFGF8,
- kFGF9,
- kFGF10,
- kFGF11,
- kFGF12,
- kFGF13,
- kFGF14,
- kFGF15,
- kFGF16,
- kFGF17,
- kFGF18,
- kFGF19,
- kFGF20,
- kFGA0,
- kFGA1,
- kFGA2,
- kFGA3,
- kFGA4,
- kFGA5,
- kFGA6,
- kFGA7,
- kFGA8,
- kFGA9,
- kFGA10,
- kFGA11,
- kFGA12,
- kFGA13,
- kFGA14,
- kFGA15,
- kFGA16,
- kFGA17,
- kFGA18,
- kFGA19,
- kFGA20,
- kFLL00,
- kFLL01,
- kFLL02,
- kFLL03,
- kFLL04,
- kFLL05,
- kFLL06,
- kFLL07,
- kFLL08,
- kFLL09,
- kFLL0A,
- kFLL0B,
- kFLL0C,
- kFLL0D,
- kFLL0E,
- kFLL0F,
- kFLL10,
- kFLL11,
- kFLL12,
- kFLL13,
- kFLL14,
- kFLL15,
- kFLL16,
- kFLL17,
- kFLL18,
- kFLL19,
- kFLL1A,
- kFLL1B,
- kFLL1C,
- kFLL1D,
- kFLL1E,
- kFLL1F,
- kFLL20,
- kFLL21,
- kFLL22,
- kFLL23,
- kFLL24,
- kFLL25,
- kFLL26,
- kFLL27,
- kFLL28,
- kFLL29,
- kFLL2A,
- kFLL2B,
- kFLL2C,
- kFLL2D,
- kFLL2E,
- kFLL2F,
- kFLL30,
- kFLL31,
- kFLL32,
- kFLL33,
- kFLL34,
- kFLL35,
- kFLL36,
- kFLL37,
- kFLL38,
- kFLL39,
- kFLL3A,
- kFLL3B,
- kFLL3C,
- kFLL3D,
- kFLL3E,
- kFLL3F,
- kPASADEL,
- kPASAPHA,
- kPASAPRA,
- kPASADAC,
- kPASACHM,
- kPASASTL,
- kPASAPR1,
- kPASAPR0,
- kSADCTRG,
- kSADCRUN,
- kSADCPWR,
- kL0TSIM,
- kSADCEC,
- kSADCMC,
- kSADCOC,
- kSADCGTB,
- kSEBDEN,
- kSEBDOU,
- kTPL00,
- kTPL01,
- kTPL02,
- kTPL03,
- kTPL04,
- kTPL05,
- kTPL06,
- kTPL07,
- kTPL08,
- kTPL09,
- kTPL0A,
- kTPL0B,
- kTPL0C,
- kTPL0D,
- kTPL0E,
- kTPL0F,
- kTPL10,
- kTPL11,
- kTPL12,
- kTPL13,
- kTPL14,
- kTPL15,
- kTPL16,
- kTPL17,
- kTPL18,
- kTPL19,
- kTPL1A,
- kTPL1B,
- kTPL1C,
- kTPL1D,
- kTPL1E,
- kTPL1F,
- kTPL20,
- kTPL21,
- kTPL22,
- kTPL23,
- kTPL24,
- kTPL25,
- kTPL26,
- kTPL27,
- kTPL28,
- kTPL29,
- kTPL2A,
- kTPL2B,
- kTPL2C,
- kTPL2D,
- kTPL2E,
- kTPL2F,
- kTPL30,
- kTPL31,
- kTPL32,
- kTPL33,
- kTPL34,
- kTPL35,
- kTPL36,
- kTPL37,
- kTPL38,
- kTPL39,
- kTPL3A,
- kTPL3B,
- kTPL3C,
- kTPL3D,
- kTPL3E,
- kTPL3F,
- kTPL40,
- kTPL41,
- kTPL42,
- kTPL43,
- kTPL44,
- kTPL45,
- kTPL46,
- kTPL47,
- kTPL48,
- kTPL49,
- kTPL4A,
- kTPL4B,
- kTPL4C,
- kTPL4D,
- kTPL4E,
- kTPL4F,
- kTPL50,
- kTPL51,
- kTPL52,
- kTPL53,
- kTPL54,
- kTPL55,
- kTPL56,
- kTPL57,
- kTPL58,
- kTPL59,
- kTPL5A,
- kTPL5B,
- kTPL5C,
- kTPL5D,
- kTPL5E,
- kTPL5F,
- kTPL60,
- kTPL61,
- kTPL62,
- kTPL63,
- kTPL64,
- kTPL65,
- kTPL66,
- kTPL67,
- kTPL68,
- kTPL69,
- kTPL6A,
- kTPL6B,
- kTPL6C,
- kTPL6D,
- kTPL6E,
- kTPL6F,
- kTPL70,
- kTPL71,
- kTPL72,
- kTPL73,
- kTPL74,
- kTPL75,
- kTPL76,
- kTPL77,
- kTPL78,
- kTPL79,
- kTPL7A,
- kTPL7B,
- kTPL7C,
- kTPL7D,
- kTPL7E,
- kTPL7F,
- kMEMRW,
- kMEMCOR,
- kDMDELA,
- kDMDELS,
- kLastReg }; // enum of all TRAP registers, to be used for access to them
-
- inline const char* GetRegName(TrapReg_t reg) { return fRegs[reg].name; }
- inline UShort_t GetRegAddress(TrapReg_t reg) { return fRegs[reg].addr; }
- inline UShort_t GetRegNBits(TrapReg_t reg) { return fRegs[reg].nbits; }
- inline UInt_t GetRegResetValue(TrapReg_t reg) { return fRegs[reg].res_val; }
-
- Int_t GetTrapReg(TrapReg_t reg, Int_t det = -1, Int_t rob = -1, Int_t mcm = -1);
- void PrintTrapReg(TrapReg_t reg, Int_t det = -1, Int_t rob = -1, Int_t mcm = -1);
-
- Bool_t SetTrapReg(TrapReg_t reg, Int_t value, Int_t det = -1, Int_t rob = -1, Int_t mcm = -1);
-
- Bool_t LoadConfig();
-
- protected:
- static AliTRDtrapConfig *fgInstance; // pointer to instance (singleton)
-
- struct SimpleReg_t {
- char *name; // Name of the register
- UShort_t addr; // Address in GIO of TRAP
- UShort_t nbits; // Number of bits, from 1 to 32
- UInt_t res_val; // reset value
- SimpleReg_t(char *nnn = 0, UShort_t a = 0, UShort_t n = 0, UInt_t r = 0) :
- name(nnn), addr(a), nbits(n), res_val(r) {}
- };
-
- struct RegValue_t {
- enum {
- kInvalid = 0,
- kGlobal,
- kIndividual
- } state;
- union {
- Int_t globalValue;
- Int_t *individualValue;
- };
- };
-
- SimpleReg_t fRegs[kLastReg]; // array of TRAP registers
- RegValue_t fRegisterValue[kLastReg]; // array of TRAP register values in use
-
-/* not yet used
- struct BlockDescr_t {
- UShort_t addr;
- UShort_t nregs;
- UShort_t nbits;
- UShort_t step;
- };
-
- struct CmdReg_t {
- char *name;
- UShort_t addr;
- };
-
- enum DbankProp_t { kDBankEmpty = 0,
- kDBankHeader,
- kDBankData,
- kDBankNoB,
- kDBankCRC,
- kDBankEHeader,
- kDBankSCSNData };
-*/
+\r
+#include <TObject.h>\r
+#include <TString.h>\r
+#include <TClonesArray.h>\r
+\r
+class AliTRDtrapConfig : public TObject\r
+{\r
+ public:\r
+ static AliTRDtrapConfig* Instance();\r
+\r
+ enum TrapReg_t { kSML0, \r
+ kSML1, \r
+ kSML2,\r
+ kSMMODE,\r
+ kNITM0,\r
+ kNITM1,\r
+ kNITM2,\r
+ kNIP4D,\r
+ kCPU0CLK,\r
+ kCPU1CLK,\r
+ kCPU2CLK,\r
+ kCPU3CLK,\r
+ kNICLK,\r
+ kFILCLK,\r
+ kPRECLK,\r
+ kADCEN,\r
+ kNIODE,\r
+ kNIOCE,\r
+ kNIIDE,\r
+ kNIICE,\r
+ kARBTIM, \r
+ kIA0IRQ0, \r
+ kIA0IRQ1, \r
+ kIA0IRQ2, \r
+ kIA0IRQ3, \r
+ kIA0IRQ4, \r
+ kIA0IRQ5, \r
+ kIA0IRQ6, \r
+ kIA0IRQ7, \r
+ kIA0IRQ8, \r
+ kIA0IRQ9, \r
+ kIA0IRQA, \r
+ kIA0IRQB, \r
+ kIA0IRQC, \r
+ kIRQSW0, \r
+ kIRQHW0, \r
+ kIRQHL0, \r
+ kIA1IRQ0, \r
+ kIA1IRQ1, \r
+ kIA1IRQ2, \r
+ kIA1IRQ3, \r
+ kIA1IRQ4, \r
+ kIA1IRQ5, \r
+ kIA1IRQ6, \r
+ kIA1IRQ7, \r
+ kIA1IRQ8, \r
+ kIA1IRQ9, \r
+ kIA1IRQA, \r
+ kIA1IRQB, \r
+ kIA1IRQC, \r
+ kIRQSW1, \r
+ kIRQHW1, \r
+ kIRQHL1, \r
+ kIA2IRQ0, \r
+ kIA2IRQ1, \r
+ kIA2IRQ2, \r
+ kIA2IRQ3, \r
+ kIA2IRQ4, \r
+ kIA2IRQ5, \r
+ kIA2IRQ6, \r
+ kIA2IRQ7, \r
+ kIA2IRQ8, \r
+ kIA2IRQ9, \r
+ kIA2IRQA, \r
+ kIA2IRQB, \r
+ kIA2IRQC, \r
+ kIRQSW2, \r
+ kIRQHW2, \r
+ kIRQHL2, \r
+ kIA3IRQ0, \r
+ kIA3IRQ1, \r
+ kIA3IRQ2, \r
+ kIA3IRQ3, \r
+ kIA3IRQ4, \r
+ kIA3IRQ5, \r
+ kIA3IRQ6, \r
+ kIA3IRQ7, \r
+ kIA3IRQ8, \r
+ kIA3IRQ9, \r
+ kIA3IRQA, \r
+ kIA3IRQB, \r
+ kIA3IRQC, \r
+ kIRQSW3, \r
+ kIRQHW3, \r
+ kIRQHL3, \r
+ kCTGDINI, \r
+ kCTGCTRL, \r
+ kC08CPU0, \r
+ kC09CPU0, \r
+ kC10CPU0, \r
+ kC11CPU0, \r
+ kC12CPUA, \r
+ kC13CPUA, \r
+ kC14CPUA, \r
+ kC15CPUA, \r
+ kC08CPU1, \r
+ kC09CPU1, \r
+ kC10CPU1, \r
+ kC11CPU1, \r
+ kC08CPU2, \r
+ kC09CPU2, \r
+ kC10CPU2, \r
+ kC11CPU2, \r
+ kC08CPU3, \r
+ kC09CPU3, \r
+ kC10CPU3, \r
+ kC11CPU3, \r
+ kNMOD, \r
+ kNDLY, \r
+ kNED, \r
+ kNTRO, \r
+ kNRRO, \r
+ kNES, \r
+ kNTP, \r
+ kNBND, \r
+ kNP0, \r
+ kNP1, \r
+ kNP2, \r
+ kNP3, \r
+ kNCUT, \r
+ kTPPT0, \r
+ kTPFS, \r
+ kTPFE, \r
+ kTPPGR, \r
+ kTPPAE, \r
+ kTPQS0, \r
+ kTPQE0, \r
+ kTPQS1, \r
+ kTPQE1, \r
+ kEBD, \r
+ kEBAQA, \r
+ kEBSIA, \r
+ kEBSF, \r
+ kEBSIM, \r
+ kEBPP, \r
+ kEBPC, \r
+ kEBIS, \r
+ kEBIT, \r
+ kEBIL, \r
+ kEBIN, \r
+ kFLBY, \r
+ kFPBY, \r
+ kFGBY, \r
+ kFTBY, \r
+ kFCBY, \r
+ kFPTC, \r
+ kFPNP, \r
+ kFPCL, \r
+ kFGTA, \r
+ kFGTB, \r
+ kFGCL, \r
+ kFTAL, \r
+ kFTLL, \r
+ kFTLS, \r
+ kFCW1, \r
+ kFCW2, \r
+ kFCW3, \r
+ kFCW4, \r
+ kFCW5, \r
+ kTPFP, \r
+ kTPHT, \r
+ kTPVT, \r
+ kTPVBY, \r
+ kTPCT, \r
+ kTPCL, \r
+ kTPCBY, \r
+ kTPD, \r
+ kTPCI0, \r
+ kTPCI1, \r
+ kTPCI2, \r
+ kTPCI3, \r
+ kADCMSK, \r
+ kADCINB, \r
+ kADCDAC, \r
+ kADCPAR, \r
+ kADCTST, \r
+ kSADCAZ, \r
+ kFGF0, \r
+ kFGF1, \r
+ kFGF2, \r
+ kFGF3, \r
+ kFGF4, \r
+ kFGF5, \r
+ kFGF6, \r
+ kFGF7, \r
+ kFGF8, \r
+ kFGF9, \r
+ kFGF10, \r
+ kFGF11, \r
+ kFGF12, \r
+ kFGF13, \r
+ kFGF14, \r
+ kFGF15, \r
+ kFGF16, \r
+ kFGF17, \r
+ kFGF18, \r
+ kFGF19, \r
+ kFGF20, \r
+ kFGA0, \r
+ kFGA1, \r
+ kFGA2, \r
+ kFGA3, \r
+ kFGA4, \r
+ kFGA5, \r
+ kFGA6, \r
+ kFGA7, \r
+ kFGA8, \r
+ kFGA9, \r
+ kFGA10, \r
+ kFGA11, \r
+ kFGA12, \r
+ kFGA13, \r
+ kFGA14, \r
+ kFGA15, \r
+ kFGA16, \r
+ kFGA17, \r
+ kFGA18, \r
+ kFGA19, \r
+ kFGA20, \r
+ kFLL00, \r
+ kFLL01, \r
+ kFLL02, \r
+ kFLL03, \r
+ kFLL04, \r
+ kFLL05, \r
+ kFLL06, \r
+ kFLL07, \r
+ kFLL08, \r
+ kFLL09, \r
+ kFLL0A, \r
+ kFLL0B, \r
+ kFLL0C, \r
+ kFLL0D, \r
+ kFLL0E, \r
+ kFLL0F, \r
+ kFLL10, \r
+ kFLL11, \r
+ kFLL12, \r
+ kFLL13, \r
+ kFLL14, \r
+ kFLL15, \r
+ kFLL16, \r
+ kFLL17, \r
+ kFLL18, \r
+ kFLL19, \r
+ kFLL1A, \r
+ kFLL1B, \r
+ kFLL1C, \r
+ kFLL1D, \r
+ kFLL1E, \r
+ kFLL1F, \r
+ kFLL20, \r
+ kFLL21, \r
+ kFLL22, \r
+ kFLL23, \r
+ kFLL24, \r
+ kFLL25, \r
+ kFLL26, \r
+ kFLL27, \r
+ kFLL28, \r
+ kFLL29, \r
+ kFLL2A, \r
+ kFLL2B, \r
+ kFLL2C, \r
+ kFLL2D, \r
+ kFLL2E, \r
+ kFLL2F, \r
+ kFLL30, \r
+ kFLL31, \r
+ kFLL32, \r
+ kFLL33, \r
+ kFLL34, \r
+ kFLL35, \r
+ kFLL36, \r
+ kFLL37, \r
+ kFLL38, \r
+ kFLL39, \r
+ kFLL3A, \r
+ kFLL3B, \r
+ kFLL3C, \r
+ kFLL3D, \r
+ kFLL3E, \r
+ kFLL3F, \r
+ kPASADEL, \r
+ kPASAPHA, \r
+ kPASAPRA, \r
+ kPASADAC, \r
+ kPASACHM, \r
+ kPASASTL, \r
+ kPASAPR1, \r
+ kPASAPR0, \r
+ kSADCTRG, \r
+ kSADCRUN, \r
+ kSADCPWR, \r
+ kL0TSIM, \r
+ kSADCEC, \r
+ kSADCMC, \r
+ kSADCOC, \r
+ kSADCGTB, \r
+ kSEBDEN, \r
+ kSEBDOU, \r
+ kTPL00, \r
+ kTPL01, \r
+ kTPL02, \r
+ kTPL03, \r
+ kTPL04, \r
+ kTPL05, \r
+ kTPL06, \r
+ kTPL07, \r
+ kTPL08, \r
+ kTPL09, \r
+ kTPL0A, \r
+ kTPL0B, \r
+ kTPL0C, \r
+ kTPL0D, \r
+ kTPL0E, \r
+ kTPL0F, \r
+ kTPL10, \r
+ kTPL11, \r
+ kTPL12, \r
+ kTPL13, \r
+ kTPL14, \r
+ kTPL15, \r
+ kTPL16, \r
+ kTPL17, \r
+ kTPL18, \r
+ kTPL19, \r
+ kTPL1A, \r
+ kTPL1B, \r
+ kTPL1C, \r
+ kTPL1D, \r
+ kTPL1E, \r
+ kTPL1F, \r
+ kTPL20, \r
+ kTPL21, \r
+ kTPL22, \r
+ kTPL23, \r
+ kTPL24, \r
+ kTPL25, \r
+ kTPL26, \r
+ kTPL27, \r
+ kTPL28, \r
+ kTPL29, \r
+ kTPL2A, \r
+ kTPL2B, \r
+ kTPL2C, \r
+ kTPL2D, \r
+ kTPL2E, \r
+ kTPL2F, \r
+ kTPL30, \r
+ kTPL31, \r
+ kTPL32, \r
+ kTPL33, \r
+ kTPL34, \r
+ kTPL35, \r
+ kTPL36, \r
+ kTPL37, \r
+ kTPL38, \r
+ kTPL39, \r
+ kTPL3A, \r
+ kTPL3B, \r
+ kTPL3C, \r
+ kTPL3D, \r
+ kTPL3E, \r
+ kTPL3F, \r
+ kTPL40, \r
+ kTPL41, \r
+ kTPL42, \r
+ kTPL43, \r
+ kTPL44, \r
+ kTPL45, \r
+ kTPL46, \r
+ kTPL47, \r
+ kTPL48, \r
+ kTPL49, \r
+ kTPL4A, \r
+ kTPL4B, \r
+ kTPL4C, \r
+ kTPL4D, \r
+ kTPL4E, \r
+ kTPL4F, \r
+ kTPL50, \r
+ kTPL51, \r
+ kTPL52, \r
+ kTPL53, \r
+ kTPL54, \r
+ kTPL55, \r
+ kTPL56, \r
+ kTPL57, \r
+ kTPL58, \r
+ kTPL59, \r
+ kTPL5A, \r
+ kTPL5B, \r
+ kTPL5C, \r
+ kTPL5D, \r
+ kTPL5E, \r
+ kTPL5F, \r
+ kTPL60, \r
+ kTPL61, \r
+ kTPL62, \r
+ kTPL63, \r
+ kTPL64, \r
+ kTPL65, \r
+ kTPL66, \r
+ kTPL67, \r
+ kTPL68, \r
+ kTPL69, \r
+ kTPL6A, \r
+ kTPL6B, \r
+ kTPL6C, \r
+ kTPL6D, \r
+ kTPL6E, \r
+ kTPL6F, \r
+ kTPL70, \r
+ kTPL71, \r
+ kTPL72, \r
+ kTPL73, \r
+ kTPL74, \r
+ kTPL75, \r
+ kTPL76, \r
+ kTPL77, \r
+ kTPL78, \r
+ kTPL79, \r
+ kTPL7A, \r
+ kTPL7B, \r
+ kTPL7C, \r
+ kTPL7D, \r
+ kTPL7E, \r
+ kTPL7F, \r
+ kMEMRW, \r
+ kMEMCOR, \r
+ kDMDELA, \r
+ kDMDELS, \r
+ kLastReg }; // enum of all TRAP registers, to be used for access to them\r
+\r
+ const char* GetRegName(TrapReg_t reg) const { return fRegs[reg].fName.Data(); }\r
+ UShort_t GetRegAddress(TrapReg_t reg) const { return fRegs[reg].fAddr; }\r
+ UShort_t GetRegNBits(TrapReg_t reg) const { return fRegs[reg].fNbits; }\r
+ UInt_t GetRegResetValue(TrapReg_t reg) const { return fRegs[reg].fResetValue; }\r
+\r
+ TrapReg_t GetRegByAddress(Int_t address) const;\r
+\r
+ Int_t GetTrapReg(TrapReg_t reg, Int_t det = -1, Int_t rob = -1, Int_t mcm = -1);\r
+ Bool_t PrintTrapReg(TrapReg_t reg, Int_t det = -1, Int_t rob = -1, Int_t mcm = -1);\r
+ Bool_t PrintTrapAddr(Int_t addr, Int_t det = -1, Int_t rob = -1, Int_t mcm = -1);\r
+\r
+ Bool_t SetTrapReg(TrapReg_t reg, Int_t value);\r
+ Bool_t SetTrapReg(TrapReg_t reg, Int_t value, Int_t det);\r
+ Bool_t SetTrapReg(TrapReg_t reg, Int_t value, Int_t det, Int_t rob, Int_t mcm);\r
+\r
+ void InitRegs();\r
+ void ResetRegs();\r
+\r
+ Bool_t LoadConfig();\r
+ Bool_t LoadConfig(Int_t det, TString filename);\r
+\r
+ Int_t ExtAliToAli( UInt_t dest, UShort_t linkpair, UShort_t rocType);\r
+\r
+ protected:\r
+ static AliTRDtrapConfig *fgInstance; // pointer to instance (singleton)\r
+\r
+ struct SimpleReg_t {\r
+ TString fName; // Name of the register\r
+ UShort_t fAddr; // Address in GIO of TRAP\r
+ UShort_t fNbits; // Number of bits, from 1 to 32\r
+ UInt_t fResetValue; // reset value\r
+ SimpleReg_t(char *nnn = 0, UShort_t a = 0, UShort_t n = 0, UInt_t r = 0) : \r
+ fName(nnn), fAddr(a), fNbits(n), fResetValue(r) {}\r
+ };\r
+\r
+ struct RegValue_t {\r
+ enum {\r
+ kInvalid = 0,\r
+ kGlobal,\r
+ kIndividual\r
+ } state; // mode of storage (global or per MCM)\r
+ union {\r
+ Int_t globalValue;\r
+ Int_t *individualValue;\r
+ };\r
+ };\r
+\r
+ SimpleReg_t fRegs[kLastReg]; // array of TRAP registers\r
+ RegValue_t fRegisterValue[kLastReg]; // array of TRAP register values in use\r
+\r
+ Bool_t AddValues(UInt_t det, UInt_t cmd, UInt_t extali, UInt_t addr, UInt_t data);\r
+ Short_t GetRobAB( UShort_t robsel, UShort_t linkpair ) const; // Converts the ROB part of the extended ALICE ID to robs\r
+ Short_t ChipmaskToMCMlist( Int_t cmA, Int_t cmB, UShort_t linkpair ); // Converts the chipmask to a list of MCMs \r
+\r
+ static const UInt_t fgkScsnCmdWrite=10; // Command number for the write command \r
+ static const Int_t fgkMaxLinkPairs=4; // number of linkpairs used during configuration\r
+ static const Int_t fgkMaxMcm; // max. no. of MCMs to be treated\r
+ static const Int_t fgkMcmlistSize=256; // list of MCMs to which a value has to be written\r
+\r
+ Int_t fMcmlist[fgkMcmlistSize]; // stores the list of MCMs after the conversion from extAliID -> AliID\r
+\r
+ AliTRDtrapConfig(); // private constructor due to singleton implementation\r
+\r
+/* not yet used\r
+ struct BlockDescr_t {\r
+ UShort_t addr;\r
+ UShort_t nregs;\r
+ UShort_t nbits;\r
+ UShort_t step;\r
+ };\r
+\r
+ struct CmdReg_t {\r
+ char *name;\r
+ UShort_t addr;\r
+ };\r
+\r
+ enum DbankProp_t { kDBankEmpty = 0,\r
+ kDBankHeader,\r
+ kDBankData,\r
+ kDBankNoB,\r
+ kDBankCRC,\r
+ kDBankEHeader,\r
+ kDBankSCSNData };\r
+*/\r
+\r
private:
- AliTRDtrapConfig();
-
- ClassDef(AliTRDtrapConfig, 1);
-};
+ AliTRDtrapConfig& operator=(const AliTRDtrapConfig &rhs); // not implemented
+ AliTRDtrapConfig(const AliTRDtrapConfig& cfg); // not implemented
-#endif
+ ClassDef(AliTRDtrapConfig, 2);\r
+};\r
+\r
+#endif\r
+\r