X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONDigitMaker.cxx;h=3463933c7784c5c92cefefc97d0de6947f16554b;hb=540787c48b8a4ff4297cce6635381d07987ca0f5;hp=505da3031706a7d57cd30e0f611a444fa1ec1f0c;hpb=99c136e1c3e77da0cd9cfccb149742d67c36aaa2;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONDigitMaker.cxx b/MUON/AliMUONDigitMaker.cxx index 505da303170..3463933c778 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" @@ -71,6 +71,8 @@ #include "AliRawReader.h" #include +using std::endl; +using std::cout; /// \cond CLASSIMP ClassImp(AliMUONDigitMaker) // Class implementation in ROOT context /// \endcond @@ -84,8 +86,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 +106,10 @@ fLogger(new AliMUONLogger(10000)) SetMakeTriggerDigits(); + // Load mapping + if ( ! AliMpCDB::LoadDDLStore() ) { + AliFatal("Could not access mapping from OCDB !"); + } } //__________________________________________________________________________ @@ -135,6 +140,10 @@ TObject(), SetMakeTriggerDigits(); + // Load mapping + if ( ! AliMpCDB::LoadDDLStore() ) { + AliFatal("Could not access mapping from OCDB !"); + } } //__________________________________________________________________________ @@ -239,7 +248,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 +344,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 +374,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,8 +398,8 @@ AliMUONDigitMaker::ReadTriggerDDL(AliRawReader* rawReader) //____________________________________________________________________ Int_t AliMUONDigitMaker::TriggerDigits(Int_t nBoard, - TArrayS* xyPattern, - AliMUONVDigitStore& digitStore) const + const TArrayS* xyPattern, + AliMUONVDigitStore& digitStore, Bool_t warn) const { /// make digits for trigger from pattern, and add them to digitStore @@ -438,9 +433,9 @@ 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); + AliMpPad pad = seg->PadByLocation(nBoard,ibitxy+offset,warn); if (!pad.IsValid()) { @@ -505,3 +500,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); +}