From 68751c2c82d2e66d85717761479d0aa9e2114ce7 Mon Sep 17 00:00:00 2001 From: hristov Date: Tue, 11 Apr 2006 15:30:04 +0000 Subject: [PATCH] Implementation of the latest upgrades in AliCDBManager (A.Colla) --- TPC/AliTPCcalibDB.cxx | 50 ++++++++++++++++--------------------------- TPC/AliTPCcalibDB.h | 4 ++-- 2 files changed, 20 insertions(+), 34 deletions(-) diff --git a/TPC/AliTPCcalibDB.cxx b/TPC/AliTPCcalibDB.cxx index 9da0cbcc446..1cd8e83ee5f 100644 --- a/TPC/AliTPCcalibDB.cxx +++ b/TPC/AliTPCcalibDB.cxx @@ -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 + } diff --git a/TPC/AliTPCcalibDB.h b/TPC/AliTPCcalibDB.h index 74fb57fa9f4..6f13ccea628 100644 --- a/TPC/AliTPCcalibDB.h +++ b/TPC/AliTPCcalibDB.h @@ -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 // -- 2.31.1