-Bool_t AliTRDrawStream::fgExtraSkip = kFALSE;
-Bool_t AliTRDrawStream::fgSkipCDH = kFALSE;
-Bool_t AliTRDrawStream::fgWarnError = kTRUE;
-Bool_t AliTRDrawStream::fgCleanDataOnly = kFALSE;
-Bool_t AliTRDrawStream::fgDebugFlag = kTRUE;
-Bool_t AliTRDrawStream::fgEnableMemoryReset = kTRUE;
-Bool_t AliTRDrawStream::fgStackNumberChecker = kTRUE;
-Bool_t AliTRDrawStream::fgStackLinkNumberChecker = kTRUE;
-Bool_t AliTRDrawStream::fgSkipData = kTRUE;
-Bool_t AliTRDrawStream::fgEnableDecodeConfigData = kFALSE;
-Int_t AliTRDrawStream::fgDumpHead = -1;
-Int_t AliTRDrawStream::fgCommonAdditive = 0;
-Int_t AliTRDrawStream::fgEmptySignals[] =
- {
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
- };
-Short_t AliTRDrawStream::fgMCMordering[] =
- {
- 12, 13, 14, 15, 8, 9, 10, 11, 4, 5, 6, 7, 0, 1, 2, 3
- };
-Short_t AliTRDrawStream::fgROBordering[] =
- {
- 0, 1, 2, 3
- };
-Int_t AliTRDrawStream::fgLastHC = -1;
-Int_t AliTRDrawStream::fgLastROB = -1;
-Int_t AliTRDrawStream::fgLastIndex = -1;
-Bool_t AliTRDrawStream::fDumpingEnable = kFALSE;
-Int_t AliTRDrawStream::fDumpingSM = -1;
-Int_t AliTRDrawStream::fDumpingStack = -1;
-Int_t AliTRDrawStream::fDumpingLayer = -1;
-Int_t AliTRDrawStream::fDumpingROB = -1;
-Int_t AliTRDrawStream::fDumpingMCM = -1;
-
-
-AliTRDrawStream::AliTRDrawStream()
- : AliTRDrawStreamBase()
- , fSM()
- , fStack(0)
- , fHC(0)
- , fMCM(0)
- , fADC(0)
- , fpPos(0)
- , fpBegin(0)
- , fpEnd(0)
- , fWordLength(0)
- , fStackNumber(-1)
- , fStackLinkNumber(-1)
- , fhcMCMcounter(0)
- , fmcmADCcounter(0)
- , fLinkTrackletCounter(-1)
- , fEndOfTrackletCount(-1)
- , fNWordsCounter(-1)
- , fMaskADCword(0)
- , fTbinADC(0)
- , fDecodedADCs(-1)
- , fEventCounter(0)
- , fLastEventCounter(0)
- , fSharedPadsOn(kFALSE)
- , fMaxADCgeom(0)
- , fBufferRead(0)
- , fGeometry(0)
- , fRawReader(0)
- , fTRDfeeParam(0)
+// some static information
+Int_t AliTRDrawStream::fgMcmOrder[] = {12, 13, 14, 15,
+ 8, 9, 10, 11,
+ 4, 5, 6, 7,
+ 0, 1, 2, 3};
+Int_t AliTRDrawStream::fgRobOrder [] = {0, 1, 2, 3};
+const Int_t AliTRDrawStream::fgkNlinks = 12;
+const Int_t AliTRDrawStream::fgkNstacks = 5;
+const Int_t AliTRDrawStream::fgkNsectors = 18;
+const Int_t AliTRDrawStream::fgkNtriggers = 12;
+const UInt_t AliTRDrawStream::fgkDataEndmarker = 0x00000000;
+const UInt_t AliTRDrawStream::fgkTrackletEndmarker = 0x10001000;
+const UInt_t AliTRDrawStream::fgkStackEndmarker[] = { 0xe0d01000, 0xe0d10000 };
+
+const char* AliTRDrawStream::fgkErrorMessages[] = {
+ "Unknown error",
+ "Link monitor active",
+ "Event counter mismatch",
+ "not a TRD equipment (1024-1041)",
+ "Invalid Stack header",
+ "Invalid detector number",
+ "No digits could be retrieved from the digitsmanager",
+ "HC header mismatch",
+ "HC check bits wrong",
+ "Unexpected position in readout stream",
+ "Invalid testpattern mode",
+ "Testpattern mismatch",
+ "Number of timebins changed",
+ "ADC mask inconsistent",
+ "ADC check bits invalid",
+ "Missing ADC data",
+ "Missing expected ADC channels",
+ "Missing MCM headers",
+ "Missing TP data",
+ "CRC mismatch"
+};
+
+Int_t AliTRDrawStream::fgErrorDebugLevel[] = {
+ 0,
+ 0,
+ 2,
+ 1,
+ 0,
+ 1,
+ 1,
+ 0,
+ 1,
+ 2,
+ 1,
+ 0,
+ 1,
+ 1,
+ 2,
+ 1,
+ 1,
+ 1,
+ 0,
+ 0
+};
+
+AliTRDrawStream::ErrorBehav_t AliTRDrawStream::fgErrorBehav[] = {
+ AliTRDrawStream::kTolerate,
+ AliTRDrawStream::kDiscardHC,
+ AliTRDrawStream::kTolerate,
+ AliTRDrawStream::kAbort,
+ AliTRDrawStream::kAbort,
+ AliTRDrawStream::kAbort,
+ AliTRDrawStream::kAbort,
+ AliTRDrawStream::kDiscardHC,
+ AliTRDrawStream::kDiscardHC,
+ AliTRDrawStream::kTolerate,
+ AliTRDrawStream::kTolerate,
+ AliTRDrawStream::kTolerate,
+ AliTRDrawStream::kTolerate,
+ AliTRDrawStream::kTolerate,
+ AliTRDrawStream::kTolerate,
+ AliTRDrawStream::kTolerate,
+ AliTRDrawStream::kTolerate,
+ AliTRDrawStream::kTolerate,
+ AliTRDrawStream::kTolerate,
+ AliTRDrawStream::kTolerate
+};
+
+AliTRDrawStream::AliTRDrawStream(AliRawReader *rawReader) :
+ fStoreError(&AliTRDrawStream::ForgetError),
+ fRawReader(rawReader),
+ fDigitsManager(0x0),
+ fDigitsParam(0x0),
+ fErrors(0x0),
+ fLastError(),
+ fErrorFlags(0),
+ fStats(),
+ fPayloadStart(0x0),
+ fPayloadCurr(0x0),
+ fPayloadSize(0),
+ fNtimebins(-1),
+ fLastEvId(-1),
+ fCurrSlot(-1),
+ fCurrLink(-1),
+ fCurrRobPos(-1),
+ fCurrMcmPos(-1),
+ fCurrEquipmentId(0),
+ fCurrSmHeaderSize(0),
+ fCurrSmHeaderVersion(0),
+ fCurrTrailerReadout(0),
+ fCurrTrgHeaderAvail(0),
+ fCurrTrgHeaderReadout(0),
+ fCurrTrkHeaderAvail(0),
+ fCurrStackEndmarkerAvail(0),
+ fCurrEvType(0),
+ fCurrTriggerEnable(0),
+ fCurrTriggerFired(0),
+ fCurrTrackEnable(0),
+ fCurrTrackletEnable(0),
+ fCurrStackMask(0),
+ fCurrTrkHeaderIndexWord(0x0),
+ fCurrTrkHeaderSize(0x0),
+ fCurrTrkFlags(0x0),
+ fCurrTrgHeaderIndexWord(0x0),
+ fCurrTrgHeaderSize(0x0),
+ fCurrTrgFlags(0x0),
+ fCurrStackIndexWord(0x0),
+ fCurrStackHeaderSize(0x0),
+ fCurrStackHeaderVersion(0x0),
+ fCurrLinkMask(0x0),
+ fCurrCleanCheckout(0x0),
+ fCurrBoardId(0x0),
+ fCurrHwRev(-1),
+ fCurrHwRevTMU(0x0),
+ fCurrLinkMonitorFlags(0x0),
+ fCurrLinkDataTypeFlags(0x0),
+ fCurrLinkDebugFlags(0x0),
+ fCurrMatchFlagsSRAM(0),
+ fCurrMatchFlagsPostBP(0),
+ fCurrChecksumStack(),
+ fCurrChecksumSIU(0),
+ fCurrSpecial(-1),
+ fCurrMajor(-1),
+ fCurrMinor(-1),
+ fCurrAddHcWords(-1),
+ fCurrSm(-1),
+ fCurrStack(-1),
+ fCurrLayer(-1),
+ fCurrSide(-1),
+ fCurrHC(-1),
+ fCurrCheck(-1),
+ fCurrNtimebins(-1),
+ fCurrBC(-1),
+ fCurrPtrgCnt(-1),
+ fCurrPtrgPhase(-1),
+ fNDumpMCMs(0),
+ fTrackletArray(0x0),
+ fAdcArray(0x0),
+ fSignalIndex(0x0),
+ fTrackletTree(0x0),
+ fTracklets(0x0),
+ fTracks(0x0),
+ fMarkers(0x0)