X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONRawStreamTrigger.cxx;h=06d53278bdab3779031d183c5667292af322f9c5;hb=96d66c1d91164cb4069d6d496d67cc1c2ac92ba0;hp=dc7e89075d2faad8eaae6b422314538b2af8b10c;hpb=f4ee80d22355a8987ed45d564ec8cccc375de0a3;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONRawStreamTrigger.cxx b/MUON/AliMUONRawStreamTrigger.cxx index dc7e89075d2..06d53278bda 100644 --- a/MUON/AliMUONRawStreamTrigger.cxx +++ b/MUON/AliMUONRawStreamTrigger.cxx @@ -13,7 +13,7 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ -/* $Id $ */ +/* $Id$ */ //----------------------------------------------------------------------------- /// \class AliMUONRawStreamTrigger @@ -40,6 +40,7 @@ #include "AliRawReader.h" #include "AliRawDataHeader.h" +#include "AliRawDataHeaderV3.h" #include "AliDAQ.h" #include "AliLog.h" @@ -51,9 +52,30 @@ ClassImp(AliMUONRawStreamTrigger) const Int_t AliMUONRawStreamTrigger::fgkMaxDDL = 2; +//___________________________________________ +AliMUONRawStreamTrigger::AliMUONRawStreamTrigger(TRootIOCtor* /*dummy*/) +: AliMUONVRawStreamTrigger(), +fPayload(0x0), +fCurrentDDL(0x0), +fCurrentDDLIndex(fgkMaxDDL), +fCurrentDarcHeader(0x0), +fCurrentRegHeader(0x0), +fCurrentRegHeaderIndex(0), +fCurrentLocalStruct(0x0), +fCurrentLocalStructIndex(0), +fLocalStructRead(kFALSE), +fDDL(0), +fNextDDL(kFALSE) +{ + /// + /// create an object to read MUON raw digits + /// Default ctor with no mem allocation for I/O + /// +} + //___________________________________________ AliMUONRawStreamTrigger::AliMUONRawStreamTrigger() -: AliMUONRawStream(), +: AliMUONVRawStreamTrigger(), fPayload(new AliMUONPayloadTrigger()), fCurrentDDL(0x0), fCurrentDDLIndex(fgkMaxDDL), @@ -64,8 +86,7 @@ AliMUONRawStreamTrigger::AliMUONRawStreamTrigger() fCurrentLocalStructIndex(0), fLocalStructRead(kFALSE), fDDL(0), - fNextDDL(kFALSE), - fEnableErrorLogger(kFALSE) + fNextDDL(kFALSE) { /// /// create an object to read MUON raw digits @@ -77,7 +98,7 @@ AliMUONRawStreamTrigger::AliMUONRawStreamTrigger() //_________________________________________________________________ AliMUONRawStreamTrigger::AliMUONRawStreamTrigger(AliRawReader* rawReader) - : AliMUONRawStream(rawReader), + : AliMUONVRawStreamTrigger(rawReader), fPayload(new AliMUONPayloadTrigger()), fCurrentDDL(0x0), fCurrentDDLIndex(fgkMaxDDL), @@ -88,8 +109,7 @@ AliMUONRawStreamTrigger::AliMUONRawStreamTrigger(AliRawReader* rawReader) fCurrentLocalStructIndex(0), fLocalStructRead(kFALSE), fDDL(0), - fNextDDL(kFALSE), - fEnableErrorLogger(kFALSE) + fNextDDL(kFALSE) { /// /// ctor with AliRawReader as argument @@ -213,7 +233,15 @@ Bool_t AliMUONRawStreamTrigger::GetNextDDL() Int_t totalDataWord = GetReader()->GetDataSize(); // in bytes - Bool_t scalerEvent = GetReader()->GetDataHeader()->GetL1TriggerMessage() & 0x1; + AliRawReader * reader = GetReader(); + if (!reader) return kFALSE; + + const AliRawDataHeader * cdh = reader->GetDataHeader(); + const AliRawDataHeaderV3 * cdh3 = reader->GetDataHeaderV3(); + + if (!cdh && !cdh3) return kFALSE; + + Bool_t scalerEvent = ((cdh ? cdh->GetL1TriggerMessage() : cdh3->GetL1TriggerMessage()) & 0x1) == 0x1; AliDebug(3, Form("DDL Number %d totalDataWord %d\n", fCurrentDDLIndex, totalDataWord)); @@ -358,7 +386,15 @@ Bool_t AliMUONRawStreamTrigger::NextDDL() Int_t totalDataWord = GetReader()->GetDataSize(); // in bytes - Bool_t scalerEvent = GetReader()->GetDataHeader()->GetL1TriggerMessage() & 0x1; + AliRawReader * reader = GetReader(); + if (!reader) return kFALSE; + + const AliRawDataHeader * cdh = reader->GetDataHeader(); + const AliRawDataHeaderV3 * cdh3 = reader->GetDataHeaderV3(); + + if (!cdh && !cdh3) return kFALSE; + + Bool_t scalerEvent = ((cdh ? cdh->GetL1TriggerMessage() : cdh3->GetL1TriggerMessage()) & 0x1) == 0x1; UInt_t *buffer = new UInt_t[totalDataWord/4]; @@ -400,7 +436,7 @@ void AliMUONRawStreamTrigger::AddErrorMessage() { /// add message into logger of AliRawReader per event - TString msg = 0; + TString msg; Int_t occurance = 0; AliMUONLogger* log = fPayload->GetErrorLogger();