]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDrawFastStream.cxx
Add the possibility to select events with CINT1B/CMUS1B triggers when filling histogr...
[u/mrichter/AliRoot.git] / TRD / AliTRDrawFastStream.cxx
index 168809c611f4a8718f70ca6b8667f42153c4cd84..73607f6cb015aacdb369885621490ce319921d4f 100644 (file)
@@ -39,7 +39,6 @@
 #include "AliTRDarrayADC.h"\r
 #include "AliTRDSignalIndex.h"\r
 #include "AliTRDdigitsParam.h"\r
-#include "AliTRDrawTPStream.h"\r
 \r
 #include "AliRawReader.h"\r
 \r
@@ -144,7 +143,6 @@ AliTRDrawFastStream::AliTRDrawFastStream()
   , fpPosTemp(0)\r
   , fGlobalNTimeBins(0)\r
   , fIsTimeBinSet(kFALSE)\r
-  , fIsGlobalDigitsParamSet(kFALSE)\r
   , fStackNumber(-1)\r
   , fStackLinkNumber(-1)\r
   , fLinkTrackletCounter(-1)\r
@@ -161,6 +159,7 @@ AliTRDrawFastStream::AliTRDrawFastStream()
   , fExtendedCOL(0)\r
   , fIsShared(0)\r
   , fWarnError(kTRUE)\r
+  , fWarnWarning(kFALSE)\r
   , fBufferRead(0)\r
   , fGeometry(0)\r
   , fRawReader(0)\r
@@ -191,7 +190,6 @@ AliTRDrawFastStream::AliTRDrawFastStream(AliRawReader *rawReader)
   , fpPosTemp(0)\r
   , fGlobalNTimeBins(0)\r
   , fIsTimeBinSet(kFALSE)\r
-  , fIsGlobalDigitsParamSet(kFALSE)\r
   , fStackNumber(-1)\r
   , fStackLinkNumber(-1)\r
   , fLinkTrackletCounter(-1)\r
@@ -208,6 +206,7 @@ AliTRDrawFastStream::AliTRDrawFastStream(AliRawReader *rawReader)
   , fExtendedCOL(0)\r
   , fIsShared(0)\r
   , fWarnError(kTRUE)\r
+  , fWarnWarning(kFALSE)\r
   , fBufferRead(0)\r
   , fGeometry(0)\r
   , fRawReader(rawReader)\r
@@ -242,7 +241,6 @@ AliTRDrawFastStream::AliTRDrawFastStream(const AliTRDrawFastStream& /*st*/)
   , fpPosTemp(0)\r
   , fGlobalNTimeBins(0)\r
   , fIsTimeBinSet(kFALSE)\r
-  , fIsGlobalDigitsParamSet(kFALSE)\r
   , fStackNumber(-1)\r
   , fStackLinkNumber(-1)\r
   , fLinkTrackletCounter(-1)\r
@@ -259,6 +257,7 @@ AliTRDrawFastStream::AliTRDrawFastStream(const AliTRDrawFastStream& /*st*/)
   , fExtendedCOL(0)\r
   , fIsShared(0)\r
   , fWarnError(kTRUE)\r
+  , fWarnWarning(kFALSE)\r
   , fBufferRead(0)\r
   , fGeometry(0)\r
   , fRawReader(0)\r
@@ -340,7 +339,7 @@ Bool_t AliTRDrawFastStream::SkipWords(UInt_t iw)
     return kTRUE;\r
   }\r
   else {\r
-    if (fWarnError) AliWarning(Form("Skip %d words failed. %d available", iw, fpEnd - fpPos - 1));\r
+    if (fWarnWarning) AliWarning(Form("Skip %u words failed. %u available", iw, fpEnd - fpPos - 1));\r
     return kFALSE;\r
   }\r
 \r
@@ -671,17 +670,15 @@ Int_t AliTRDrawFastStream::NextChamber(AliTRDdigitsManager *digitsManager, UInt_
       Int_t colMax = GetColMax();\r
       Int_t ntbins = GetGlobalNTimeBins(); \r
 \r
-      // Set digitparam variables\r
+      // Set digitsparam variables\r
       digitsparam = (AliTRDdigitsParam *) digitsManager->GetDigitsParam();\r
-      if (!fIsGlobalDigitsParamSet){\r
-        digitsparam->SetNTimeBins(ntbins);\r
-       fCommonAdditive=10;\r
-        digitsparam->SetADCbaseline(fCommonAdditive);\r
-        fIsGlobalDigitsParamSet = kTRUE;\r
-      } \r
+      digitsparam->SetNTimeBins(det,ntbins);\r
+      fCommonAdditive=10;\r
+      digitsparam->SetADCbaseline(det,fCommonAdditive);\r
 \r
       // Allocate memory space for the digits buffer\r
-      if (digits->GetNtime() == 0) {\r
+      //if (digits->GetNtime() == 0) {\r
+      if (ntbins != digits->GetNtime()) {\r
         digits->Allocate(rowMax, colMax, ntbins);\r
         if (digitsManager->UsesDictionaries()) {\r
           track0->Allocate(rowMax, colMax, ntbins);\r
@@ -695,7 +692,7 @@ Int_t AliTRDrawFastStream::NextChamber(AliTRDdigitsManager *digitsManager, UInt_
       indexes->SetStack(GetStack());\r
       indexes->SetLayer(GetLayer());\r
       indexes->SetDetNumber(det);\r
-      if (indexes->IsAllocated() == kFALSE)\r
+      if (indexes->GetNtime() != ntbins)\r
         indexes->Allocate(rowMax, colMax, ntbins);\r
     }\r
 \r
@@ -703,7 +700,7 @@ Int_t AliTRDrawFastStream::NextChamber(AliTRDdigitsManager *digitsManager, UInt_
       if (DecodeTracklets() == kFALSE) {\r
         SeekEndOfData();\r
 \r
-        if (fWarnError) AliError(Form("Tracklet decoding failed stack %d link %d", GetStack(), fStackLinkNumber));\r
+        if (fWarnWarning) AliWarning(Form("Tracklet decoding failed stack %d link %d", GetStack(), fStackLinkNumber));\r
 \r
         // copy error codes in memory into error container\r
         if (errorCodeContainer) {\r
@@ -738,7 +735,7 @@ Int_t AliTRDrawFastStream::NextChamber(AliTRDdigitsManager *digitsManager, UInt_
          }\r
     else SeekEndOfData(); // make sure that finish off with the end of data markers\r
 \r
-    // set pritrigger phase since it is only avaliable after decoding HC header \r
+    // set pretrigger phase since it is only avaliable after decoding HC header \r
     digitsparam->SetPretriggerPhase(det,GetPreTriggerPhase());\r
 \r
     // copy tracklets in memory into tracklet container\r
@@ -815,7 +812,7 @@ Bool_t AliTRDrawFastStream::InitBuffer(void *buffer, UInt_t length)
   fpPos = fpBegin;\r
 \r
   if (fpBegin == 0 || length <= 0) {\r
-    AliError(Form("Buffer size or pointer is strange. pointer to the buffer is 0x%08x of size %d", fpBegin, length));\r
+    AliError(Form("Buffer size or pointer is strange. pointer to the buffer is 0x%p of size %u", fpBegin, length));\r
     return kFALSE;\r
   }\r
 \r
@@ -874,7 +871,7 @@ Bool_t AliTRDrawFastStream::DecodeSMHeader(void *buffer, UInt_t length)
 \r
            if (fpPos >= fpEnd) {\r
           if (fRawReader) fRawReader->AddMajorErrorLog(kLinkDataMissing, "Link data missing");          \r
-          if (fWarnError) AliError("Link data missing.");\r
+          if (fWarnWarning) AliWarning("Link data missing.");\r
           break;\r
         }\r
 \r
@@ -949,7 +946,7 @@ Bool_t AliTRDrawFastStream::DecodeGTUheader()
     }\r
   }\r
   else {\r
-    if (fWarnError) AliWarning("No additional sm headers and stack index words present.");\r
+    if (fWarnWarning) AliWarning("No additional sm headers and stack index words present.");\r
     if (fRawReader) fRawReader->AddMajorErrorLog(kDecodeStackInfo, "Stack info missing");\r
     return kFALSE;\r
   }\r
@@ -958,7 +955,7 @@ Bool_t AliTRDrawFastStream::DecodeGTUheader()
     if (fgDebugFlag)  AliDebug(5, "GTU headers are OK.");\r
   }\r
   else {\r
-    if (fWarnError) AliWarning("No data just after GTU headers.");\r
+    if (fWarnError) AliError("No data just after GTU headers.");\r
     if (fRawReader) fRawReader->AddMajorErrorLog(kMissingData, "Missing sm data");\r
     return kFALSE;\r
   }\r
@@ -1020,10 +1017,10 @@ Bool_t AliTRDrawFastStream::DecodeTracklets()
   fEndOfTrackletCount = 0;  // tracklet endmarker counter of this link\r
   fHC->fNTracklets = 0;     // number of tracklet of this link, should be less than 256\r
 \r
-  if (fgDebugFlag)  AliDebug(10, Form("Decode tracklets at 0x%08x : 0x%08x", fpPos, *fpPos));\r
+  if (fgDebugFlag)  AliDebug(10, Form("Decode tracklets at 0x%p : 0x%08x", fpPos, *fpPos));\r
 \r
   while (!(*fpPos == END_OF_TRACKLET_MARKEROLD || *fpPos == END_OF_TRACKLET_MARKERNEW) && fpPos < fpEnd) {\r
-    if (fgDebugFlag)  AliDebug(10, Form("Tracklet found at 0x%08x : 0x%08x", fpPos, *fpPos));\r
+    if (fgDebugFlag)  AliDebug(10, Form("Tracklet found at 0x%p : 0x%08x", fpPos, *fpPos));\r
 \r
     fLinkTrackletCounter++;\r
 \r
@@ -1042,7 +1039,7 @@ Bool_t AliTRDrawFastStream::DecodeTracklets()
   fHC->fNTracklets = fLinkTrackletCounter;\r
 \r
   while ((*fpPos == END_OF_TRACKLET_MARKEROLD || *fpPos == END_OF_TRACKLET_MARKERNEW) && fpPos < fpEnd) {\r
-    if (fgDebugFlag)  AliDebug(10, Form("EoTracklets found at 0x%08x : 0x%08x", fpPos, *fpPos));\r
+    if (fgDebugFlag)  AliDebug(10, Form("EoTracklets found at 0x%p : 0x%08x", fpPos, *fpPos));\r
 \r
     fEndOfTrackletCount++;\r
     fpPos++;\r
@@ -1109,7 +1106,7 @@ Bool_t AliTRDrawFastStream::DecodeHC(AliTRDdigitsManager *digitsManager, AliTRDa
   }\r
 \r
   if (DecodeHCheader() == kFALSE) {\r
-    if (fWarnError) AliWarning(Form("HC Header decode failed. H0 Error: %d H1 Error: %d",fHC->fH0Corrupted,fHC->fH1Corrupted));\r
+    if (fWarnWarning) AliWarning(Form("HC Header decode failed. H0 Error: %d H1 Error: %d",fHC->fH0Corrupted,fHC->fH1Corrupted));\r
     return kFALSE;\r
   }\r
   else {\r
@@ -1121,14 +1118,14 @@ Bool_t AliTRDrawFastStream::DecodeHC(AliTRDdigitsManager *digitsManager, AliTRDa
     }\r
   }\r
 \r
-  if ((fHC->fRawVMajor & 64) == 64) { // test pattern data\r
-    AliTRDrawTPStream *tpStream = new AliTRDrawTPStream(fHC->fRawVMajorOpt, fpPos);\r
-    if (tpStream->DecodeTPdata() == kFALSE) {\r
-      if (fWarnError) AliError("Failed to decode test pattern data");\r
-      return kFALSE;\r
-    }\r
-    return kTRUE;\r
-  }\r
+//   if ((fHC->fRawVMajor & 64) == 64) { // test pattern data\r
+//     AliTRDrawTPStream *tpStream = new AliTRDrawTPStream(fHC->fRawVMajorOpt, fpPos);\r
+//     if (tpStream->DecodeTPdata() == kFALSE) {\r
+//       if (fWarnError) AliError("Failed to decode test pattern data");\r
+//       return kFALSE;\r
+//     }\r
+//     return kTRUE;\r
+//   }\r
 \r
   fHC->fMCMmax = 0; // count number of mcms in a hc \r
   while (*fpPos != ENDOFRAWDATAMARKER && fpPos < fpEnd) {\r
@@ -1252,7 +1249,7 @@ Bool_t AliTRDrawFastStream::DecodeHCheader()
 \r
   if (IsHCheaderOK() == kFALSE) {\r
     fHC->fH0Corrupted += 2;\r
-    if (fgDebugFlag) AliDebug(11,Form("H0 Header Insane. Word 0x%08x", *fHC->fPos));\r
+    if (fgDebugFlag) AliDebug(11,Form("H0 Header Insane. Word 0x%p", *fHC->fPos));\r
     return kFALSE;\r
   }\r
 \r
@@ -1270,7 +1267,7 @@ Bool_t AliTRDrawFastStream::DecodeHCwordH0(const UInt_t *word, struct AliTRDrawH
 \r
   hc->fH0Corrupted = HC_HEADER_MASK_ERR(vword);\r
   if (hc->fH0Corrupted > 0) {\r
-    if (fgDebugFlag) AliDebug(11,Form("H0 Header Mask Error. Word 0x%08x",*fHC->fPos ));\r
+    if (fgDebugFlag) AliDebug(11,Form("H0 Header Mask Error. Word 0x%p",*fHC->fPos ));\r
     return kFALSE;\r
   }\r
   hc->fSpecialRawV =  HC_SPECIAL_RAW_VERSION(vword);\r
@@ -1298,7 +1295,7 @@ Bool_t AliTRDrawFastStream::DecodeHCwordH1(const UInt_t *word, struct AliTRDrawH
 \r
   hc->fH1Corrupted = HC_HEADER_MASK_ERR(vword);\r
   if (hc->fH1Corrupted > 0) {\r
-    if (fgDebugFlag) AliDebug(11,Form("H1 Header Mask Error. Word 0x%08x", *(fHC->fPos+1) ));\r
+    if (fgDebugFlag) AliDebug(11,Form("H1 Header Mask Error. Word 0x%p", *(fHC->fPos+1) ));\r
     return kFALSE;\r
   }\r
   hc->fTimeBins = HC_NTIMEBINS(vword);\r
@@ -1753,7 +1750,7 @@ Bool_t AliTRDrawFastStream::SeekNextMCMheader()
 \r
   while ( *fpPos != ENDOFRAWDATAMARKER && fpPos < fpEnd ) {\r
     if (MCM_HEADER_MASK_ERR(*fpPos) == 0 && MCM_HEADER_MASK_ERR(*(fpPos+1)) == 0) {\r
-      if (fgDebugFlag) AliDebug(11,Form("Found : Pos 0x%08x : Val 0x%08x", fpPos, *fpPos));\r
+      if (fgDebugFlag) AliDebug(11,Form("Found : Pos 0x%p : Val 0x%08x", fpPos, *fpPos));\r
       return kTRUE;\r
     }\r
     if ( *fpPos == END_OF_TRACKLET_MARKERNEW) {\r
@@ -1800,7 +1797,7 @@ Bool_t AliTRDrawFastStream::SetGlobalNTimebins()
   // get number of time bin info from HC headers then set \r
   Int_t nHCs=0;\r
   while (SetNTimebins()==kFALSE){\r
-    if (fgDebugFlag) AliDebug(11,Form("Failed to get number of time bin information from the %sth HC",nHCs));\r
+    if (fgDebugFlag) AliDebug(11,Form("Failed to get number of time bin information from the %dth HC",nHCs));\r
     nHCs++;\r
   }\r
 \r
@@ -1843,7 +1840,7 @@ Bool_t AliTRDrawFastStream::DumpWords(UInt_t *px, UInt_t iw, UInt_t marker)
   //\r
   // dump given number of words for debugging\r
   //\r
-  TString tsreturn = Form("\n[ Dump Sequence at 0x%08x ] : ", px);\r
+  TString tsreturn = Form("\n[ Dump Sequence at 0x%p ] : ", px);\r
   for (UInt_t i = 0; i < iw; i++) {\r
      if ( iw != 0 && px + iw > fpEnd) \r
        return kFALSE;\r
@@ -1892,8 +1889,9 @@ const char *AliTRDrawFastStream::DumpHCinfoH0(const struct AliTRDrawHC *hc)
   if (!hc)\r
     return Form("Unable to dump. Null received as parameter!?!");\r
   else\r
-    return Form("[ HC[0] at 0x%08x ] : 0x%08x Info is : RawV %d SM %d Stack %d Layer %d Side %d DCSboard %d",\r
-                hc->fPos[0], *(hc->fPos[0]), hc->fRawVMajor, hc->fSM, hc->fStack, hc->fLayer, hc->fSide, hc->fDCSboard);\r
+     return Form("[ HC[0] at 0x%p ] : 0x%08x Info is : RawV %d SM %d Stack %d Layer %d Side %d DCSboard %d",\r
+                hc->fPos[0], *(hc->fPos[0]), hc->fRawVMajor, fRawReader->GetEquipmentId()-1024, \r
+                hc->fStack, hc->fLayer, hc->fSide, hc->fDCSboard);\r
 }\r
 \r
 //--------------------------------------------------------\r
@@ -1905,7 +1903,7 @@ const char *AliTRDrawFastStream::DumpHCinfoH1(const struct AliTRDrawHC *hc)
   if (!hc)\r
     return Form("Unable to dump. Null received as parameter!?!");\r
   else\r
-    return Form("[ HC[1] at 0x%08x ] : 0x%08x Info is : TBins %d BCcount %d PreTrigCount %d PreTrigPhase %d",\r
+    return Form("[ HC[1] at 0x%p ] : 0x%08x Info is : TBins %d BCcount %d PreTrigCount %d PreTrigPhase %d",\r
                 hc->fPos[1], *(hc->fPos[1]), hc->fTimeBins, hc->fBunchCrossCounter, hc->fPreTriggerCounter, hc->fPreTriggerPhase);\r
 }\r
 \r