- // "read" and check the mini header
- fMiniHeader = (AliMiniHeader*) fPosition;
- fPosition += sizeof(AliMiniHeader);
- if (!CheckMiniHeader()) {
- Error("ReadHeader", "wrong magic word in mini header!");
- Warning("ReadHeader", "skipping %d bytes", fEnd - fPosition);
- fSubEvent->GetHeader()->Dump();
- fCount = 0;
- fPosition = fEnd;
- fErrorCode = kErrMiniMagic;
- continue;
+ // "read" the data header
+ fHeader = (AliRawDataHeader*) fPosition;
+ fPosition += sizeof(AliRawDataHeader);
+ if (fHeader->fSize != 0xFFFFFFFF) {
+ fCount = fHeader->fSize - sizeof(AliRawDataHeader);
+ } else {
+ fCount = fEnd - fPosition;