CalibData() method returns AliEMCALCaliData instance filled with CDB calibration...
authorgustavo <gustavo@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 9 Feb 2007 15:50:01 +0000 (15:50 +0000)
committergustavo <gustavo@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 9 Feb 2007 15:50:01 +0000 (15:50 +0000)
EMCAL/AliEMCALLoader.cxx

index 228af6008f87b40381228f5cf91c86278dc9d237..d3f3e94ccdee9329799a6ddbb89f89c0bd572d63 100644 (file)
@@ -51,6 +51,7 @@
 #include "AliCDBLocal.h"
 #include "AliCDBStorage.h"
 #include "AliCDBManager.h"
+#include "AliCDBEntry.h"
 #include "AliEMCALHit.h"
 
 ClassImp(AliEMCALLoader)
@@ -129,10 +130,18 @@ AliEMCALLoader::~AliEMCALLoader()
 //____________________________________________________________________________ 
 AliEMCALCalibData* AliEMCALLoader::CalibData()
 { 
-  // Check if the instance of AliEMCALCalibData exists, and return it
+  // Check if the instance of AliEMCALCalibData exists, if not, create it if 
+  // the OCDB is available, and finally return it.
 
-  if( !(AliCDBManager::Instance()->IsDefaultStorageSet()) ) 
-    fgCalibData=0x0;
+  if(!fgCalibData && (AliCDBManager::Instance()->IsDefaultStorageSet()))
+    {
+      AliCDBEntry *entry = (AliCDBEntry*) 
+       AliCDBManager::Instance()->Get("EMCAL/Calib/Data");
+      if (entry) fgCalibData =  (AliEMCALCalibData*) entry->GetObject();
+    }
+  
+  if(!fgCalibData)
+    AliFatal("Calibration parameters not found in CDB!");
   
   return fgCalibData;