- additional output methods for verification of TRAPconfig and mcmSim
authorjklein <jklein@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 28 Sep 2013 15:08:13 +0000 (15:08 +0000)
committerjklein <jklein@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 28 Sep 2013 15:08:13 +0000 (15:08 +0000)
TRD/AliTRDmcmSim.cxx
TRD/AliTRDmcmSim.h
TRD/AliTRDtrapConfig.cxx
TRD/AliTRDtrapConfig.h

index f852992..43d9f71 100644 (file)
@@ -2337,6 +2337,22 @@ void AliTRDmcmSim::PrintTrackletsXml(ostream& os) const
 }
 
 
+void AliTRDmcmSim::PrintAdcDatTxt(ostream& os) const
+{
+  // print ADC data in text format (suitable as Modelsim stimuli)
+
+   os << "# MCM " << fMcmPos << " on ROB " << fRobPos <<
+      " in detector " << fDetector << std::endl;
+
+   for (Int_t iTimeBin = 0; iTimeBin < fNTimeBin; iTimeBin++) {
+      for (Int_t iChannel = 0; iChannel < AliTRDfeeParam::GetNadcMcm(); ++iChannel) {
+        os << std::setw(5) << (fADCR[iChannel][iTimeBin] >> fgkAddDigits);
+      }
+      os << std::endl;
+   }
+}
+
+
 void AliTRDmcmSim::PrintAdcDatHuman(ostream& os) const
 {
   // print ADC data in human-readable format
index a262fea..018fde8 100644 (file)
@@ -129,6 +129,7 @@ class AliTRDmcmSim : public TObject {
          // I/O
          void PrintFitRegXml(ostream& os) const;
          void PrintTrackletsXml(ostream& os) const;
+         void PrintAdcDatTxt(ostream& os) const;
          void PrintAdcDatHuman(ostream& os) const;
          void PrintAdcDatXml(ostream& os) const;
          void PrintAdcDatDatx(ostream& os, Bool_t broadcast=kFALSE, Int_t timeBinOffset = -1) const;
index f0e1cdb..f6672fc 100644 (file)
@@ -816,6 +816,29 @@ void AliTRDtrapConfig::PrintDatx(ostream &os, UInt_t addr, UInt_t data, Int_t ro
 }
 
 
+void AliTRDtrapConfig::PrintVerify(ostream &os, Int_t det, Int_t rob, Int_t mcm) const
+{
+  // print verification file in datx format
+
+  for (Int_t iReg = 0; iReg < kLastReg; ++iReg) {
+    os << std::setw(5) << 9
+       << std::setw(8) << GetRegAddress((TrapReg_t) iReg)
+       << std::setw(12) << GetTrapReg((TrapReg_t) iReg, det, rob, mcm)
+       << std::setw(8) << AliTRDfeeParam::AliToExtAli(rob, mcm)
+       << std::endl;
+  }
+
+  for (Int_t iWord = 0; iWord < fgkDmemWords; ++iWord) {
+    if (GetDmemUnsigned(fgkDmemStartAddress + iWord, det, rob, mcm) == 0)
+      continue;
+    os << std::setw(5) << 9
+       << std::setw(8) << fgkDmemStartAddress + iWord
+       << std::setw(12) << GetDmemUnsigned(fgkDmemStartAddress + iWord, det, rob, mcm)
+       << std::setw(8) << AliTRDfeeParam::AliToExtAli(rob, mcm)
+       << std::endl;
+  }
+}
+
 AliTRDtrapConfig::AliTRDtrapValue::AliTRDtrapValue() :
   TObject(),
   fAllocMode(kAllocGlobal),
index 170903f..8dcec7d 100644 (file)
@@ -512,6 +512,8 @@ class AliTRDtrapConfig : public TNamed
   void PrintMemDatx(ostream &os, TrapReg_t reg, Int_t det, Int_t rob, Int_t mcm) const;
   void PrintDatx(ostream &os, UInt_t addr, UInt_t data, Int_t rob, Int_t mcm) const;
 
+  void PrintVerify(ostream &os, Int_t det, Int_t rob, Int_t mcm) const;
+
   static const Int_t fgkDmemStartAddress  = 0xc000; // start address in TRAP GIO
   static const Int_t fgkDmemWords = 0x400;          // number of words in DMEM