X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONRawStreamTrigger.cxx;h=171156e1e96ffe64d53baf6e72bf7c9707d0b22f;hb=6daac008f3b008af11c273f7cc660bec28fa1468;hp=a28f9705d7c4ac2885c25dd35dde87f4ba1e83a4;hpb=6817de1ca4131e89f394a8e90942d72476cf185d;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONRawStreamTrigger.cxx b/MUON/AliMUONRawStreamTrigger.cxx index a28f9705d7c..171156e1e96 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 @@ -51,9 +51,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), @@ -63,7 +84,8 @@ AliMUONRawStreamTrigger::AliMUONRawStreamTrigger() fCurrentLocalStruct(0x0), fCurrentLocalStructIndex(0), fLocalStructRead(kFALSE), - fDDL(0) + fDDL(0), + fNextDDL(kFALSE) { /// /// create an object to read MUON raw digits @@ -75,7 +97,7 @@ AliMUONRawStreamTrigger::AliMUONRawStreamTrigger() //_________________________________________________________________ AliMUONRawStreamTrigger::AliMUONRawStreamTrigger(AliRawReader* rawReader) - : AliMUONRawStream(rawReader), + : AliMUONVRawStreamTrigger(rawReader), fPayload(new AliMUONPayloadTrigger()), fCurrentDDL(0x0), fCurrentDDLIndex(fgkMaxDDL), @@ -85,7 +107,8 @@ AliMUONRawStreamTrigger::AliMUONRawStreamTrigger(AliRawReader* rawReader) fCurrentLocalStruct(0x0), fCurrentLocalStructIndex(0), fLocalStructRead(kFALSE), - fDDL(0) + fDDL(0), + fNextDDL(kFALSE) { /// /// ctor with AliRawReader as argument @@ -180,6 +203,7 @@ Bool_t AliMUONRawStreamTrigger::GetNextDDL() /// Returns the next DDL present assert( GetReader() != 0 ); + Bool_t kFound(kFALSE); @@ -208,11 +232,13 @@ Bool_t AliMUONRawStreamTrigger::GetNextDDL() Int_t totalDataWord = GetReader()->GetDataSize(); // in bytes + Bool_t scalerEvent = GetReader()->GetDataHeader()->GetL1TriggerMessage() & 0x1; + AliDebug(3, Form("DDL Number %d totalDataWord %d\n", fCurrentDDLIndex, totalDataWord)); UInt_t *buffer = new UInt_t[totalDataWord/4]; - + if ( !GetReader()->ReadNext((UChar_t*)buffer, totalDataWord) ) { // We have not actually been able to complete the loading of the new DDL so @@ -223,12 +249,14 @@ Bool_t AliMUONRawStreamTrigger::GetNextDDL() } #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 fPayload->ResetDDL(); - Bool_t ok = fPayload->Decode(buffer); + + + Bool_t ok = fPayload->Decode(buffer, scalerEvent); delete[] buffer; @@ -349,16 +377,19 @@ Bool_t AliMUONRawStreamTrigger::NextDDL() Int_t totalDataWord = GetReader()->GetDataSize(); // in bytes + Bool_t scalerEvent = GetReader()->GetDataHeader() && GetReader()->GetDataHeader()->GetL1TriggerMessage() & 0x1; + + UInt_t *buffer = new UInt_t[totalDataWord/4]; // check not necessary yet, but for future developments if (!GetReader()->ReadNext((UChar_t*)buffer, totalDataWord)) return kFALSE; -#ifndef R__BYTESWAP - swap(buffer, totalDataWord); // swap needed for mac power pc +#ifndef R__BYTESWAP + Swap(buffer, totalDataWord / sizeof(UInt_t)); // swap needed for mac power pc #endif - fPayload->Decode(buffer); + fPayload->Decode(buffer, scalerEvent); fDDL++; @@ -369,12 +400,12 @@ Bool_t AliMUONRawStreamTrigger::NextDDL() return kTRUE; } -//______________________________________________________ -void AliMUONRawStreamTrigger::SetMaxReg(Int_t reg) -{ - /// set regional card number - fPayload->SetMaxReg(reg); -} +// //______________________________________________________ +// void AliMUONRawStreamTrigger::SetMaxReg(Int_t reg) +// { +// /// set regional card number +// fPayload->SetMaxReg(reg); +// } //______________________________________________________ void AliMUONRawStreamTrigger::SetMaxLoc(Int_t loc) @@ -388,7 +419,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();