fSpiderCurrentTDC(-1)
{
//default constructor
+
+ for (Int_t chan=0;chan<N_CHANNEL;chan++)
+ fSpiderLeadingFlag[chan] = kFALSE;
+
}
//_________________________________________________________________
fSpiderCurrentTDC(-1)
{
//another constructor
+
+ for (Int_t chan=0;chan<N_CHANNEL;chan++)
+ fSpiderLeadingFlag[chan] = kFALSE;
+
}
//_________________________________________________________________
fSpiderCurrentTDC(source.fSpiderCurrentTDC)
{
//copy constructor
+
+ for (Int_t chan=0;chan<N_CHANNEL;chan++)
+ fSpiderLeadingFlag[chan] = source.fSpiderLeadingFlag[chan];
}
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;
}
* classes.
*/
+ AliTOFDRMStatusHeader3 *lDRMStatusHeader3;
AliTOFTRMGlobalHeader *lTRMGlobalHeader; //TRM global header
AliTOFTRMGlobalTrailer *lTRMGlobalTrailer; //TRM global trailer
AliTOFTRMChainHeader *lTRMChainHeader; //TRM chain header
Short_t currentACQ = -1;
Short_t currentChain = -1;
Short_t currentBunchID = -1;
- Short_t currentMiniEventID = cdh ? cdh->GetMiniEventID() : (Short_t)-1;
- Short_t currentEventID1 = cdh ? cdh->GetEventID1() : (Short_t)-1;
+ Short_t currentL0BCID = -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 ");
decodeStatus = decodeStatus | DRM_BIT;
//skip DRM data
- for (Int_t i = 0; i < DRM_DATA_WORDS; i++, iWord++, rawData++){
+ 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;
+ currentL0BCID = lDRMStatusHeader3->GetL0BCID();
+ break;
+ default:
+ break;
+ }
}
break;
decodeStatus = decodeStatus | LTM_BIT;
//skip LTM data
- for (Int_t i = 0; i < LTM_DATA_WORDS; i++, iWord++, rawData++){
+ for (Int_t i = 0; i < LTM_DATA_WORDS; i++, iWord++){
+ rawData++;
if (fVerbose)
AliInfo(Form(" %02x - 0x%08x \t LTM data",decodeStatus,*rawData));
}
hitData.SetTOT((float)lTDCPackedHit->GetTOTWidth() * TOT_BIN_WIDTH);
hitData.SetTOTBin(lTDCPackedHit->GetTOTWidth());
hitData.SetDeltaBunchID(currentBunchID - currentEventID1);
+ hitData.SetL0L1Latency(currentMiniEventID - currentL0BCID);
//orphane leading hit
if (hitData.GetPS()==LEADING_HIT_PS){
hitData.SetTime((float)lTDCUnpackedHit->GetHitTime() * TIME_BIN_WIDTH);
hitData.SetTOT(-1.);
hitData.SetTOTBin(-1);
hitData.SetDeltaBunchID(currentBunchID - currentEventID1);
+ hitData.SetL0L1Latency(currentMiniEventID - currentL0BCID);
//push hit data in data buffer
if (fDataBuffer != 0x0)
fDataBuffer->Add(hitData);
hitData.SetTOT(-1.);
hitData.SetTOTBin(-1);
hitData.SetDeltaBunchID(currentBunchID - currentEventID1);
+ hitData.SetL0L1Latency(currentMiniEventID - currentL0BCID);
//push hit data in data buffer
if (fDataBuffer != 0x0)
fDataBuffer->Add(hitData);
}
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;
+}