//define DRM/LTM fixed number of words
#define DRM_DATA_WORDS 5
-#define LTM_DATA_WORDS 33
+#define LTM_DATA_WORDS 48
//define masks
#define WORD_TYPE_MASK 0xf0000000
#include "TObject.h"
#include "AliTOFRawDataFormat.h"
-//#include "AliTOFHitData.h"
+#include "AliTOFHitData.h"
//#include "AliTOFHitDataBuffer.h"
//#include "AliTOFGeometry.h"
-class AliTOFHitData;
class AliTOFHitDataBuffer;
-class AliRawDataHeader;
+struct AliRawDataHeader;
+struct AliRawDataHeaderV3;
class AliTOFDecoder : public TObject
{
AliTOFDecoder &operator = (const AliTOFDecoder &source); //operator =
~AliTOFDecoder(); //distructor
- Bool_t Decode(UInt_t *rawData, Int_t nWords, const AliRawDataHeader *cdh); //main decode function
+ Bool_t Decode(const UInt_t *rawData, Int_t nWords, const AliRawDataHeader *cdh, const AliRawDataHeaderV3 *cdhV3=0); //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
void SetPackedDataBuffer(AliTOFHitDataBuffer *PDB) {fPackedDataBuffer = PDB;}; //set up packed data buffer
void GetArrayDDL(Int_t* array, Int_t iDDL); // method to return array of TOFchannels corresponding to a given DDL id
+ void PrintStack(const UInt_t *rawData, Int_t nWords, const AliRawDataHeader *cdh, const AliRawDataHeaderV3 *cdhV3=0);
enum {
kMinPlate0=0,kMaxPlate0=2,
AliTOFHitDataBuffer *fPackedDataBuffer; //packed data buffe pointer
//decoding objects
- AliTOFTRMGlobalHeader *fTRMGlobalHeader; //TRM global header
- AliTOFTRMGlobalTrailer *fTRMGlobalTrailer; //TRM global trailer
- AliTOFTRMChainHeader *fTRMChainHeader; //TRM chain header
- AliTOFTRMChainTrailer *fTRMChainTrailer; //TRM chain trailer
- AliTOFTDCPackedHit *fTDCPackedHit; //TDC packed hit
- AliTOFTDCUnpackedHit *fTDCUnpackedHit; //TDC unpacked hit
- AliTOFTRMTDCError *fTRMTDCError; //TRM TDC error
- AliTOFTRMDiagnosticErrorWord1 *fTRMDiagnosticErrorWord1; //TRM diagnostic error word 1
- AliTOFTRMDiagnosticErrorWord2 *fTRMDiagnosticErrorWord2; //TRM diagnostica error word 2
+ //AliTOFTRMGlobalHeader *fTRMGlobalHeader; //TRM global header
+ //AliTOFTRMGlobalTrailer *fTRMGlobalTrailer; //TRM global trailer
+ //AliTOFTRMChainHeader *fTRMChainHeader; //TRM chain header
+ //AliTOFTRMChainTrailer *fTRMChainTrailer; //TRM chain trailer
+ //AliTOFTDCPackedHit *fTDCPackedHit; //TDC packed hit
+ //AliTOFTDCUnpackedHit *fTDCUnpackedHit; //TDC unpacked hit
+ //AliTOFTRMTDCError *fTRMTDCError; //TRM TDC error
+ //AliTOFTRMDiagnosticErrorWord1 *fTRMDiagnosticErrorWord1; //TRM diagnostic error word 1
+ //AliTOFTRMDiagnosticErrorWord2 *fTRMDiagnosticErrorWord2; //TRM diagnostica error word 2
//SPIDER variables
Int_t fSpiderCurrentSlotID; //SPIDER current slot ID
Int_t fSpiderCurrentChain; //SPIDER current chain
Int_t fSpiderCurrentTDC; //SPIDER current TDC
- Bool_t fSpiderLeadingFlag[N_CHANNEL]; //SPIDER channel leading flag
- AliTOFHitData fSpiderLeadingHit[N_CHANNEL]; //SPIDER channel leading hit
+ Bool_t fSpiderLeadingFlag[8]; //SPIDER channel leading flag
+ AliTOFHitData fSpiderLeadingHit[8]; //SPIDER channel leading hit
ClassDef(AliTOFDecoder, 2)
};