]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONDigitMaker.cxx
Fixes for #86059: Install data when ALICE_ROOT does not point to source (Christian)
[u/mrichter/AliRoot.git] / MUON / AliMUONDigitMaker.cxx
index b97c1240f0239a9b7c4a80cee6a17e368318dd7d..159b99bfd7daa420f43d0f0d1a49c96c7e042402 100644 (file)
@@ -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);
+}