#include "AliTOFHitDataBuffer.h"
#include "AliTOFDecoder.h"
#include "AliTOFGeometry.h"
+#include "AliRawDataHeader.h"
ClassImp(AliTOFDecoder)
//_________________________________________________________________
Bool_t
-AliTOFDecoder::Decode(UInt_t *rawData, Int_t nWords)
+AliTOFDecoder::Decode(UInt_t *rawData, Int_t nWords, const AliRawDataHeader *cdh)
{
/* main decoding routine.
* it loops over nWords 32-bit words
Short_t currentACQ = -1;
Short_t currentChain = -1;
Short_t currentBunchID = -1;
+ Short_t currentMiniEventID = cdh ? cdh->GetMiniEventID() : (Short_t)-1;
+ if (!cdh)
+ AliWarning("CDH not valid: deltaBunchID not reliable ");
/*** V2718 patch ***/
if (fV2718Patch){
hitData.SetTimeBin(fTDCPackedHit->GetHitTime());
hitData.SetTOT((float)fTDCPackedHit->GetTOTWidth() * TOT_BIN_WIDTH);
hitData.SetTOTBin(fTDCPackedHit->GetTOTWidth());
+ hitData.SetDeltaBunchID(currentBunchID - currentMiniEventID);
//orphane leading hit
if (hitData.GetPS()==LEADING_HIT_PS){
hitData.SetTime((float)fTDCUnpackedHit->GetHitTime() * TIME_BIN_WIDTH);
hitData.SetTimeBin(fTDCUnpackedHit->GetHitTime());
hitData.SetTOT(-1.);
hitData.SetTOTBin(-1);
+ hitData.SetDeltaBunchID(currentBunchID - currentMiniEventID);
//push hit data in data buffer
if (fDataBuffer != 0x0)
fDataBuffer->Add(hitData);
hitData.SetTimeBin(fTDCUnpackedHit->GetHitTime());
hitData.SetTOT(-1.);
hitData.SetTOTBin(-1);
+ hitData.SetDeltaBunchID(currentBunchID - currentMiniEventID);
//push hit data in data buffer
if (fDataBuffer != 0x0)
fDataBuffer->Add(hitData);
//_________________________________________________________________
Bool_t
-AliTOFDecoder::Spider(AliTOFHitData hitData){
+AliTOFDecoder::Spider(AliTOFHitData &hitData){
/* main SPIDER routine.
it receives, reads, stores and packs
class AliTOFHitData;
class AliTOFHitDataBuffer;
+class AliRawDataHeader;
class AliTOFDecoder : public TObject
{
AliTOFDecoder &operator = (const AliTOFDecoder &source); //operator =
~AliTOFDecoder(); //distructor
- Bool_t Decode(UInt_t *rawData, Int_t nWords); //main decode function
+ Bool_t Decode(UInt_t *rawData, Int_t nWords, const AliRawDataHeader *cdh); //main decode function
void SetVerbose(Int_t Verbose = 1) {fVerbose = Verbose;}; //set verbose level
void SetV2718Patch(Bool_t V2718Patch = kTRUE) {fV2718Patch = V2718Patch;}; //set V2718 patch (no DRM)
void SetDataBuffer(AliTOFHitDataBuffer *DB) {fDataBuffer = DB;}; //set up data buffer
*/
Bool_t InitializeSpider(); //initialize SPIDER routine
Bool_t ResetSpider(); //reset SPIDER routine
- Bool_t Spider(AliTOFHitData hitData); //main SPIDER routine
+ Bool_t Spider(AliTOFHitData &hitData); //main SPIDER routine
Int_t fVerbose; //verbose flag
Bool_t fV2718Patch; //V2718 patch flag