]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONCDB.cxx
Temporary mod for CMake
[u/mrichter/AliRoot.git] / MUON / AliMUONCDB.cxx
index d14074f32eaaeaf18cfa81273ca151f5c13d8cbe..7ccf9f7ffb6a7a55085a7d5324b6c873464c8f2e 100644 (file)
 #include "AliMUONCalibParamNF.h"
 #include "AliMUONCalibParamNI.h"
 #include "AliMUONConstants.h"
+#include "AliMUONTrackerIO.h"
 #include "AliMUONTriggerEfficiencyCells.h"
 #include "AliMUONTriggerLut.h"
 #include "AliMUONVStore.h"
 #include "AliMUONVCalibParam.h"
 #include "AliMUONVCalibParam.h"
+#include "AliMUONGlobalCrateConfig.h"
+#include "AliMUONRegionalTriggerConfig.h"
 
 #include "AliMpCDB.h"
 #include "AliMpConstants.h"
 #include "AliMpDDLStore.h"
-#include "AliMpDEIterator.h"
+#include "AliMpManuStore.h"
 #include "AliMpDEManager.h"
 #include "AliMpDetElement.h"
+#include "AliMpFiles.h"
 #include "AliMpHVNamer.h"
 #include "AliMpManuIterator.h"
 #include "AliMpSegmentation.h"
@@ -165,9 +169,13 @@ AliMUONCDB::AliMUONCDB(const char* cdbpath)
 {
   /// ctor
     // Load mapping
-    if ( ! AliMpCDB::LoadMpSegmentation() ) {
+    if ( ! AliMpCDB::LoadDDLStore() ) {
       AliFatal("Could not access mapping from OCDB !");
     }
+
+    if ( ! AliMpCDB::LoadManuStore() ) {
+      AliFatal("Could not access run-dependent mapping from OCDB !");
+    }
 }
 
 //_____________________________________________________________________________
@@ -453,52 +461,7 @@ AliMUONCDB::MakeCapacitanceStore(AliMUONVStore& capaStore, const char* file)
 {
   /// Read the capacitance values from file and append them to the capaStore
   
-  AliCodeTimerAuto(Form("file=%s",file));
-  
-  ifstream in(gSystem->ExpandPathName(file));
-  if (in.bad()) return 0;
-  
-  Int_t ngenerated(0);
-  
-  char line[1024];
-  Int_t serialNumber(-1);
-  AliMUONVCalibParam* param(0x0);
-  
-  while ( in.getline(line,1024,'\n') )
-  {
-    if ( isdigit(line[0]) ) 
-    {
-      serialNumber = atoi(line);
-      param = static_cast<AliMUONVCalibParam*>(capaStore.FindObject(serialNumber));
-      if (param)
-      {
-        AliError(Form("serialNumber %d appears several times !",serialNumber));
-        capaStore.Clear();
-        break;
-      }
-      param = new AliMUONCalibParamNF(2,AliMpConstants::ManuNofChannels(),serialNumber,0,1.0);
-      Bool_t ok = capaStore.Add(param);
-      if (!ok)
-      {
-        AliError(Form("Could not set serialNumber=%d",serialNumber));
-        continue;
-      }      
-      continue;
-    }
-    Int_t channel;
-    Float_t capaValue;
-    Float_t injectionGain;
-    sscanf(line,"%d %f %f",&channel,&capaValue,&injectionGain);
-    AliDebug(1,Form("SerialNumber %10d Channel %3d Capa %f injectionGain %f",
-                    serialNumber,channel,capaValue,injectionGain));
-    param->SetValueAsFloat(channel,0,capaValue);
-    param->SetValueAsFloat(channel,1,injectionGain);
-    ++ngenerated;
-  }
-  
-  in.close();
-  
-  return ngenerated;
+  return AliMUONTrackerIO::ReadCapacitances(file,capaStore);
 }
 
 //_____________________________________________________________________________
@@ -530,7 +493,7 @@ AliMUONCDB::MakeCapacitanceStore(AliMUONVStore& capaStore, Bool_t defaultValues)
     ++nmanus;
     
     AliMpDetElement* de = AliMpDDLStore::Instance()->GetDetElement(detElemId); 
-    Int_t serialNumber = de->GetManuSerialFromId(manuId);
+    Int_t serialNumber = AliMpManuStore::Instance()->GetManuSerial(detElemId, manuId);
       
     if ( serialNumber <= 0 ) continue;
     
@@ -673,9 +636,9 @@ AliMUONCDB::MakeLocalTriggerMaskStore(AliMUONVStore& localBoardMasks) const
   AliCodeTimerAuto("");
   
   Int_t ngenerated(0);
-  // Generate fake mask values for 234 localboards and put that into
+  // Generate fake mask values for all localboards and put that into
   // one single container (localBoardMasks)
-  for ( Int_t i = 1; i <= 234; ++i )
+  for ( Int_t i = 1; i <= AliMpConstants::TotalNofLocalBoards(); ++i )
   {
     AliMUONVCalibParam* localBoard = new AliMUONCalibParamNI(1,8,i,0,0);
     for ( Int_t x = 0; x < 2; ++x )
@@ -694,44 +657,33 @@ AliMUONCDB::MakeLocalTriggerMaskStore(AliMUONVStore& localBoardMasks) const
 
 //_____________________________________________________________________________
 Int_t
-AliMUONCDB::MakeRegionalTriggerMaskStore(AliMUONVStore& rtm) const
+AliMUONCDB::MakeRegionalTriggerConfigStore(AliMUONRegionalTriggerConfig& rtm) const
 {
-  /// Make a regional trigger masks store. Mask is set to FFFF for each local board (Ch.F.)
+  /// Make a regional trigger config store. Mask is set to FFFF for each local board (Ch.F.)
   
   AliCodeTimerAuto("");
   
-  Int_t ngenerated(0);
-  for ( Int_t i = 0; i < 16; ++i )
-  {
-    AliMUONVCalibParam* regionalBoard = new AliMUONCalibParamNI(1,1,i,0,0);
-
-    regionalBoard->SetValueAsInt(0,0,0xFFFF);
-    ++ngenerated;
-      
-    rtm.Add(regionalBoard);
+  if ( ! rtm.ReadData(AliMpFiles::LocalTriggerBoardMapping()) ) {
+    AliErrorStream() << "Error when reading from mapping file" << endl;
+    return 0;
   }
-  
-  return ngenerated;
+    
+  return rtm.GetNofTriggerCrates();  
 }
 
+
 //_____________________________________________________________________________
 Int_t 
-AliMUONCDB::MakeGlobalTriggerMaskStore(AliMUONVCalibParam& gtm) const
+AliMUONCDB::MakeGlobalTriggerConfigStore(AliMUONGlobalCrateConfig& gtm) const
 {
-  /// Make a global trigger masks store. All masks (disable) set to 0x00 for each Darc board (Ch.F.)
+  /// Make a global trigger config store. All masks (disable) set to 0x00 for each Darc board (Ch.F.)
   
   AliCodeTimerAuto("");
   
-  Int_t ngenerated(0);
-  
-  for ( Int_t j = 0; j < 2; ++j )
-  {
-    gtm.SetValueAsInt(j,0,0x00);
-    ++ngenerated;
-  }
-  return ngenerated;
+  return gtm.ReadData(AliMpFiles::GlobalTriggerBoardMapping());
 }
 
+
 //_____________________________________________________________________________
 AliMUONTriggerLut* 
 AliMUONCDB::MakeTriggerLUT(const char* file) const
@@ -764,14 +716,9 @@ AliMUONCDB::WriteToCDB(const char* calibpath, TObject* object,
 {
   /// Write a given object to OCDB
   
-  AliCDBId id(calibpath,startRun,endRun);
-  AliCDBMetaData md;
-  md.SetAliRootVersion(gROOT->GetVersion());
-  md.SetComment(gSystem->ExpandPathName(filename));
-  md.SetResponsible("Uploaded using AliMUONCDB class");
-  AliCDBManager* man = AliCDBManager::Instance();
-  man->SetDefaultStorage(fCDBPath);
-  man->Put(object,id,&md);
+  TString comment(gSystem->ExpandPathName(filename));
+  
+  WriteToCDB(object, calibpath, startRun, endRun, comment.Data());
 }
 
 //_____________________________________________________________________________
@@ -781,21 +728,27 @@ AliMUONCDB::WriteToCDB(const char* calibpath, TObject* object,
 {
   /// Write a given object to OCDB
   
+  TString comment;
+  if ( defaultValues ) comment += "Test with default values";
+  else comment += "Test with random values";
+  
+  WriteToCDB(object, calibpath, startRun, endRun, comment.Data());
+}
+
+//_____________________________________________________________________________
+void
+AliMUONCDB::WriteToCDB(TObject* object, const char* calibpath, Int_t startRun, Int_t endRun,
+                      const char* comment, const char* responsible)
+{
+  /// Write a given object to OCDB
+  
   AliCDBId id(calibpath,startRun,endRun);
   AliCDBMetaData md;
   md.SetAliRootVersion(gROOT->GetVersion());
-  if ( defaultValues )
-  {
-    md.SetComment("Test with default values");
-  }
-  else
-  {
-    md.SetComment("Test with random values");
-  }
-  md.SetResponsible("AliMUONCDB tester class");
-  
+  md.SetComment(comment);
+  md.SetResponsible(responsible);
   AliCDBManager* man = AliCDBManager::Instance();
-  man->SetDefaultStorage(fCDBPath);
+  if (!man->IsDefaultStorageSet()) man->SetDefaultStorage(fCDBPath);
   man->Put(object,id,&md);
 }
 
@@ -854,10 +807,10 @@ AliMUONCDB::MakeNeighbourStore(AliMUONVStore& neighbourStore)
             
         for ( Int_t i = 0; i < nofPadNeighbours; ++i )
         {
-          AliMpPad* pad = static_cast<AliMpPad*>(tmp.UncheckedAt(i));
+          AliMpPad* p = static_cast<AliMpPad*>(tmp.UncheckedAt(i));
           Int_t x;
 //          Bool_t ok =
-          calibParam->PackValues(pad->GetLocation().GetFirst(),pad->GetLocation().GetSecond(),x);
+          calibParam->PackValues(p->GetLocation().GetFirst(),p->GetLocation().GetSecond(),x);
 //          if (!ok)
 //          {
 //            AliError("Could not pack value. Something is seriously wrong. Please check");
@@ -888,7 +841,7 @@ AliMUONCDB::WriteLocalTriggerMasks(Int_t startRun, Int_t endRun)
 {  
   /// Write local trigger masks to OCDB
   
-  AliMUONVStore* ltm = new AliMUON1DArray(235);
+  AliMUONVStore* ltm = new AliMUON1DArray(AliMpConstants::TotalNofLocalBoards()+1);
   Int_t ngenerated = MakeLocalTriggerMaskStore(*ltm);
   AliInfo(Form("Ngenerated = %d",ngenerated));
   if (ngenerated>0)
@@ -900,37 +853,39 @@ AliMUONCDB::WriteLocalTriggerMasks(Int_t startRun, Int_t endRun)
 
 //_____________________________________________________________________________
 void
-AliMUONCDB::WriteRegionalTriggerMasks(Int_t startRun, Int_t endRun)
+AliMUONCDB::WriteRegionalTriggerConfig(Int_t startRun, Int_t endRun)
 {  
   /// Write regional trigger masks to OCDB
   
-  AliMUONVStore* rtm = new AliMUON1DArray(16);
-  Int_t ngenerated = MakeRegionalTriggerMaskStore(*rtm);
+  AliMUONRegionalTriggerConfig* rtm = new AliMUONRegionalTriggerConfig();
+  Int_t ngenerated = MakeRegionalTriggerConfigStore(*rtm);
   AliInfo(Form("Ngenerated = %d",ngenerated));
   if (ngenerated>0)
   {
-    WriteToCDB("MUON/Calib/RegionalTriggerBoardMasks",rtm,startRun,endRun,true);
+    WriteToCDB("MUON/Calib/RegionalTriggerConfig",rtm,startRun,endRun,true);
   }
   delete rtm;
 }
 
+
 //_____________________________________________________________________________
 void
-AliMUONCDB::WriteGlobalTriggerMasks(Int_t startRun, Int_t endRun)
+AliMUONCDB::WriteGlobalTriggerConfig(Int_t startRun, Int_t endRun)
 {  
   /// Write global trigger masks to OCDB
   
-  AliMUONVCalibParam* gtm = new AliMUONCalibParamNI(1,2,1,0,0);
+  AliMUONGlobalCrateConfig* gtm = new AliMUONGlobalCrateConfig();
 
-  Int_t ngenerated = MakeGlobalTriggerMaskStore(*gtm);
+  Int_t ngenerated = MakeGlobalTriggerConfigStore(*gtm);
   AliInfo(Form("Ngenerated = %d",ngenerated));
   if (ngenerated>0)
   {
-    WriteToCDB("MUON/Calib/GlobalTriggerBoardMasks",gtm,startRun,endRun,true);
+    WriteToCDB("MUON/Calib/GlobalTriggerCrateConfig",gtm,startRun,endRun,true);
   }
   delete gtm;
 }
 
+
 //_____________________________________________________________________________
 void
 AliMUONCDB::WriteTriggerLut(Int_t startRun, Int_t endRun)
@@ -1072,8 +1027,8 @@ AliMUONCDB::WriteTrigger(Int_t startRun, Int_t endRun)
 {
   /// Writes all Trigger related calibration to CDB
   WriteLocalTriggerMasks(startRun,endRun);
-  WriteRegionalTriggerMasks(startRun,endRun);
-  WriteGlobalTriggerMasks(startRun,endRun);
+  WriteRegionalTriggerConfig(startRun,endRun);
+  WriteGlobalTriggerConfig(startRun,endRun);
   WriteTriggerLut(startRun,endRun);
   WriteTriggerEfficiency(startRun,endRun);
 }
@@ -1089,3 +1044,4 @@ AliMUONCDB::WriteTracker(Bool_t defaultValues, Int_t startRun, Int_t endRun)
   WriteCapacitances(defaultValues,startRun,endRun);
   WriteNeighbours(startRun,endRun);
 }
+