]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTrackerOCDBDataMaker.cxx
Trigger scalers added to ESD header.
[u/mrichter/AliRoot.git] / MUON / AliMUONTrackerOCDBDataMaker.cxx
index 97d25db55ef65c3bcf622ffcd1585363e5f26f7d..ae4dab6a20716249858d35f96e1f495e44331d20 100644 (file)
@@ -29,7 +29,8 @@
 #include "AliMpConstants.h"
 #include "AliMpDDLStore.h"
 #include "AliMpDetElement.h"
-#include "AliMpHVNamer.h"
+#include "AliMpDEManager.h"
+#include "AliMpDCSNamer.h"
 #include <TClass.h>
 #include <TMap.h>
 #include <TObjArray.h>
@@ -55,57 +56,72 @@ AliMUONTrackerOCDBDataMaker::AliMUONTrackerOCDBDataMaker(const char* ocdbPath,
   fData(0x0),
   fSource(Form("%s-%010d-%s",ocdbPath,runNumber,type))
 {
-    /// Ctor
-    AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
+       /// Ctor
+       AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
+       
+       AliCDBManager::Instance()->SetDefaultStorage(ocdbPath);
+       
+       AliMUONVStore* store(0x0);
+       
+       TString stype(type);
+       stype.ToUpper();
+       Bool_t isSingleEvent(kTRUE);
+       Int_t startOfValidity(0);
+       
+       if ( stype == "PEDESTALS" )
+       {
+               store = AliMUONCalibrationData::CreatePedestals(runNumber,&startOfValidity);
+               fData = CreateDataPedestals(startOfValidity);
+       }
+       else if ( stype == "OCCUPANCY" )
+       {
+               store = AliMUONCalibrationData::CreateOccupancyMap(runNumber,&startOfValidity);
     
-    AliCDBManager::Instance()->SetDefaultStorage(ocdbPath);
-    
-    AliMUONVStore* store(0x0);
-    
-    TString stype(type);
-    stype.ToUpper();
-    Bool_t isSingleEvent(kTRUE);
-    
-    if ( stype == "PEDESTALS" )
-    {
-      fData = CreateDataPedestals(runNumber);
-      store = AliMUONCalibrationData::CreatePedestals(runNumber);
-    }
-    else if ( stype == "GAINS" ) 
-    {
-      fData = CreateDataGains(runNumber);
-      AliMUONVStore* gains = AliMUONCalibrationData::CreateGains(runNumber);
-      store = SplitQuality(*gains);
-      delete gains;
-    }
-    else if ( stype == "CAPACITANCES" )
-    {
-      fData = CreateDataCapacitances(runNumber);
-      store = AliMUONCalibrationData::CreateCapacitances(runNumber);
-    }
-    else if ( stype == "HV" )
-    {
-      fData = new AliMUONTrackerData(Form("HV%d",runNumber),"High Voltages",1,!isSingleEvent);
-      fData->SetDimensionName(0,"HV");
-      TMap* m = AliMUONCalibrationData::CreateHV(runNumber);
-      store = CreateHVStore(*m);
-      delete m;
-    }
-    
-    AliCDBManager::Instance()->SetDefaultStorage(storage);
-
-    if (!store)
+    if (store)
     {
-      fIsValid = kFALSE;
-      delete fData;
-      fData = 0x0;
-      AliError("Could not create store");
-      return;
+      fData = new AliMUONTrackerData(Form("OCC%d",runNumber),"OccupancyMap",*store);
+      fData->SetDimensionName(0,"One");
+      fData->SetDimensionName(1,"Zero");
     }
-    
+       }
+       else if ( stype == "GAINS" ) 
+       {
+               AliMUONVStore* gains = AliMUONCalibrationData::CreateGains(runNumber,&startOfValidity);
+               fData = CreateDataGains(startOfValidity);
+               store = SplitQuality(*gains);
+               delete gains;
+       }
+       else if ( stype == "CAPACITANCES" )
+       {
+               store = AliMUONCalibrationData::CreateCapacitances(runNumber,&startOfValidity);
+               fData = CreateDataCapacitances(startOfValidity);
+       }
+       else if ( stype == "HV" )
+       {
+               TMap* m = AliMUONCalibrationData::CreateHV(runNumber,&startOfValidity);
+               fData = new AliMUONTrackerData(Form("HV%d",startOfValidity),"High Voltages",1,!isSingleEvent);
+               fData->SetDimensionName(0,"HV");
+               store = CreateHVStore(*m);
+               delete m;
+       }
+       
+       AliCDBManager::Instance()->SetDefaultStorage(storage);
+       
+       if (!store)
+       {
+               fIsValid = kFALSE;
+               delete fData;
+               fData = 0x0;
+               AliError("Could not create store");
+               return;
+       }
+       
+  if ( stype != "OCCUPANCY" )
+  {
     fData->Add(*store);
-    
-    delete store;
+       }
+  
+       delete store;
 }
 
 //_____________________________________________________________________________
@@ -165,7 +181,7 @@ AliMUONTrackerOCDBDataMaker::CreateHVStore(TMap& m)
   
   TIter next(&m);
   TObjString* s;
-  AliMpHVNamer hvNamer;
+  AliMpDCSNamer hvNamer("TRACKER");
   
   while ( ( s = static_cast<TObjString*>(next()) ) )
   {
@@ -173,8 +189,15 @@ AliMUONTrackerOCDBDataMaker::CreateHVStore(TMap& m)
 
     Int_t detElemId = hvNamer.DetElemIdFromDCSAlias(name.Data());
     
+    if ( !AliMpDEManager::IsValidDetElemId(detElemId) )
+    {
+      AliErrorClass(Form("Got an invalid DE = %d from alias = %s",
+                         detElemId,name.Data()));
+      continue;
+    }
+    
     Int_t nindex = 1;
-    Int_t hvIndex = hvNamer.HVIndexFromDCSAlias(name.Data());
+    Int_t hvIndex = hvNamer.DCSIndexFromDCSAlias(name.Data());
     
     if ( hvIndex > 0 && detElemId >= 500 ) 
     {
@@ -208,7 +231,7 @@ AliMUONTrackerOCDBDataMaker::CreateHVStore(TMap& m)
       }
       if ( n ) hvValue /= n;
       
-      Int_t N(AliMpConstants::ManuNofChannels());
+      Int_t nofChannels(AliMpConstants::ManuNofChannels());
       
       for ( Int_t k = 0 ; k < manus->GetSize(); ++k )
       {
@@ -216,10 +239,10 @@ AliMUONTrackerOCDBDataMaker::CreateHVStore(TMap& m)
         AliMUONVCalibParam* param = static_cast<AliMUONVCalibParam*>(store->FindObject(detElemId,manuId));
         if ( ! param ) 
         {
-          param = new AliMUONCalibParamND(1,N,detElemId,manuId,0);
+          param = new AliMUONCalibParamND(1,nofChannels,detElemId,manuId,0);
           store->Add(param);
         }
-        for ( Int_t j = 0 ; j < N; ++j )
+        for ( Int_t j = 0 ; j < nofChannels; ++j )
         {
           param->SetValueAsDouble(j,0,hvValue);
         }