Implementation of the latest upgrades in AliCDBManager (A.Colla)
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 11 Apr 2006 15:30:04 +0000 (15:30 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 11 Apr 2006 15:30:04 +0000 (15:30 +0000)
TPC/AliTPCcalibDB.cxx
TPC/AliTPCcalibDB.h

index 9da0cbcc44661cbcaa3f03f5ff1c14d8417e7392..1cd8e83ee5f3efaccea99fe6075c8c8c3bf02abe 100644 (file)
@@ -82,19 +82,8 @@ AliTPCcalibDB::AliTPCcalibDB()
   //
   // constructor
   //  
-   // TODO Default runnumber is set to 0, this should be changed later to an invalid value (e.g. -1) to prevent
-  // TODO invalid calibration data to be used.
-  fRun = 0;
+  fRun = -1;
       
-  AliCDBManager* manager = AliCDBManager::Instance();
-  if (!manager)
-  {
-    AliFatal("AliTRDcalibDB: CRITICAL: Failed to get instance of AliCDBManager.");
-    fLocator = 0;
-  }
-  else
-    fLocator = manager->GetStorage("local://$ALICE_ROOT");    
-
   //
   //
   //
@@ -111,10 +100,12 @@ AliTPCcalibDB::~AliTPCcalibDB()
   //
   // destructor
   //
-  if (fPadGainFactor) delete fPadGainFactor;
-  if (fPadTime0) delete fPadTime0;
-  if (fPadPRFWidth) delete fPadPRFWidth;
-  if (fPadNoise) delete fPadNoise;
+  
+  // don't delete anything, CDB cache is active!
+  //if (fPadGainFactor) delete fPadGainFactor;
+  //if (fPadTime0) delete fPadTime0;
+  //if (fPadPRFWidth) delete fPadPRFWidth;
+  //if (fPadNoise) delete fPadNoise;
 }
 
 
@@ -126,17 +117,7 @@ AliCDBEntry* AliTPCcalibDB::GetCDBEntry(const char* cdbPath)
   //
   char chinfo[1000];
     
-  if (fRun < 0)
-  {
-    AliFatal("AliTPCcalibDB: Run number not set! Use AliTPCcalibDB::SetRun.");
-    return 0;
-  }
-  if (!fLocator) 
-  { 
-    AliError("AliTPCcalibDB: Storage Locator not available."); 
-    return 0; 
-  } 
-  AliCDBEntry* entry = fLocator->Get(cdbPath, fRun); 
+  AliCDBEntry* entry = AliCDBManager::Instance()->Get(cdbPath, fRun); 
   if (!entry) 
   { 
     sprintf(chinfo,"AliTPCcalibDB: Failed to get entry:\t%s ", cdbPath);
@@ -164,34 +145,39 @@ void AliTPCcalibDB::SetRun(Long64_t run)
 void AliTPCcalibDB::Update(){
   //
   AliCDBEntry * entry=0;
+  
+  Bool_t cdbCache = AliCDBManager::Instance()->GetCacheFlag(); // save cache status
+  AliCDBManager::Instance()->SetCacheFlag(kTRUE); // activate CDB cache
+  
   //
   entry          = GetCDBEntry("TPC/Calib/PadGainFactor");
   if (entry){
-    if (fPadGainFactor) delete fPadGainFactor;
+    //if (fPadGainFactor) delete fPadGainFactor;
     entry->SetOwner(kTRUE);
     fPadGainFactor = (AliTPCCalPad*)entry->GetObject();
   }
   //
   entry          = GetCDBEntry("TPC/Calib/PadTime0");
   if (entry){
-    if (fPadTime0) delete fPadTime0;
+    //if (fPadTime0) delete fPadTime0;
     entry->SetOwner(kTRUE);
     fPadTime0 = (AliTPCCalPad*)entry->GetObject();
   }
   //
   entry          = GetCDBEntry("TPC/Calib/PadPRF");
   if (entry){
-    if (fPadPRFWidth) delete fPadPRFWidth;
+    //if (fPadPRFWidth) delete fPadPRFWidth;
     entry->SetOwner(kTRUE);
     fPadPRFWidth = (AliTPCCalPad*)entry->GetObject();
   }
   //
   entry          = GetCDBEntry("TPC/Calib/PadNoise");
   if (entry){
-    if (fPadNoise) delete fPadNoise;
+    //if (fPadNoise) delete fPadNoise;
     entry->SetOwner(kTRUE);
     fPadNoise = (AliTPCCalPad*)entry->GetObject();
   }
   //
-
+  AliCDBManager::Instance()->SetCacheFlag(cdbCache); // reset original CDB cache
+  
 }
index 74fb57fa9f4effdd4c7c4f1fbfa077579b6aff78..6f13ccea628e91afb2d67e9ad39729093e116c76 100644 (file)
@@ -13,7 +13,7 @@
 #include "TObject.h"
 class AliTPCCalPad;
 class AliCDBEntry;
-class AliCDBStorage;
+//class AliCDBStorage;
 
 class AliTPCcalibDB : public TObject
 {
@@ -33,7 +33,7 @@ protected:
   void         Update();  //update entries
   AliCDBEntry* GetCDBEntry(const char* cdbPath);   
   Long64_t        fRun;         // current run number            
-  AliCDBStorage* fLocator;      // Storage locator retrieved from AliCDBManager
+//  AliCDBStorage* fLocator;      // Storage locator retrieved from AliCDBManager
   //
   // calibration parameters per pad
   //