]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONRawWriter.cxx
cut analysis for PbPb
[u/mrichter/AliRoot.git] / MUON / AliMUONRawWriter.cxx
index bd06a746a189da86e8054e1622e432cc9214d5f1..ba24638909ffa071e351789d98966b5d7eef621c 100644 (file)
@@ -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,15 +156,14 @@ 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("",0)
   
   Int_t idDDL;
-  Char_t name[255];
 
   // tracking 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);
       
@@ -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;