* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id $ */
+/* $Id$ */
//-----------------------------------------------------------------------------
ClassImp(AliMUONRawStreamTracker)
/// \endcond
-const Int_t AliMUONRawStreamTracker::fgkMaxDDL = 20;
+//___________________________________________
+AliMUONRawStreamTracker::AliMUONRawStreamTracker(TRootIOCtor* /*dummy*/)
+: AliMUONVRawStreamTracker(),
+fPayload(0x0),
+fCurrentDDL(0),
+fCurrentDDLIndex(fgkMaxDDL),
+fCurrentBlockHeader(0),
+fCurrentBlockHeaderIndex(0),
+fCurrentDspHeader(0),
+fCurrentDspHeaderIndex(0),
+fCurrentBusStruct(0),
+fCurrentBusStructIndex(0),
+fCurrentDataIndex(0),
+fDDL(0)
+{
+ ///
+ /// create an object to read MUON raw digits
+ /// Default ctor with no memory allocation for I/O
+ ///
+}
//___________________________________________
AliMUONRawStreamTracker::AliMUONRawStreamTracker()
- : AliMUONRawStream(),
+ : AliMUONVRawStreamTracker(),
fPayload(new AliMUONPayloadTracker()),
fCurrentDDL(0),
fCurrentDDLIndex(fgkMaxDDL),
//_________________________________________________________________
AliMUONRawStreamTracker::AliMUONRawStreamTracker(AliRawReader* rawReader)
-: AliMUONRawStream(rawReader),
+: AliMUONVRawStreamTracker(rawReader),
fPayload(new AliMUONPayloadTracker()),
fCurrentDDL(0),
fCurrentDDLIndex(fgkMaxDDL),
// We have not actually been able to complete the loading of the new DDL so
// we are still on the old one. In this case we do not need to reset fCurrentDDL.
//fCurrentDDL = 0;
+ if (IsErrorLogger()) AddErrorMessage();
return kFALSE;
}
fPayload->ResetDDL();
#ifndef R__BYTESWAP
- swap(buffer, totalDataWord); // swap needed for mac power pc
+ Swap(buffer, totalDataWord / sizeof(UInt_t)); // swap needed for mac power pc
#endif
Bool_t ok = fPayload->Decode(buffer, totalDataWord/4);
- if (IsErrorLogger()) AddErrorMessage();
-
delete[] buffer;
fCurrentDDL = fPayload->GetDDLTracker();
if ( fDDL == fgkMaxDDL )
{
fDDL = 0;
+ if ( IsErrorLogger()) AddErrorMessage();
return kFALSE;
}
}
#ifndef R__BYTESWAP
- swap(buffer, totalDataWord); // swap needed for mac power pc
+ Swap(buffer, totalDataWord / sizeof(UInt_t)); // swap needed for mac power pc
#endif
Bool_t ok = fPayload->Decode(buffer, totalDataWord/4);
- if ( IsErrorLogger()) AddErrorMessage();
-
delete[] buffer;
fDDL++;
/// add message into logger of AliRawReader per event
assert( GetReader() != 0 );
- TString msg = 0;
+ TString msg;
Int_t occurance = 0;
AliMUONLogger* log = fPayload->GetErrorLogger();
if (msg.Contains("Padding"))
GetReader()->AddMinorErrorLog(kPaddingWordErr, msg.Data());
}
+
+ log->Clear(); // clear logger after each event
}
//______________________________________________________