]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Fixing some problems in the CDB access (Alberto)
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 18 Sep 2006 16:37:51 +0000 (16:37 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 18 Sep 2006 16:37:51 +0000 (16:37 +0000)
ITS/AliITSDetTypeRec.cxx
ITS/AliITSDetTypeSim.cxx
ITS/AliITSPreprocessorSPD.cxx
ITS/AliITSsimulationSPD.cxx

index 9975a3fe2e7764cb785daabdc6653aba958fc52b..237ce959b11ac2aecfd643e0fc9bb252d49a7259 100644 (file)
@@ -26,6 +26,7 @@
 #include "TTree.h"
 
 #include "AliCDBManager.h"
+#include "AliCDBStorage.h"
 #include "AliCDBEntry.h"
 #include "AliITSClusterFinder.h"
 #include "AliITSClusterFinderV2.h"
@@ -412,19 +413,21 @@ Bool_t AliITSDetTypeRec::GetCalibration() {
 
   if(!entrySPD || !entrySDD || !entrySSD || !entry2SPD || !entry2SDD || !entry2SSD){
        AliWarning("Calibration object retrieval failed! Dummy calibration will be used.");
-       AliCDBStorage *origStorage = AliCDBManager::Instance()->GetDefaultStorage();
-       AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
+       AliCDBStorage *localStor = 
+               AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT");
        
-       entrySPD = AliCDBManager::Instance()->Get("ITS/Calib/CalibSPD", run);
-       entrySDD = AliCDBManager::Instance()->Get("ITS/Calib/CalibSDD", run);
-       entrySSD = AliCDBManager::Instance()->Get("ITS/Calib/CalibSSD", run);
-       entry2SPD = AliCDBManager::Instance()->Get("ITS/Calib/RespSPD", run);
-       entry2SDD = AliCDBManager::Instance()->Get("ITS/Calib/RespSDD", run);
-       entry2SSD = AliCDBManager::Instance()->Get("ITS/Calib/RespSSD", run);
-       
-       AliCDBManager::Instance()->SetDefaultStorage(origStorage);
+       entrySPD = localStor->Get("ITS/Calib/CalibSPD", run);
+       entrySDD = localStor->Get("ITS/Calib/CalibSDD", run);
+       entrySSD = localStor->Get("ITS/Calib/CalibSSD", run);
+       entry2SPD = localStor->Get("ITS/Calib/RespSPD", run);
+       entry2SDD = localStor->Get("ITS/Calib/RespSDD", run);
+       entry2SSD = localStor->Get("ITS/Calib/RespSSD", run);
   }
 
+  if(!entrySPD || !entrySDD || !entrySSD || !entry2SPD || !entry2SDD || !entry2SSD){
+    AliError("Calibration data was not found in $ALICE_ROOT!");
+    return kFALSE;
+  }
  
   TObjArray *calSPD = (TObjArray *)entrySPD->GetObject();
   if(!isCacheActive)entrySPD->SetObject(NULL);
index 6b5b2b1a7fe4c1d62d79f3b9878843aaa00189f7..0f695a7bb999ef0ab827ed1ad22c73f75816ae56 100644 (file)
@@ -442,20 +442,22 @@ Bool_t AliITSDetTypeSim::GetCalibration() {
   AliCDBEntry *entry2SSD = AliCDBManager::Instance()->Get("ITS/Calib/RespSSD", run);
 
   if(!entrySPD || !entrySDD || !entrySSD || !entry2SPD || !entry2SDD || !entry2SSD){
-    AliWarning("Calibration object retrieval failed! Dummy calibration will be used.");
-    AliCDBStorage *origStorage = AliCDBManager::Instance()->GetDefaultStorage();
-    AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
-       
-    entrySPD = AliCDBManager::Instance()->Get("ITS/Calib/CalibSPD", run);
-    entrySDD = AliCDBManager::Instance()->Get("ITS/Calib/CalibSDD", run);
-    entrySSD = AliCDBManager::Instance()->Get("ITS/Calib/CalibSSD", run);
-    entry2SPD = AliCDBManager::Instance()->Get("ITS/Calib/RespSPD", run);
-    entry2SDD = AliCDBManager::Instance()->Get("ITS/Calib/RespSDD", run);
-    entry2SSD = AliCDBManager::Instance()->Get("ITS/Calib/RespSSD", run);
+       AliWarning("Calibration object retrieval failed! Dummy calibration will be used.");
+       AliCDBStorage *localStor = 
+               AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT");
        
-    AliCDBManager::Instance()->SetDefaultStorage(origStorage);
+       entrySPD = localStor->Get("ITS/Calib/CalibSPD", run);
+       entrySDD = localStor->Get("ITS/Calib/CalibSDD", run);
+       entrySSD = localStor->Get("ITS/Calib/CalibSSD", run);
+       entry2SPD = localStor->Get("ITS/Calib/RespSPD", run);
+       entry2SDD = localStor->Get("ITS/Calib/RespSDD", run);
+       entry2SSD = localStor->Get("ITS/Calib/RespSSD", run);
   }
 
+  if(!entrySPD || !entrySDD || !entrySSD || !entry2SPD || !entry2SDD || !entry2SSD){
+    AliError("Calibration data was not found in $ALICE_ROOT!");
+    return kFALSE;
+  }
 
   TObjArray *calSPD = (TObjArray *)entrySPD->GetObject();
   if(!isCacheActive)entrySPD->SetObject(NULL);
index 738b4048c4b3cba2f35e56b9580c5aeac52a1e60..a83a730d6b047e6d0b9319fe265d64afc52754af 100644 (file)
 
 /*
 $Log$
+Revision 1.3  2006/04/12 08:32:31  hristov
+New SPD simulation (Massimo):
+- speeding up of the diffusion code (Bjorn)
+- creation  of CDB file with the dead channels, implementation
+of the CDB reading, check of  the code (Henrik, Giuseppe, Domenico)
+- final tuning of the diffusion model parameters (Romualdo)
+
 Revision 1.2  2006/02/03 11:31:18  masera
 Calibration framework improved (E. Crescio)
 
@@ -1403,20 +1410,17 @@ Bool_t AliITSPreprocessorSPD::Store(AliCDBId& /*id*/, AliCDBMetaData* /*md*/, In
 
   AliInfo("Storing bad channels");
  
-  if(!AliCDBManager::Instance()->IsDefaultStorageSet()) {
-    AliWarning("No storage set! Will use dummy one");
-    AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
-  }
-
-  
   AliCDBEntry *entrySPD = AliCDBManager::Instance()->Get("ITS/Calib/CalibSPD", runNumber);
+
   if(!entrySPD){
     AliWarning("Calibration object retrieval failed! Dummy calibration will be used.");
-    AliCDBStorage *origStorage = AliCDBManager::Instance()->GetDefaultStorage();
-    AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
        
-    entrySPD = AliCDBManager::Instance()->Get("ITS/Calib/CalibSPD", runNumber);
-    AliCDBManager::Instance()->SetDefaultStorage(origStorage);
+    AliCDBStorage *localStor = AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT");
+    entrySPD = localStor->Get("ITS/Calib/CalibSPD", runNumber);
+    if(!entrySPD){
+      AliFatal("Cannot find SPD calibration entry!");
+      return kFALSE;
+    }
   }
 
   TObjArray *respSPD = (TObjArray *)entrySPD->GetObject();
@@ -1441,12 +1445,18 @@ Bool_t AliITSPreprocessorSPD::Store(AliCDBId& /*id*/, AliCDBMetaData* /*md*/, In
     }
   }
     
-  
-  AliCDBManager::Instance()->Put(entrySPD);
+
+  AliCDBStorage *storage = AliCDBManager::Instance()->GetDefaultStorage();
+  if(!storage) {
+    AliWarning("No default storage set! Will use dummy one");
+    storage = AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT");
+    if(!storage) AliFatal("Could not even set dummy storage! Something very strange is happening...");
+  }
+
+  status = storage->Put(entrySPD);
   entrySPD->SetObject(NULL);
   entrySPD->SetOwner(kTRUE);
 
   delete entrySPD;
-  status=kTRUE;
   return status;
 }
index a50f9b1e6b6b9f1dc018a15006290d5a47b38f02..35301a979060a709cfb5248bf2913981403e9f5e 100644 (file)
@@ -200,17 +200,24 @@ void AliITSsimulationSPD::GetCalibrationObjects(Int_t RunNr) {
     //    none.
 
   AliCDBManager* man = AliCDBManager::Instance();
-  if(!man->IsDefaultStorageSet()) {
-    man->SetDefaultStorage("local://$ALICE_ROOT");
-  }
-  AliCDBEntry *entrySPD = man->Get("ITS/Calib/CalibSPD", RunNr);
+
+  AliCDBEntry *entrySPD=0;
+  entrySPD = man->Get("ITS/Calib/CalibSPD", RunNr);
+
   if(!entrySPD){
-    AliWarning("Cannot find SPD calibration entry!");
-    return;
+    AliWarning("Cannot find SPD calibration entry in default storage! Using local storage $ALICE_ROOT");
+    AliCDBStorage *localStor = 
+               AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT");
+    entrySPD = localStor->Get("ITS/Calib/CalibSPD", RunNr);
+    if(!entrySPD){
+      AliFatal("Cannot find SPD calibration entry!");
+      return;
+    }
   }
+  
   TObjArray *respSPD = (TObjArray *)entrySPD->GetObject();
   if ((! respSPD)) {
-    AliWarning("Cannot get data from SPD database entry!");
+    AliFatal("Cannot get data from SPD database entry!");
     return;
   }
   for (Int_t mod=0; mod<240; mod++) {