X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONDigitMaker.cxx;h=159b99bfd7daa420f43d0f0d1a49c96c7e042402;hb=dbd649c1a6f13040f2c3b188253d218b3926e9e5;hp=b97c1240f0239a9b7c4a80cee6a17e368318dd7d;hpb=70d92702ce82b1d6e1e9b62ec50a0a811852bb7f;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONDigitMaker.cxx b/MUON/AliMUONDigitMaker.cxx index b97c1240f02..159b99bfd7d 100644 --- a/MUON/AliMUONDigitMaker.cxx +++ b/MUON/AliMUONDigitMaker.cxx @@ -55,8 +55,8 @@ #include "AliMUONRawStreamTrackerHP.h" #include "AliMUONRawStreamTriggerHP.h" #include "AliMUONRegHeader.h" -#include "AliMUONTriggerCircuit.h" #include "AliMUONVTriggerStore.h" +#include "AliMpCDB.h" #include "AliMpDetElement.h" #include "AliMpTriggerCrate.h" #include "AliMpLocalBoard.h" @@ -84,8 +84,7 @@ fRawStreamTracker(new AliMUONRawStreamTrackerHP), fRawStreamTrigger(new AliMUONRawStreamTriggerHP), fDigitStore(0x0), fTriggerStore(0x0), -fLogger(new AliMUONLogger(10000)) -{ +fLogger(new AliMUONLogger(10000)){ /// ctor if ( !a || !b ) AliFatal("no longer supported"); @@ -105,6 +104,10 @@ fLogger(new AliMUONLogger(10000)) SetMakeTriggerDigits(); + // Load mapping + if ( ! AliMpCDB::LoadDDLStore() ) { + AliFatal("Could not access mapping from OCDB !"); + } } //__________________________________________________________________________ @@ -135,6 +138,10 @@ TObject(), SetMakeTriggerDigits(); + // Load mapping + if ( ! AliMpCDB::LoadDDLStore() ) { + AliFatal("Could not access mapping from OCDB !"); + } } //__________________________________________________________________________ @@ -219,7 +226,7 @@ AliMUONDigitMaker::ReadTrackerDDL(AliRawReader* rawReader) AliDebug(1,""); - AliCodeTimerAuto("",); + AliCodeTimerAuto("",0); // elex info Int_t buspatchId; @@ -239,7 +246,7 @@ AliMUONDigitMaker::ReadTrackerDDL(AliRawReader* rawReader) if (!de) { - fLogger->Log(Form("DE %04d does not exist !")); + fLogger->Log(Form("DE %04d does not exist !", detElemId)); continue; } @@ -335,9 +342,10 @@ AliMUONDigitMaker::ReadTriggerDDL(AliRawReader* rawReader) AliMpTriggerCrate* crate = AliMpDDLStore::Instance()-> GetTriggerCrate(fRawStreamTrigger->GetDDL(), iReg); - if (!crate) + if (!crate) { fLogger->Log(Form("Missing crate number %d in DDL %d\n", iReg, fRawStreamTrigger->GetDDL())); - + continue; + } regHeader = fRawStreamTrigger->GetRegionalHeader(iReg); @@ -364,22 +372,7 @@ AliMUONDigitMaker::ReadTriggerDDL(AliRawReader* rawReader) { // fill local trigger AliMUONLocalTrigger localTrigger; - localTrigger.SetLoCircuit(loCircuit); - localTrigger.SetLoStripX((Int_t)localStruct->GetXPos()); - localTrigger.SetLoStripY((Int_t)localStruct->GetYPos()); - localTrigger.SetLoDev((Int_t)localStruct->GetXDev()); - localTrigger.SetLoSdev((Int_t)localStruct->GetSXDev()); - localTrigger.SetLoTrigY((Int_t)localStruct->GetTrigY()); - localTrigger.SetLoLpt(localStruct->GetLpt()); - localTrigger.SetLoHpt(localStruct->GetHpt()); - localTrigger.SetX1Pattern(localStruct->GetX1()); - localTrigger.SetX2Pattern(localStruct->GetX2()); - localTrigger.SetX3Pattern(localStruct->GetX3()); - localTrigger.SetX4Pattern(localStruct->GetX4()); - localTrigger.SetY1Pattern(localStruct->GetY1()); - localTrigger.SetY2Pattern(localStruct->GetY2()); - localTrigger.SetY3Pattern(localStruct->GetY3()); - localTrigger.SetY4Pattern(localStruct->GetY4()); + localTrigger.SetLocalStruct(loCircuit, *localStruct); fTriggerStore->Add(localTrigger); } @@ -403,12 +396,12 @@ AliMUONDigitMaker::ReadTriggerDDL(AliRawReader* rawReader) //____________________________________________________________________ Int_t AliMUONDigitMaker::TriggerDigits(Int_t nBoard, - TArrayS* xyPattern, + const TArrayS* xyPattern, AliMUONVDigitStore& digitStore) const { /// make digits for trigger from pattern, and add them to digitStore - AliCodeTimerAuto("",); + AliCodeTimerAuto("",0); Int_t detElemId; @@ -438,7 +431,7 @@ Int_t AliMUONDigitMaker::TriggerDigits(Int_t nBoard, { // not quite sure about this Int_t offset = 0; - if (iCath && localBoard->GetSwitch(6)) offset = -8; + if (iCath && localBoard->GetSwitch(AliMpLocalBoard::kZeroAllYLSB)) offset = -8; AliMpPad pad = seg->PadByLocation(nBoard,ibitxy+offset,kTRUE); @@ -505,3 +498,12 @@ AliMUONDigitMaker::TriggerToDigitsStore(const AliMUONVTriggerStore& triggerStore } return kTRUE; } + +//______________________________________________________________________________ +void +AliMUONDigitMaker::SetTryRecover(Bool_t flag) +{ + /// Instruct the decoder to try to recover corrupted raw data. + /// Only use for specific cases for which you know it will work... + fRawStreamTracker->TryRecover(flag); +}