]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFDecoder.cxx
bugfix: corrected calculation of slice and partition from track point Id
[u/mrichter/AliRoot.git] / TOF / AliTOFDecoder.cxx
index 2474322d75c090e0734a1a0f4277269de94405ca..48cf58215caaf9a111eb148d80a113ddfb46f6cc 100644 (file)
@@ -76,6 +76,10 @@ AliTOFDecoder::AliTOFDecoder() :
   fSpiderCurrentTDC(-1)
 {
   //default constructor
+
+  for (Int_t chan=0;chan<N_CHANNEL;chan++)
+    fSpiderLeadingFlag[chan] = kFALSE;
+
 }
 
 //_________________________________________________________________
@@ -100,6 +104,10 @@ AliTOFDecoder::AliTOFDecoder(AliTOFHitDataBuffer *DataBuffer, AliTOFHitDataBuffe
   fSpiderCurrentTDC(-1)
 {
   //another constructor
+
+  for (Int_t chan=0;chan<N_CHANNEL;chan++)
+    fSpiderLeadingFlag[chan] = kFALSE;
+
 }
 
 //_________________________________________________________________
@@ -124,6 +132,9 @@ AliTOFDecoder::AliTOFDecoder(const AliTOFDecoder &source) :
   fSpiderCurrentTDC(source.fSpiderCurrentTDC)
 {
   //copy constructor
+
+  for (Int_t chan=0;chan<N_CHANNEL;chan++)
+    fSpiderLeadingFlag[chan] = source.fSpiderLeadingFlag[chan];
   
 }
 
@@ -154,6 +165,9 @@ AliTOFDecoder::operator = (const AliTOFDecoder &source)
   fSpiderCurrentSlotID = source.fSpiderCurrentSlotID;
   fSpiderCurrentChain = source.fSpiderCurrentChain;
   fSpiderCurrentTDC = source.fSpiderCurrentTDC;
+  for (Int_t chan=0;chan<N_CHANNEL;chan++)
+    fSpiderLeadingFlag[chan] = source.fSpiderLeadingFlag[chan];
+  
   return *this;
 }
 
@@ -201,8 +215,8 @@ AliTOFDecoder::Decode(const UInt_t *rawData, Int_t nWords, const AliRawDataHeade
   Short_t  currentChain = -1;
   Short_t  currentBunchID = -1;
   Short_t  currentL0BCID = -1;
-  Short_t  currentMiniEventID = cdh ? cdh->GetMiniEventID() : (Short_t)-1;
-  Short_t  currentEventID1 = cdh ? cdh->GetEventID1() : (Short_t)-1;
+  Short_t  currentMiniEventID = cdh ? cdh->GetMiniEventID() : (Short_t)(-1);
+  Short_t  currentEventID1 = cdh ? cdh->GetEventID1() : (Short_t)(-1);
   AliDebug(1, Form("EvID1 = %d, EvID2 = %d, currentMiniEventID = %d", currentEventID1, cdh->GetEventID2(), currentMiniEventID));
   if (!cdh)
     AliWarning("CDH not valid: deltaBunchID not reliable ");
@@ -256,7 +270,7 @@ AliTOFDecoder::Decode(const UInt_t *rawData, Int_t nWords, const AliRawDataHeade
        for (Int_t i = 0; i < DRM_DATA_WORDS; i++, iWord++){
          rawData++;
          if (fVerbose)
-           AliInfo(Form("  %02x - 0x%08x \t  DRM data",decodeStatus,*rawData));
+             AliInfo(Form("  %02x - 0x%08x \t  DRM data",decodeStatus,*rawData));
          switch (i) {
          case 2:
            lDRMStatusHeader3 = (AliTOFDRMStatusHeader3*)rawData;
@@ -918,3 +932,28 @@ void AliTOFDecoder::GetArrayDDL(Int_t* array, Int_t ddl){
   }
   return;
 }
+
+//------------------------------------------------------------
+void AliTOFDecoder::PrintStack(const UInt_t *rawData, Int_t nWords, const AliRawDataHeader *cdh)
+{
+  /* It loops over nWords 32-bit words 
+   * starting at *rawData and prints them in 0x format.
+   * It does not decode them!
+   */
+
+ Short_t  currentMiniEventID = cdh ? cdh->GetMiniEventID() : (Short_t)(-1);
+ Short_t  currentEventID1 = cdh ? cdh->GetEventID1() : (Short_t)(-1);
+ AliDebug(1, Form("EvID1 = %d, EvID2 = %d, currentMiniEventID = %d", currentEventID1, cdh->GetEventID2(), currentMiniEventID));
+ if (!cdh)
+   AliWarning("CDH not valid: deltaBunchID not reliable ");
+
+ AliInfo("Printing raw data stack for current equipment\n");
+ AliInfo("  wordN  -  Hex Word "); 
+ //loop over raw data
+ for (Int_t iWord = 0; iWord < nWords; iWord++, rawData++){
+     if (iWord<10)            AliInfo(Form("      %i   - 0x%08x",iWord,*rawData));
+     if (iWord>9 &&iWord<100) AliInfo(Form("     %i   - 0x%08x",iWord,*rawData)); 
+     if (iWord>99)            AliInfo(Form("    %i   - 0x%08x",iWord,*rawData)); 
+ }
+ return;
+}