]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDtrapConfig.h
- fixing bug in cluster analyser
[u/mrichter/AliRoot.git] / TRD / AliTRDtrapConfig.h
index af4a7f072c05d623a4c01379da2c3b58c0236595..5dca27cdf4af272b9f23f83d25f3916e2ed0fa65 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef ALITRDTRAPCONFIG_H\r
-#define ALITRDTRAPCONFIG_H\r
+#ifndef ALITRDTRAPCONFIG_H
+#define ALITRDTRAPCONFIG_H
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
 // in the TRD FEE
 //
 
-\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
+
+#include <TObject.h>
+#include <TString.h>
+
+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
+
+  const char* GetRegName(TrapReg_t reg)       const { return fRegs[reg].fName.Data(); }
+  UShort_t    GetRegAddress(TrapReg_t reg)    const { return fRegs[reg].fAddr; }
+  UShort_t    GetRegNBits(TrapReg_t reg)      const { return fRegs[reg].fNbits; }
+  UInt_t      GetRegResetValue(TrapReg_t reg) const { return fRegs[reg].fResetValue; }
+
+  TrapReg_t          GetRegByAddress(Int_t address) const;
+
+  Int_t  GetTrapReg(TrapReg_t reg, Int_t det = -1, Int_t rob = -1, Int_t mcm = -1);
+  Bool_t PrintTrapReg(TrapReg_t reg, Int_t det = -1, Int_t rob = -1, Int_t mcm = -1);
+  Bool_t PrintTrapAddr(Int_t addr, Int_t det = -1, Int_t rob = -1, Int_t mcm = -1);
+
+  Bool_t SetTrapReg(TrapReg_t reg, Int_t value);
+  Bool_t SetTrapReg(TrapReg_t reg, Int_t value, Int_t det);
+  Bool_t SetTrapReg(TrapReg_t reg, Int_t value, Int_t det, Int_t rob, Int_t mcm);
+
+  Int_t  Peek(Int_t addr, Int_t det, Int_t rob, Int_t mcm);
+  Bool_t Poke(Int_t addr, Int_t value, Int_t det, Int_t rob, Int_t mcm);
+
+  void InitRegs();
+  void ResetRegs();
+
+  // DMEM 
+  Bool_t SetDmem(Int_t addr, Int_t value);
+  Bool_t SetDmem(Int_t addr, Int_t value, Int_t det);
+  Bool_t SetDmem(Int_t addr, Int_t value, Int_t det, Int_t rob, Int_t mcm);
+
+  Int_t GetDmem(Int_t addr, Int_t det, Int_t rob, Int_t mcm);
+
+  // configuration handling
+  Bool_t LoadConfig();
+  Bool_t LoadConfig(Int_t det, TString filename);
+
+  Bool_t ReadPackedConfig(UInt_t *data, Int_t size);
+
+  Int_t  ExtAliToAli( UInt_t dest, UShort_t linkpair, UShort_t rocType);
+
+ protected:
+  static AliTRDtrapConfig *fgInstance;  // pointer to instance (singleton)
+
+  struct SimpleReg_t {
+    TString   fName;       // Name of the register
+    UShort_t  fAddr;       // Address in GIO of TRAP
+    UShort_t  fNbits;      // Number of bits, from 1 to 32
+    UInt_t    fResetValue; // reset value
+    SimpleReg_t(const char *nnn = 0, UShort_t a = 0, UShort_t n = 0, UInt_t r = 0) : 
+      fName(nnn), fAddr(a), fNbits(n), fResetValue(r) {}
+  };
+
+  struct RegValue_t {
+    enum {
+      kInvalid = 0,
+      kGlobal,
+      kIndividual
+    } state; // mode of storage (global or per MCM)
+    union {
+      Int_t globalValue;
+      Int_t *individualValue;
+    };
+  };
+
+  // configuration registers
+  SimpleReg_t fRegs[kLastReg];          // array of TRAP registers
+  RegValue_t fRegisterValue[kLastReg];  // array of TRAP register values in use
+
+  Bool_t AddValues(UInt_t det, UInt_t cmd, UInt_t extali, Int_t addr, UInt_t data);
+  Short_t GetRobAB( UShort_t robsel, UShort_t linkpair ) const;  // Converts the ROB part of the extended ALICE ID to robs
+  Short_t ChipmaskToMCMlist( Int_t cmA, Int_t cmB, UShort_t linkpair ); // Converts the chipmask to a list of MCMs 
+
+  static const UInt_t fgkScsnCmdWrite=10;  // Command number for the write command 
+  static const Int_t fgkMaxLinkPairs=4;    // number of linkpairs used during configuration
+  static const Int_t fgkMaxMcm;            // max. no. of MCMs to be treated
+  static const Int_t fgkMcmlistSize=256;     // list of MCMs to which a value has to be written
+
+  Int_t fMcmlist[fgkMcmlistSize];  // stores the list of MCMs after the conversion from extAliID -> AliID
+
+  // DMEM
+  static const Int_t fgkDmemStartAddress; // = 0xc000;  // start address in TRAP GIO
+  static const Int_t fgkDmemWords = 0x400;          // number of words in DMEM
+  UInt_t fDmem[540*8*18][fgkDmemWords]; // DMEM storage
+  Bool_t fDmemValid[540*8*18][fgkDmemWords]; // DMEM valid flag storage
+
+  AliTRDtrapConfig(); // private constructor due to singleton implementation
+
+/* 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 };
+*/
+
 
  private:
   AliTRDtrapConfig& operator=(const AliTRDtrapConfig &rhs); // not implemented
   AliTRDtrapConfig(const AliTRDtrapConfig& cfg); // not implemented
 
-  ClassDef(AliTRDtrapConfig, 2);\r
-};\r
-\r
-#endif\r
-\r
+  ClassDef(AliTRDtrapConfig, 2);
+};
+
+#endif
+