X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONRawWriter.cxx;h=ba24638909ffa071e351789d98966b5d7eef621c;hb=73cfbcd5e63f1980fe1edd720deb9a3f68a878a1;hp=12cbfa46e180ff26887647de178663cbe1e9c0bd;hpb=41a38dece075a4b24b48533b66094fb4474f4a46;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONRawWriter.cxx b/MUON/AliMUONRawWriter.cxx index 12cbfa46e18..ba24638909f 100644 --- a/MUON/AliMUONRawWriter.cxx +++ b/MUON/AliMUONRawWriter.cxx @@ -63,6 +63,7 @@ #include "AliMUONVTriggerStore.h" #include "AliCodeTimer.h" +#include "AliMpCDB.h" #include "AliMpDDLStore.h" #include "AliMpDDL.h" #include "AliMpRegionalTrigger.h" @@ -113,6 +114,13 @@ AliMUONRawWriter::AliMUONRawWriter() fBlockHeader->SetDataKey(fBlockHeader->GetDefaultDataKey()); fDspHeader->SetDataKey(fDspHeader->GetDefaultDataKey()); + // Load mapping + if ( ! fDDLStore ) { + if ( ! AliMpCDB::LoadDDLStore() ) { + AliFatal("Could not access mapping from OCDB !"); + } + fDDLStore = AliMpDDLStore::Instance(); + } } //__________________________________________________________________________ @@ -148,21 +156,20 @@ void AliMUONRawWriter::LocalWordPacking(UInt_t& word, UInt_t locId, UInt_t locD } //____________________________________________________________________ -Int_t AliMUONRawWriter::Digits2Raw(AliMUONVDigitStore* digitStore, - AliMUONVTriggerStore* triggerStore) +Int_t AliMUONRawWriter::Digits2Raw(const AliMUONVDigitStore* digitStore, + const AliMUONVTriggerStore* triggerStore) { /// convert digits of the current event to raw data - AliCodeTimerAuto("") + AliCodeTimerAuto("",0) Int_t idDDL; - Char_t name[255]; // tracking chambers if ( digitStore ) { - AliCodeTimerAuto("for Tracker") + AliCodeTimerAuto("for Tracker",1) AliMpExMap busPatchMap; @@ -189,7 +196,7 @@ Int_t AliMUONRawWriter::Digits2Raw(AliMUONVDigitStore* digitStore, if ( triggerStore ) { - AliCodeTimerAuto("for Trigger") + AliCodeTimerAuto("for Trigger",1) // trigger chambers @@ -197,12 +204,10 @@ Int_t AliMUONRawWriter::Digits2Raw(AliMUONVDigitStore* digitStore, // open files idDDL = 0;// MUTR - strcpy(name,AliDAQ::DdlFileName("MUONTRG",idDDL)); - file[0] = new AliFstream(name); + file[0] = new AliFstream(AliDAQ::DdlFileName("MUONTRG",idDDL)); idDDL = 1;// MUTR - strcpy(name,AliDAQ::DdlFileName("MUONTRG",idDDL)); - file[1] = new AliFstream(name); + file[1] = new AliFstream(AliDAQ::DdlFileName("MUONTRG",idDDL)); WriteTriggerDDL(*triggerStore,file); @@ -223,7 +228,7 @@ AliMUONRawWriter::Digits2BusPatchMap(const AliMUONVDigitStore& digitStore, { /// Create bus patch structures corresponding to digits in the store - AliCodeTimerAuto("") + AliCodeTimerAuto("",0) static const Int_t kMAXADC = (1<<12)-1; // We code the charge on a 12 bits ADC. @@ -316,7 +321,7 @@ AliMUONRawWriter::WriteTrackerDDL(AliMpExMap& busPatchMap, Int_t iDDL) // (((43 manus max per bus patch *64 channels + 4 bus patch words) * 5 bus patch // + 10 dsp words)*5 dsps + 8 block words)*2 blocks - AliCodeTimerAuto("") + AliCodeTimerAuto("",0) if (fHeader == 0x0) { AliError("Raw data header must be set"); @@ -450,7 +455,7 @@ Int_t AliMUONRawWriter::WriteTriggerDDL(const AliMUONVTriggerStore& triggerStore { /// Write trigger DDL - AliCodeTimerAuto("") + AliCodeTimerAuto("",0) if (fHeader == 0x0) { AliError("Raw data header must be set"); @@ -563,7 +568,7 @@ Int_t AliMUONRawWriter::WriteTriggerDDL(const AliMUONVTriggerStore& triggerStore if (fScalerEvent) { // 10 Global scaler words - memcpy(fDarcHeader->GetGlobalScalers(), &buffer[index], kGlobalScalerLength*4); + memcpy(&buffer[index], fDarcHeader->GetGlobalScalers(), kGlobalScalerLength*4); index += kGlobalScalerLength; } @@ -578,13 +583,17 @@ Int_t AliMUONRawWriter::WriteTriggerDDL(const AliMUONVTriggerStore& triggerStore // crate info AliMpTriggerCrate* crate = AliMpDDLStore::Instance()->GetTriggerCrate(iDDL, iReg); - if (!crate) - AliWarning(Form("Missing crate number %d in DDL %d\n", iReg, iDDL)); + if (!crate) { + AliError(Form("Missing crate number %d in DDL %d\n", iReg, iDDL)); + continue; + } // regional info tree, make sure that no reg card missing AliMUONRegionalTrigger* regTrg = triggerStore.FindRegional(crate->GetId()); - if (!regTrg) + if (!regTrg) { AliError(Form("Missing regional board %d in trigger Store\n", crate->GetId())); + continue; + } // Regional card header word = 0; @@ -593,8 +602,8 @@ Int_t AliMUONRawWriter::WriteTriggerDDL(const AliMUONVTriggerStore& triggerStore fRegHeader->SetDarcWord(word); regOut = regTrg->GetOutput(); - regInpHpt = regTrg->GetLocalOutput(0); - regInpLpt = regTrg->GetLocalOutput(1); + regInpLpt = regTrg->GetLocalOutput(0); + regInpHpt = regTrg->GetLocalOutput(1); // fill darc word, not darc status for the moment (empty) //see AliMUONRegHeader.h for details @@ -694,7 +703,7 @@ Int_t AliMUONRawWriter::WriteTriggerDDL(const AliMUONVTriggerStore& triggerStore } // local card // fill regional header with local output - fRegHeader->SetInput(regInpHpt, 0); + fRegHeader->SetInput(regInpLpt, 0); fRegHeader->SetInput(regInpHpt, 1); memcpy(&buffer[indexReg],fRegHeader->GetHeader(),kRegHeaderLength*4);