+//______________________________________________________
+Bool_t
+AliMUONRawStreamTracker::GetNextBusStruct()
+{
+ /// Find the next non-empty busPatch structure
+
+ assert( fCurrentDspHeader != 0 );
+
+ fCurrentBusStruct = 0;
+
+ Int_t i(fCurrentBusStructIndex);
+
+ while ( fCurrentBusStruct == 0 && i < fCurrentDspHeader->GetBusPatchEntries()-1 )
+ {
+ ++i;
+ fCurrentBusStruct = fCurrentDspHeader->GetBusPatchEntry(i);
+ }
+
+ if ( !fCurrentBusStruct )
+ {
+ Bool_t ok = GetNextDspHeader();
+ if (!ok)
+ {
+ return kFALSE;
+ }
+ else
+ {
+ return GetNextBusStruct();
+ }
+ }
+
+ fCurrentBusStructIndex = i;
+
+ fCurrentDataIndex = -1;
+
+ return kTRUE;
+}
+
+//______________________________________________________
+Bool_t AliMUONRawStreamTracker::NextDDL()
+{
+ /// reading tracker DDL
+
+ assert( GetReader() != 0 );
+
+ fPayload->ResetDDL();
+
+ while ( fDDL < fgkMaxDDL )
+ {
+ GetReader()->Reset();
+ GetReader()->Select("MUONTRK", fDDL, fDDL); //Select the DDL file to be read
+ if (GetReader()->ReadHeader()) break;
+ AliDebug(3,Form("Skipping DDL %d which does not seem to be there",fDDL));
+ ++fDDL;
+ }
+
+ if ( fDDL == fgkMaxDDL )
+ {
+ fDDL = 0;
+ if ( IsErrorLogger()) AddErrorMessage();
+ return kFALSE;
+ }
+
+ AliDebug(3, Form("DDL Number %d\n", fDDL ));
+
+ Int_t totalDataWord = GetReader()->GetDataSize(); // in bytes
+