]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliDCSGenDB.cxx
Added protections to avoid crashes with Print() when ESDEvent is fetched from the...
[u/mrichter/AliRoot.git] / STEER / AliDCSGenDB.cxx
index 13ba76bba0b018435f36c6a06e32adbd2c04b483..7f9219b87e075222c0ec8c805f093815cc525c95 100644 (file)
 // TTimeStamp endTime(2006,10,19,0,0,0,0,kFALSE)
 // Int_t run=2546
 // AliDCSGenDB db
+// db->SetDefaultStorage("local:///afs/cern.ch/alice/tpctest/AliRoot/HEAD");
+// db->SetSpecificStorage("local:///afs/cern.ch/alice/tpctest/Calib/");
 // db->Init(run,"TPC/Config/Pressure","TPC/*/*")
 // db->MakeCalib("PressureSensor.txt","DCSMap.root",startTime,endTime,firstRun,lastRun,"TPC/Calib/Pressure")
 
 
 #include "AliDCSGenDB.h"
 #include "AliLog.h"
+#include "ARVersion.h"
 
-const char *kDefaultStorage="local:///afs/cern.ch/alice/tpctest/AliRoot/HEAD";
-const char *kSpecificStorage="local:///afs/cern.ch/alice/tpctest/Calib/";
-const char *kSensorClass = "AliDCSSensorArray";
 const Int_t kBeamPeriod=2;
 
 ClassImp(AliDCSGenDB)
@@ -48,8 +48,8 @@ ClassImp(AliDCSGenDB)
 AliDCSGenDB::AliDCSGenDB():
    fFirstRun(0),
    fLastRun(0),
-   fSpecificStorage(kSpecificStorage),
-   fDefaultStorage(kDefaultStorage),
+   fSpecificStorage(0),
+   fDefaultStorage(0),
    fSensor(0),
    fStorLoc(0),
    fMetaData(0),
@@ -61,6 +61,22 @@ AliDCSGenDB::AliDCSGenDB():
 
 //______________________________________________________________________________________________
 
+AliDCSGenDB::AliDCSGenDB(const char* defaultStorage, const char* specificStorage):
+   fFirstRun(0),
+   fLastRun(0),
+   fSpecificStorage(specificStorage),
+   fDefaultStorage(defaultStorage),
+   fSensor(0),
+   fStorLoc(0),
+   fMetaData(0),
+   fConfTree(0)
+//
+//  special constructor
+//
+{}
+
+//______________________________________________________________________________________________
+
 AliDCSGenDB::AliDCSGenDB(const AliDCSGenDB& org):
   TObject(org),
   fFirstRun(org.fFirstRun),
@@ -91,13 +107,14 @@ AliDCSGenDB::~AliDCSGenDB(){
 }
 
 //______________________________________________________________________________________________
-AliDCSGenDB& AliDCSGenDB::operator= (const AliDCSGenDB& org )
+AliDCSGenDB& AliDCSGenDB::operator= (const AliDCSGenDB& /*org*/ )
 {
  //
  // assignment operator
  //
  AliError("assignment operator not implemented");
  return *this;
+
 }
 
 //______________________________________________________________________________________________
@@ -107,12 +124,12 @@ void AliDCSGenDB::MakeCalib(const char *list, const char *mapDCS,
                             const TTimeStamp& endTime,
                             Int_t firstRun, Int_t lastRun, const char *calibDir )
 {
-   // The Terminate() function is the last function to be called during
-   // a query. It always runs on the client, it can be used to present
-   // the results graphically or save the results to file.
 
+   // Generate calibration entry from DCS map
+   // Configuration read from ASCII file specified by list
+   
    TClonesArray *arr = ReadList(list);
-   AliDCSSensorArray *fSensor = new AliDCSSensorArray(arr);
+   fSensor = new AliDCSSensorArray(arr);
    fSensor->SetStartTime(startTime);
    fSensor->SetEndTime(endTime);
    TMap* map = SetGraphFile(mapDCS);
@@ -154,7 +171,7 @@ AliCDBMetaData* AliDCSGenDB::CreateMetaObject(const char* objectClassName)
   md1->SetObjectClassName(objectClassName);
   md1->SetResponsible("Haavard Helstrup");
   md1->SetBeamPeriod(kBeamPeriod);
-  md1->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
+  md1->SetAliRootVersion(ALIROOT_SVN_BRANCH);
 
   return md1;
 }
@@ -168,10 +185,12 @@ void AliDCSGenDB::StoreObject(const char* cdbPath, TObject* object, AliCDBMetaDa
 }
 
 //______________________________________________________________________________________________
-void AliDCSGenDB::Init(Int_t run, const char *configDir, const char *specificDir)
+void AliDCSGenDB::Init(Int_t run, const char *configDir, 
+                                  const char *specificDir,
+                                 const char *sensorClass)
 {
 
-   fMetaData = CreateMetaObject(kSensorClass);
+   fMetaData = CreateMetaObject(sensorClass);
    AliCDBManager *man = AliCDBManager::Instance();
    man->SetDefaultStorage(fDefaultStorage);
    man->SetRun(run);
@@ -181,7 +200,7 @@ void AliDCSGenDB::Init(Int_t run, const char *configDir, const char *specificDir
    fStorLoc = man->GetStorage(fSpecificStorage);
    if (!fStorLoc)    return;
 
-   Bool_t cdbCache = AliCDBManager::Instance()->GetCacheFlag(); // save cache status
+   /*Bool_t cdbCache = */AliCDBManager::Instance()->GetCacheFlag(); // save cache status
    AliCDBManager::Instance()->SetCacheFlag(kTRUE); // activate CDB cache