ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/
//-------------------------------------------------------------------------
//   Implementation of AliCDBManager and AliCDBParam classe
//   Author: Alberto Colla
//   e-mail: Alberto.Colla@cern.ch
//-------------------------------------------------------------------------

#include <fstream>

#include "AliCDBManager.h"
#include "AliCDBStorage.h"
#include "AliLog.h"
#include "AliCDBDump.h"
#include "AliCDBLocal.h"
#include "AliCDBGrid.h"
#include "AliCDBEntry.h"
#include "AliCDBHandler.h"

#include <TObjString.h>
#include <TSAXParser.h>
#include <TFile.h>
#include <TKey.h>
#include <TUUID.h>
#include <TGrid.h>
#include "TMessage.h"
#include "TObject.h"
#include "TRegexp.h"

ClassImp(AliCDBParam)

ClassImp(AliCDBManager)

//TODO OCDB and Reference folder should not be fully hardcoded but built from run number (or year/LHC period)
TString AliCDBManager::fgkCondUri("alien://folder=/alice/cern.ch/user/a/aliprod/testCDB/CDB?user=aliprod");
TString AliCDBManager::fgkRefUri("alien://folder=/alice/cern.ch/user/a/aliprod/testCDB/Reference?user=aliprod");
TString AliCDBManager::fgkMCIdealStorage("alien://folder=/alice/simulation/2008/v4-15-Release/Ideal");
TString AliCDBManager::fgkMCFullStorage("alien://folder=/alice/simulation/2008/v4-15-Release/Full");
TString AliCDBManager::fgkMCResidualStorage("alien://folder=/alice/simulation/2008/v4-15-Release/Residual");
TString AliCDBManager::fgkOCDBFolderXMLfile("alien:///alice/data/OCDBFoldervsRunRange.xml");
AliCDBManager* AliCDBManager::fgInstance = 0x0;

//_____________________________________________________________________________
AliCDBManager* AliCDBManager::Instance(TMap *entryCache, Int_t run) {
// returns AliCDBManager instance (singleton)

  if (!fgInstance) {
    fgInstance = new AliCDBManager();
    if (!entryCache)
      fgInstance->Init();
    else
      fgInstance->InitFromCache(entryCache,run);
  }

  return fgInstance;
}

//_____________________________________________________________________________
void AliCDBManager::Init() {
// factory registering

  RegisterFactory(new AliCDBDumpFactory());
  RegisterFactory(new AliCDBLocalFactory());
  // AliCDBGridFactory is registered only if AliEn libraries are enabled in Root
  if(!gSystem->Exec("root-config --has-alien 2>/dev/null |grep yes 2>&1 > /dev/null")){ // returns 0 if yes
    AliInfo("AliEn classes enabled in Root. AliCDBGrid factory registered.");
    RegisterFactory(new AliCDBGridFactory());
    fCondParam = CreateParameter(fgkCondUri);
    fRefParam = CreateParameter(fgkRefUri);
  }

  InitShortLived();
}

//_____________________________________________________________________________
void AliCDBManager::InitFromCache(TMap *entryCache, Int_t run) {
// initialize manager from existing cache
// used on the slaves in case of parallel reconstruction
  SetRun(run);

  TIter iter(entryCache->GetTable());
  TPair* pair = 0;

  while((pair = dynamic_cast<TPair*> (iter.Next()))){
    fEntryCache.Add(pair->Key(),pair->Value());
  }
  // fEntry is the new owner of the cache
  fEntryCache.SetOwnerKeyValue(kTRUE,kTRUE);
  entryCache->SetOwnerKeyValue(kFALSE,kFALSE);
  AliInfo(Form("%d cache entries have been loaded",fEntryCache.GetEntries()));
}

//_____________________________________________________________________________
void  AliCDBManager::DumpToSnapshotFile(const char* snapshotFileName, Bool_t singleKeys) const {
//
// If singleKeys is true, dump the entries map and the ids list to the snapshot file
// (provided mostly for historical reasons, the file is then read with InitFromSnapshot),
// otherwise write to file each AliCDBEntry separately (the is the preferred way, the file
// is then read with SetSnapshotMode).

  // open the file
  TFile *f = TFile::Open(snapshotFileName,"RECREATE");
  if (!f || f->IsZombie()){
    AliError(Form("Cannot open file %s",snapshotFileName));
    return;
  }

  AliInfo(Form("Dumping entriesMap (entries'cache) with %d entries!\n", fEntryCache.GetEntries()));
  AliInfo(Form("Dumping entriesList with %d entries!\n", fIds->GetEntries()));

  f->cd();
  if(singleKeys){
    f->WriteObject(&fEntryCache,"CDBentriesMap");
    f->WriteObject(fIds,"CDBidsList");
  }else{
    // We write the entries one by one named by their calibration path
    TIter iter(fEntryCache.GetTable());
    TPair* pair = 0;
    while((pair = dynamic_cast<TPair*> (iter.Next()))){
      TObjString *os = dynamic_cast<TObjString*>(pair->Key());
      if (!os) continue;
      TString path = os->GetString();
      AliCDBEntry *entry = dynamic_cast<AliCDBEntry*>(pair->Value());
      if (!entry) continue;
      path.ReplaceAll("/","*");
      entry->Write(path.Data());
    }
  }
  f->Close();
  delete f;
}

//_____________________________________________________________________________
void  AliCDBManager::DumpToLightSnapshotFile(const char* lightSnapshotFileName) const {
// The light snapshot does not contain the CDB objects (AliCDBEntries) but
// only the information identifying them, that is the map of storages and
// the list of AliCDBIds, as in the UserInfo of AliESDs.root

  // open the file
  TFile *f = TFile::Open(lightSnapshotFileName,"RECREATE");
  if (!f || f->IsZombie()){
    AliError(Form("Cannot open file %s",lightSnapshotFileName));
    return;
  }

  AliInfo(Form("Dumping map of storages with %d entries!\n", fStorageMap->GetEntries()));
  AliInfo(Form("Dumping entriesList with %d entries!\n", fIds->GetEntries()));
  f->WriteObject(fStorageMap,"cdbStoragesMap");
  f->WriteObject(fIds,"CDBidsList");

  f->Close();
  delete f;
}

//_____________________________________________________________________________
Bool_t AliCDBManager::InitFromSnapshot(const char* snapshotFileName, Bool_t overwrite){
// initialize manager from a CDB snapshot, that is add the entries
// to the entries map and the ids to the ids list taking them from
// the map and the list found in the input file

  // if the manager is locked it cannot initialize from a snapshot
  if(fLock) {
    AliError("Being locked I cannot initialize from the snapshot!");
    return kFALSE;
  }	

  // open the file
  TString snapshotFile(snapshotFileName);
  if(snapshotFile.BeginsWith("alien://")){
    if(!gGrid) {
      TGrid::Connect("alien://","");
      if(!gGrid) {
        AliError("Connection to alien failed!");
        return kFALSE;
      }
    }
  }

  TFile *f = TFile::Open(snapshotFileName);
  if (!f || f->IsZombie()){
    AliError(Form("Cannot open file %s",snapshotFileName));
    return kFALSE;
  }

  // retrieve entries' map from snapshot file
  TMap *entriesMap = 0;
  TIter next(f->GetListOfKeys());
  TKey *key;
  while ((key = (TKey*)next())) {
    if (strcmp(key->GetClassName(),"TMap") != 0) continue;
    entriesMap = (TMap*)key->ReadObj();
    break;
  }
  if (!entriesMap || entriesMap->GetEntries()==0){
    AliError("Cannot get valid map of CDB entries from snapshot file");
    return kFALSE;
  }

  // retrieve ids' list from snapshot file
  TList *idsList = 0;
  TIter nextKey(f->GetListOfKeys());
  TKey *keyN;
  while ((keyN = (TKey*)nextKey())) {
    if (strcmp(keyN->GetClassName(),"TList") != 0) continue;
    idsList = (TList*)keyN->ReadObj();
    break;
  }
  if (!idsList || idsList->GetEntries()==0){
    AliError("Cannot get valid list of CDB entries from snapshot file");
    return kFALSE;
  }

  // Add each (entry,id) from the snapshot to the memory: entry to the cache, id to the list of ids.
  // If "overwrite" is false: add the entry to the cache and its id to the list of ids
  // only if neither of them is already there.
  // If "overwrite" is true: write the snapshot entry,id in any case. If something
  // was already there for that calibration type, remove it and issue a warning
  TIter iterObj(entriesMap->GetTable());
  TPair* pair = 0;
  Int_t nAdded=0;
  while((pair = dynamic_cast<TPair*> (iterObj.Next()))){
    TObjString* os = (TObjString*) pair->Key();
    TString path = os->GetString();
    TIter iterId(idsList);
    AliCDBId* id=0;
    AliCDBId* correspondingId=0;
    while((id = dynamic_cast<AliCDBId*> (iterId.Next()))){
      TString idpath(id->GetPath());
      if(idpath==path){
        correspondingId=id;
        break;
      }
    }
    if(!correspondingId){
      AliError(Form("id for \"%s\" not found in the snapshot (while entry was). This entry is skipped!",path.Data()));
      break;
    }
    Bool_t cached = fEntryCache.Contains(path.Data());
    Bool_t registeredId = kFALSE;
    TIter iter(fIds);
    AliCDBId *idT = 0;
    while((idT = dynamic_cast<AliCDBId*> (iter.Next()))){
      if(idT->GetPath()==path){
        registeredId = kTRUE;
        break;
      }
    }

    if(overwrite){
      if(cached || registeredId){
        AliWarning(Form("An entry was already cached for \"%s\". Removing it before caching from snapshot",path.Data()));
        UnloadFromCache(path.Data());
      }
      fEntryCache.Add(pair->Key(),pair->Value());
      fIds->Add(id);
      nAdded++;
    }else{
      if(cached || registeredId){
        AliWarning(Form("An entry was already cached for \"%s\". Not adding this object from snapshot",path.Data()));
      }else{
        fEntryCache.Add(pair->Key(),pair->Value());
        fIds->Add(id);
        nAdded++;
      }
    }
  }

  // fEntry is the new owner of the cache
  fEntryCache.SetOwnerKeyValue(kTRUE,kTRUE);
  entriesMap->SetOwnerKeyValue(kFALSE,kFALSE);
  fIds->SetOwner(kTRUE);
  idsList->SetOwner(kFALSE);
  AliInfo(Form("%d new (entry,id) cached. Total number %d",nAdded,fEntryCache.GetEntries()));

  f->Close();
  delete f;

  return kTRUE;
}

//_____________________________________________________________________________
void AliCDBManager::Destroy() {
// delete ALCDBManager instance and active storages

  if (fgInstance) {
    //fgInstance->Delete();
    delete fgInstance;
    fgInstance = 0x0;
  }
}

//_____________________________________________________________________________
AliCDBManager::AliCDBManager():
  TObject(),
  fFactories(),
  fActiveStorages(),
  fSpecificStorages(),
  fEntryCache(),
  fIds(0),
  fStorageMap(0),
  fShortLived(0),
  fDefaultStorage(NULL),
  fDrainStorage(NULL),
  fCondParam(0),
  fRefParam(0),
  fRun(-1),
  fCache(kTRUE),
  fLock(kFALSE),
  fSnapshotMode(kFALSE),
  fSnapshotFile(0),
  fOCDBUploadMode(kFALSE),
  fRaw(kFALSE),
  fCvmfsOcdb(""),
  fStartRunLHCPeriod(-1),
  fEndRunLHCPeriod(-1),
  fLHCPeriod(""),
  fKey(0)
{
  // default constuctor
  fFactories.SetOwner(1);
  fActiveStorages.SetOwner(1);
  fSpecificStorages.SetOwner(1);
  fEntryCache.SetName("CDBEntryCache");
  fEntryCache.SetOwnerKeyValue(kTRUE,kTRUE);

  fStorageMap = new TMap();
  fStorageMap->SetOwner(1);
  fIds = new TList();
  fIds->SetOwner(1);
}

//_____________________________________________________________________________
AliCDBManager::~AliCDBManager() {
// destructor
  ClearCache();
  DestroyActiveStorages();
  fFactories.Delete();
  fDrainStorage = 0x0;
  fDefaultStorage = 0x0;
  delete fStorageMap; fStorageMap = 0;
  delete fIds; fIds = 0;
  delete fCondParam;
  delete fRefParam;
  delete fShortLived; fShortLived = 0x0;
  //fSnapshotCache = 0;
  //fSnapshotIdsList = 0;
  if(fSnapshotMode){
    fSnapshotFile->Close();
    fSnapshotFile = 0;
  }
}

//_____________________________________________________________________________
void AliCDBManager::PutActiveStorage(AliCDBParam* param, AliCDBStorage* storage){
// put a storage object into the list of active storages

  fActiveStorages.Add(param, storage);
  AliDebug(1, Form("Active storages: %d", fActiveStorages.GetEntries()));
}

//_____________________________________________________________________________
void AliCDBManager::RegisterFactory(AliCDBStorageFactory* factory) {
// add a storage factory to the list of registerd factories

  if (!fFactories.Contains(factory)) {
    fFactories.Add(factory);
  }
}

//_____________________________________________________________________________
Bool_t AliCDBManager::HasStorage(const char* dbString) const {
// check if dbString is a URI valid for one of the registered factories

  TIter iter(&fFactories);

  AliCDBStorageFactory* factory=0;
  while ((factory = (AliCDBStorageFactory*) iter.Next())) {

    if (factory->Validate(dbString)) {
      return kTRUE;
    }
  }

  return kFALSE;
}

//_____________________________________________________________________________
AliCDBParam* AliCDBManager::CreateParameter(const char* dbString) const {
// create AliCDBParam object from URI string

  TString uriString(dbString);

  if ( !fCvmfsOcdb.IsNull() && uriString.BeginsWith("alien://")) {
    AlienToCvmfsUri(uriString);
  }

  TIter iter(&fFactories);

  AliCDBStorageFactory* factory=0;
  while ((factory = (AliCDBStorageFactory*) iter.Next())) {
    AliCDBParam* param = factory->CreateParameter(uriString);
    if(param) return param;
  }

  return NULL;
}

//_____________________________________________________________________________
void AliCDBManager::AlienToCvmfsUri(TString& uriString) const {
// convert alien storage uri to local:///cvmfs storage uri (called when OCDB_PATH is set)

  TObjArray *arr = uriString.Tokenize('?');
  TIter iter(arr);
  TObjString *str = 0;
  TString entryKey = "";
  TString entryValue  = "";
  TString newUriString = "";
  while((str = (TObjString*) iter.Next())){
    TString entry(str->String());
    Int_t indeq = entry.Index('=');
    entryKey = entry(0, indeq+1);
    entryValue = entry(indeq+1, entry.Length()-indeq);

    if ( entryKey.Contains("folder", TString::kIgnoreCase) )
    {

      TRegexp re_RawFolder("^/alice/data/20[0-9]+/OCDB");
      TRegexp re_MCFolder("^/alice/simulation/2008/v4-15-Release");
      TString rawFolder = entryValue(re_RawFolder);
      TString mcFolder = entryValue(re_MCFolder);
      if ( !rawFolder.IsNull() ){
        entryValue.Replace(0, 6, "/cvmfs/alice-ocdb.cern.ch/calibration");
        //entryValue.Replace(entryValue.Length()-4, entryValue.Length(), "");
      } else if ( !mcFolder.IsNull() ){
        entryValue.Replace(0,36,"/cvmfs/alice-ocdb.cern.ch/calibration/MC");
      } else {
        AliFatal(Form("Environment variable for cvmfs OCDB folder set for an invalid OCDB storage:\n   %s", entryValue.Data()));
      }
    } else {
      newUriString += entryKey;
    }
    newUriString += entryValue;
    newUriString += '?';
  }
  newUriString.Prepend("local://");
  newUriString.Remove(TString::kTrailing, '?');
  uriString = newUriString;
}

//_____________________________________________________________________________
AliCDBStorage* AliCDBManager::GetStorage(const char* dbString) {
// Get the CDB storage corresponding to the URI string passed as argument
// If "raw://" is passed, get the storage for the raw OCDB for the current run (fRun)

  TString uriString(dbString);
  if (uriString.EqualTo("raw://")) {
    if (!fLHCPeriod.IsNull() && !fLHCPeriod.IsWhitespace()) {
      return GetDefaultStorage();
    } else {
      TString lhcPeriod("");
      Int_t startRun = -1, endRun = -1;
      GetLHCPeriodAgainstAlienFile(fRun, lhcPeriod, startRun, endRun);
      return GetStorage(lhcPeriod.Data());
    }
  }

  AliCDBParam* param = CreateParameter(dbString);
  if (!param) {
    AliError(Form("Failed to activate requested storage! Check URI: %s", dbString));
    return NULL;
  }

  AliCDBStorage* aStorage = GetStorage(param);

  delete param;
  return aStorage;
}

//_____________________________________________________________________________
AliCDBStorage* AliCDBManager::GetStorage(const AliCDBParam* param) {
// get storage object from AliCDBParam object

  // if the list of active storages already contains
  // the requested storage, return it
  AliCDBStorage* aStorage = GetActiveStorage(param);
  if (aStorage) {
    return aStorage;
  }

  // if lock is ON, cannot activate more storages!
  if(fLock) {
    if (fDefaultStorage) {
      AliFatal("Lock is ON, and default storage is already set: "
          "cannot reset it or activate more storages!");
    }
  }	

  // loop on the list of registered factories
  TIter iter(&fFactories);
  AliCDBStorageFactory* factory=0;
  while ((factory = (AliCDBStorageFactory*) iter.Next())) {

    // each factory tries to create its storage from the parameter
    aStorage = factory->Create(param);
    if (aStorage) {
      PutActiveStorage(param->CloneParam(), aStorage);
      aStorage->SetURI(param->GetURI());
      if(fRun >= 0) {
        if( aStorage->GetType() == "alien" || aStorage->GetType() == "local" )
          aStorage->QueryCDB(fRun);
      }
      return aStorage;
    }
  }

  AliError(Form("Failed to activate requested storage! Check URI: %s", param->GetURI().Data()));

  return NULL;
}

//_____________________________________________________________________________
AliCDBStorage* AliCDBManager::GetActiveStorage(const AliCDBParam* param) {
// get a storage object from the list of active storages

  return dynamic_cast<AliCDBStorage*> (fActiveStorages.GetValue(param));
}

//_____________________________________________________________________________
TList* AliCDBManager::GetActiveStorages() {
// return list of active storages
// user has responsibility to delete returned object

  TList* result = new TList();

  TIter iter(fActiveStorages.GetTable());
  TPair* aPair=0;
  while ((aPair = (TPair*) iter.Next())) {
    result->Add(aPair->Value());
  }

  return result;
}

//_____________________________________________________________________________
void AliCDBManager::SetDrain(const char* dbString) {
// set drain storage from URI string

  fDrainStorage = GetStorage(dbString);	
}

//_____________________________________________________________________________
void AliCDBManager::SetDrain(const AliCDBParam* param) {
// set drain storage from AliCDBParam

  fDrainStorage = GetStorage(param);
}

//_____________________________________________________________________________
void AliCDBManager::SetDrain(AliCDBStorage* storage) {
// set drain storage from another active storage

  fDrainStorage = storage;
}

//_____________________________________________________________________________
Bool_t AliCDBManager::Drain(AliCDBEntry *entry) {
// drain retrieved object to drain storage

  AliDebug(2, "Draining into drain storage...");
  return fDrainStorage->Put(entry);
}

//____________________________________________________________________________
Bool_t AliCDBManager::SetOCDBUploadMode() {
// Set the framework in official upload mode. This tells the framework to upload
// objects to cvmfs after they have been uploaded to AliEn OCDBs.
// It return false if the executable to upload to cvmfs is not found.

  TString cvmfsUploadExecutable("$HOME/bin/ocdb-cvmfs");
  gSystem->ExpandPathName(cvmfsUploadExecutable);
  if ( gSystem->AccessPathName(cvmfsUploadExecutable) )
    return kFALSE;
  fOCDBUploadMode = kTRUE;
  return kTRUE;
}

//____________________________________________________________________________
void AliCDBManager::SetDefaultStorage(const char* storageUri) {
// sets default storage from URI string

  // if in the cvmfs case (triggered by environment variable) check for path validity
  // and modify Uri if it is "raw://"
  TString cvmfsOcdb(gSystem->Getenv("OCDB_PATH"));
  if (! cvmfsOcdb.IsNull()){
    fCvmfsOcdb = cvmfsOcdb;
    ValidateCvmfsCase();
  }

  // checking whether we are in the raw case
  TString uriTemp(storageUri);
  if (uriTemp == "raw://") {
    fRaw = kTRUE; // read then by SetRun to check if the method has to be called again with expanded uri
    AliInfo("Setting the run-number will set the corresponding OCDB for raw data reconstruction.");
    return;
  }

  AliCDBStorage* bckStorage = fDefaultStorage;

  fDefaultStorage = GetStorage(storageUri);

  if(!fDefaultStorage) return;

  if(bckStorage && (fDefaultStorage != bckStorage)){
    AliWarning("Existing default storage replaced: clearing cache!");
    ClearCache();
  }

  if (fStorageMap->Contains("default")) {
    delete fStorageMap->Remove(((TPair*)fStorageMap->FindObject("default"))->Key());
  }
  fStorageMap->Add(new TObjString("default"), new TObjString(fDefaultStorage->GetURI()));
}

//_____________________________________________________________________________
void AliCDBManager::SetDefaultStorage(const AliCDBParam* param) {
// set default storage from AliCDBParam object

  AliCDBStorage* bckStorage = fDefaultStorage;

  fDefaultStorage = GetStorage(param);

  if(!fDefaultStorage) return;

  if(bckStorage && (fDefaultStorage != bckStorage)){
    AliWarning("Existing default storage replaced: clearing cache!");
    ClearCache();
  }

  if (fStorageMap->Contains("default")) {
    delete fStorageMap->Remove(((TPair*)fStorageMap->FindObject("default"))->Key());
  }
  fStorageMap->Add(new TObjString("default"), new TObjString(fDefaultStorage->GetURI()));
}

//_____________________________________________________________________________
void AliCDBManager::SetDefaultStorage(AliCDBStorage* storage) {
// set default storage from another active storage

  // if lock is ON, cannot activate more storages!
  if(fLock) {
    if (fDefaultStorage) {
      AliFatal("Lock is ON, and default storage is already set: "
          "cannot reset it or activate more storages!");
    }
  }	

  if (!storage) {
    UnsetDefaultStorage();
    return;
  }

  AliCDBStorage* bckStorage = fDefaultStorage;

  fDefaultStorage = storage;

  if(bckStorage && (fDefaultStorage != bckStorage)){
    AliWarning("Existing default storage replaced: clearing cache!");
    ClearCache();
  }

  if (fStorageMap->Contains("default")) {
    delete fStorageMap->Remove(((TPair*)fStorageMap->FindObject("default"))->Key());
  }
  fStorageMap->Add(new TObjString("default"), new TObjString(fDefaultStorage->GetURI()));
}

//_____________________________________________________________________________
void AliCDBManager::SetDefaultStorage(const char* mcString, const char* simType) {
// sets default storage for MC data
// mcString MUST be "MC",
// simType can be "Ideal","Residual","Full"

  TString strmcString(mcString);
  TString strsimType(simType);
  TString dbString;
  if (strmcString != "MC"){
    AliFatal("Method requires first string to be MC!");
  }
  else {
    if (strsimType == "Ideal"){
      dbString = fgkMCIdealStorage;
    }
    else if (strsimType == "Full"){
      dbString = fgkMCFullStorage;
    }
    else if (strsimType == "Residual"){
      dbString = fgkMCResidualStorage;
    }
    else {
      AliFatal("Error in setting the storage for MC data, second argument MUST be either \"Ideal\" or \"Full\" or \"Residual\".");
    }

    SetDefaultStorage(dbString.Data());
    fStartRunLHCPeriod=0;
    fEndRunLHCPeriod=AliCDBRunRange::Infinity();
    if(!fDefaultStorage) AliFatal(Form("%s storage not there! Please check!",dbString.Data()));
  }
}

//_____________________________________________________________________________
void AliCDBManager::ValidateCvmfsCase() const {
  // The OCDB_PATH variable contains the path to the directory in /cvmfs/ which is
  // an AliRoot tag based snapshot of the AliEn file catalogue (e.g. 
  // /cvmfs/alice.cern.ch/x86_64-2.6-gnu-4.1.2/Packages/OCDB/v5-05-76-AN).
  // The directory has to contain:
  // 1) <data|MC>/20??.list.gz gzipped text files listing the OCDB files (seen by that AliRoot tag)
  // 2) bin/getOCDBFilesPerRun.sh   (shell+awk) script extracting from 1) the list
  //    of valid files for the given run.

    if (! fCvmfsOcdb.BeginsWith("/cvmfs"))  //!!!! to be commented out for testing
      AliFatal(Form("OCDB_PATH set to an invalid path: %s", fCvmfsOcdb.Data()));

    TString cvmfsUri(fCvmfsOcdb);
    gSystem->ExpandPathName(cvmfsUri);
    if (gSystem->AccessPathName(cvmfsUri))
      AliFatal(Form("OCDB_PATH set to an invalid path: %s", cvmfsUri.Data()));
    
    // check that we find the two scripts we need

    AliDebug(3, "OCDB_PATH envvar is set. Changing OCDB storage from alien:// to local:///cvmfs type.");
    cvmfsUri = cvmfsUri.Strip(TString::kTrailing, '/');
    cvmfsUri.Append("/bin/getOCDBFilesPerRun.sh");
    if (gSystem->AccessPathName(cvmfsUri))
      AliFatal(Form("Cannot find valid script: %s", cvmfsUri.Data()));
}

//_____________________________________________________________________________
void AliCDBManager::SetDefaultStorageFromRun(Int_t run) {
// set default storage from the run number - to be used only with raw data	

  // if lock is ON, cannot activate more storages!
  if(fLock) {
    if (fDefaultStorage) {
      AliFatal("Lock is ON, and default storage is already set: "
          "cannot activate default storage from run number");
    }
  }	

  TString lhcPeriod("");
  Int_t startRun = 0, endRun = 0;
  if (! fCvmfsOcdb.IsNull()) { // fRaw and cvmfs case: set LHC period from cvmfs file
    GetLHCPeriodAgainstCvmfsFile(run, lhcPeriod, startRun, endRun);
  } else {                     // fRaw: set LHC period from AliEn XML file
    GetLHCPeriodAgainstAlienFile(run, lhcPeriod, startRun, endRun);
  }

  fLHCPeriod = lhcPeriod;
  fStartRunLHCPeriod = startRun;
  fEndRunLHCPeriod = endRun;

  SetDefaultStorage(fLHCPeriod.Data());
  if(!fDefaultStorage) AliFatal(Form("%s storage not there! Please check!",fLHCPeriod.Data()));

}

//_____________________________________________________________________________
void AliCDBManager::GetLHCPeriodAgainstAlienFile(Int_t run, TString& lhcPeriod, Int_t& startRun, Int_t& endRun) {
// set LHC period (year + first, last run) comparing run number and AliEn XML file
 
// retrieve XML file from alien
  if(!gGrid) {
    TGrid::Connect("alien://","");
    if(!gGrid) {
      AliError("Connection to alien failed!");
      return;
    }
  }
  TUUID uuid;
  TString rndname = gSystem->TempDirectory(); // "/tmp/";
  rndname += "/";
  rndname += "OCDBFolderXML.";
  rndname += uuid.AsString();
  rndname += ".xml";
  AliDebug(2, Form("file to be copied = %s", fgkOCDBFolderXMLfile.Data()));
  if (!TFile::Cp(fgkOCDBFolderXMLfile.Data(), rndname.Data())) {
    AliFatal(Form("Cannot make a local copy of OCDBFolder xml file in %s",rndname.Data()));
  }
  AliCDBHandler* saxcdb = new AliCDBHandler();
  saxcdb->SetRun(run);
  TSAXParser *saxParser = new TSAXParser();
  saxParser->ConnectToHandler("AliCDBHandler", saxcdb);
  saxParser->ParseFile(rndname.Data());
  AliInfo(Form(" LHC folder = %s", saxcdb->GetOCDBFolder().Data()));
  AliInfo(Form(" LHC period start run = %d", saxcdb->GetStartRunRange()));
  AliInfo(Form(" LHC period end run = %d", saxcdb->GetEndRunRange()));
  lhcPeriod = saxcdb->GetOCDBFolder();
  startRun = saxcdb->GetStartRunRange();
  endRun = saxcdb->GetEndRunRange();
}

//_____________________________________________________________________________
void AliCDBManager::GetLHCPeriodAgainstCvmfsFile(Int_t run, TString& lhcPeriod, Int_t& startRun, Int_t& endRun) {
// set LHC period (year + first, last run) comparing run number and CVMFS file
// We don't want to connect to AliEn just to set the uri from the runnumber
// for that we use the script getUriFromYear.sh in the cvmfs AliRoot package

  TString getYearScript(fCvmfsOcdb);
  getYearScript = getYearScript.Strip(TString::kTrailing, '/');
  getYearScript.Append("/bin/getUriFromYear.sh");
  if (gSystem->AccessPathName(getYearScript))
    AliFatal(Form("Cannot find valid script: %s", getYearScript.Data()));
  TString inoutFile(gSystem->WorkingDirectory());
  inoutFile += "/uri_range_";
  inoutFile += TString::Itoa(run,10);
  TString command(getYearScript);
  command += ' ';
  command += TString::Itoa(run,10);
  command += Form(" > %s", inoutFile.Data());
  AliDebug(3, Form("Running command: \"%s\"",command.Data()));
  Int_t result = gSystem->Exec(command.Data());
  if(result != 0) {
    AliFatal(Form("Was not able to execute \"%s\"", command.Data()));
  }

  // now read the file with the uri and first and last run
  std::ifstream file(inoutFile.Data());
  if (!file.is_open()) {
    AliFatal(Form("Error opening file \"%s\"!", inoutFile.Data()));
  }
  TString line;
  TObjArray* oStringsArray = 0;
  while (line.ReadLine(file)){
    oStringsArray = line.Tokenize(' ');
  }
  TObjString *oStrUri = dynamic_cast<TObjString*> (oStringsArray->At(0));
  TObjString *oStrFirst = dynamic_cast<TObjString*> (oStringsArray->At(1));
  TString firstRun = oStrFirst->GetString();
  TObjString *oStrLast = dynamic_cast<TObjString*> (oStringsArray->At(2));
  TString lastRun = oStrLast->GetString();

  lhcPeriod = oStrUri->GetString();
  startRun = firstRun.Atoi();
  endRun = lastRun.Atoi();

  file.close();
}

//_____________________________________________________________________________
void AliCDBManager::UnsetDefaultStorage() {
// Unset default storage

  // if lock is ON, action is forbidden!
  if(fLock) {
    if (fDefaultStorage) {
      AliFatal("Lock is ON: cannot unset default storage!");
    }
  }

  if (fDefaultStorage) {
    AliWarning("Clearing cache!");
    ClearCache();
  }

  fRun = fStartRunLHCPeriod = fEndRunLHCPeriod = -1;
  fRaw = kFALSE;

  fDefaultStorage = 0x0;
}

//_____________________________________________________________________________
void AliCDBManager::SetSpecificStorage(const char* calibType, const char* dbString, Int_t version, Int_t subVersion) {
// sets storage specific for detector or calibration type (works with AliCDBManager::Get(...))

  AliCDBParam *aPar = CreateParameter(dbString);
  if(!aPar) return;
  SetSpecificStorage(calibType, aPar, version, subVersion);
  delete aPar;
}

//_____________________________________________________________________________
void AliCDBManager::SetSpecificStorage(const char* calibType, const AliCDBParam* param, Int_t version, Int_t subVersion) {
// sets storage specific for detector or calibration type (works with AliCDBManager::Get(...))
// Default storage should be defined prior to any specific storages, e.g.:
// AliCDBManager::instance()->SetDefaultStorage("alien://");
// AliCDBManager::instance()->SetSpecificStorage("TPC/*","local://DB_TPC");
// AliCDBManager::instance()->SetSpecificStorage("*/Align/*","local://DB_TPCAlign");
// calibType must be a valid CDB path! (3 level folder structure)
// Specific version/subversion is set in the uniqueid of the AliCDBParam value stored in the
// specific storages map

  if(!fDefaultStorage && !fRaw) {
    AliError("Please activate a default storage first!");
    return;
  }

  AliCDBPath aPath(calibType);
  if(!aPath.IsValid()){
    AliError(Form("Not a valid path: %s", calibType));
    return;
  }

  TObjString *objCalibType = new TObjString(aPath.GetPath());
  if(fSpecificStorages.Contains(objCalibType)){
    AliWarning(Form("Storage \"%s\" already activated! It will be replaced by the new one",
          calibType));
    AliCDBParam *checkPar = dynamic_cast<AliCDBParam*> (fSpecificStorages.GetValue(calibType));
    if(checkPar) delete checkPar;
    delete fSpecificStorages.Remove(objCalibType);
  }
  AliCDBStorage *aStorage = GetStorage(param);
  if(!aStorage) return;

  // Set the unique id of the AliCDBParam stored in the map to store specific version/subversion
  UInt_t uId = ((subVersion+1)<<16) + (version+1);
  AliCDBParam *specificParam = param->CloneParam();
  specificParam->SetUniqueID(uId);
  fSpecificStorages.Add(objCalibType, specificParam);

  if(fStorageMap->Contains(objCalibType)){
    delete fStorageMap->Remove(objCalibType);
  }
  fStorageMap->Add(objCalibType->Clone(), new TObjString(param->GetURI()));

}

//_____________________________________________________________________________
AliCDBStorage* AliCDBManager::GetSpecificStorage(const char* calibType) {
// get storage specific for detector or calibration type

  AliCDBPath calibPath(calibType);
  if(!calibPath.IsValid()) return NULL;

  AliCDBParam *checkPar = (AliCDBParam*) fSpecificStorages.GetValue(calibPath.GetPath());
  if(!checkPar){
    AliError(Form("%s storage not found!", calibType));
    return NULL;
  } else {
    return GetStorage(checkPar);
  }

}

//_____________________________________________________________________________
AliCDBParam* AliCDBManager::SelectSpecificStorage(const TString& path) {
// select storage valid for path from the list of specific storages

  AliCDBPath aPath(path);
  if(!aPath.IsValid()) return NULL;

  TIter iter(&fSpecificStorages);
  TObjString *aCalibType=0;
  AliCDBPath tmpPath("null/null/null");
  AliCDBParam* aPar=0;
  while((aCalibType = (TObjString*) iter.Next())){
    AliCDBPath calibTypePath(aCalibType->GetName());
    if(calibTypePath.Comprises(aPath)) {
      if(calibTypePath.Comprises(tmpPath)) continue;
      aPar = (AliCDBParam*) fSpecificStorages.GetValue(aCalibType);
      tmpPath.SetPath(calibTypePath.GetPath());
    }
  }
  return aPar;
}

//_____________________________________________________________________________
AliCDBEntry* AliCDBManager::Get(const AliCDBPath& path, Int_t runNumber,
    Int_t version, Int_t subVersion) {
  // get an AliCDBEntry object from the database

  if(runNumber < 0){
    // RunNumber is not specified. Try with fRun
    if (fRun < 0){
      AliError("Run number neither specified in query nor set in AliCDBManager! Use AliCDBManager::SetRun.");
      return NULL;
    }
    runNumber = fRun;
  }

  return Get(AliCDBId(path, runNumber, runNumber, version, subVersion));
}

//_____________________________________________________________________________
AliCDBEntry* AliCDBManager::Get(const AliCDBPath& path,
    const AliCDBRunRange& runRange, Int_t version,
    Int_t subVersion) {
  // get an AliCDBEntry object from the database!

  return Get(AliCDBId(path, runRange, version, subVersion));
}

//_____________________________________________________________________________
AliCDBEntry* AliCDBManager::Get(const AliCDBId& queryId, Bool_t forceCaching) {
// get an AliCDBEntry object from the database

  // check if queryId's path and runRange are valid
  // queryId is invalid also if version is not specified and subversion is!
  if (!queryId.IsValid()) {
    AliError(Form("Invalid query: %s", queryId.ToString().Data()));
    return NULL;
  }

  // queryId is not specified if path contains wildcard or run range= [-1,-1]
  if (!queryId.IsSpecified()) {
    AliError(Form("Unspecified query: %s",
          queryId.ToString().Data()));
    return NULL;
  }

  if(fLock && !(fRun >= queryId.GetFirstRun() && fRun <= queryId.GetLastRun()))
    AliFatal("Lock is ON: cannot use different run number than the internal one!");

  if(fCache && !(fRun >= queryId.GetFirstRun() && fRun <= queryId.GetLastRun()))
    AliWarning("Run number explicitly set in query: CDB cache temporarily disabled!");

  AliCDBEntry *entry=0;

  // first look into map of cached objects
  if(fCache && queryId.GetFirstRun() == fRun)
    entry = (AliCDBEntry*) fEntryCache.GetValue(queryId.GetPath());
  if(entry) {
    AliDebug(2, Form("Object %s retrieved from cache !!",queryId.GetPath().Data()));
    return entry;
  }

  // if snapshot flag is set, try getting from the snapshot
  // but in the case a specific storage is specified for this path
  AliCDBParam *aPar=SelectSpecificStorage(queryId.GetPath());
  if(!aPar){
    if(fSnapshotMode && queryId.GetFirstRun() == fRun)
    {
      entry = GetEntryFromSnapshot(queryId.GetPath());
      if(entry) {
        AliInfo(Form("Object \"%s\" retrieved from the snapshot.",queryId.GetPath().Data()));
        if(queryId.GetFirstRun() == fRun) // no need to check fCache, fSnapshotMode not possible otherwise
          CacheEntry(queryId.GetPath(), entry);

        if(!fIds->Contains(&entry->GetId()))
          fIds->Add(entry->GetId().Clone());

        return entry;
      }
    }
  }

  // Entry is not in cache (and, in case we are in snapshot mode, not in the snapshot either)
  // => retrieve it from the storage and cache it!!
  if(!fDefaultStorage) {
    AliError("No storage set!");
    return NULL;
  }

  Int_t version = -1, subVersion = -1;
  AliCDBStorage *aStorage=0;
  if(aPar) {
    aStorage=GetStorage(aPar);
    TString str = aPar->GetURI();
    UInt_t uId = aPar->GetUniqueID();
    version = Int_t(uId&0xffff) - 1;
    subVersion = Int_t(uId>>16) - 1;
    AliDebug(2,Form("Looking into storage: %s",str.Data()));
  } else {
    aStorage=GetDefaultStorage();
    AliDebug(2,"Looking into default storage");
  }

  AliCDBId finalQueryId(queryId);
  if(version >= 0) {
    AliDebug(2,Form("Specific version set to: %d", version));
    finalQueryId.SetVersion(version);
  }
  if(subVersion >= 0) {
    AliDebug(2,Form("Specific subversion set to: %d", subVersion));
    finalQueryId.SetSubVersion(subVersion);
  }
  entry = aStorage->Get(finalQueryId);

  if(entry && fCache && (queryId.GetFirstRun()==fRun || forceCaching)){
    CacheEntry(queryId.GetPath(), entry);
  }

  if(entry && !fIds->Contains(&entry->GetId())){
    fIds->Add(entry->GetId().Clone());
  }

  return entry;
}

//_____________________________________________________________________________
AliCDBEntry* AliCDBManager::GetEntryFromSnapshot(const char* path) {
// get the entry from the open snapshot file

  TString sPath(path);
  sPath.ReplaceAll("/","*");
  if(!fSnapshotFile){
    AliError("No snapshot file is open!");
    return 0;
  }
  AliCDBEntry *entry = dynamic_cast<AliCDBEntry*>(fSnapshotFile->Get(sPath.Data()));
  if(!entry){
    AliDebug(2,Form("Cannot get a CDB entry for \"%s\" from snapshot file",path));
    return 0;
  }

  return entry;
}

//_____________________________________________________________________________
Bool_t AliCDBManager::SetSnapshotMode(const char* snapshotFileName) {
// set the manager in snapshot mode

  if(!fCache){
    AliError("Cannot set the CDB manage in snapshot mode if the cache is not active!");
    return kFALSE;
  }

  //open snapshot file
  TString snapshotFile(snapshotFileName);
  if(snapshotFile.BeginsWith("alien://")){
    if(!gGrid) {
      TGrid::Connect("alien://","");
      if(!gGrid) {
        AliError("Connection to alien failed!");
        return kFALSE;
      }
    }
  }

  fSnapshotFile = TFile::Open(snapshotFileName);
  if (!fSnapshotFile || fSnapshotFile->IsZombie()){
    AliError(Form("Cannot open file %s",snapshotFileName));
    return kFALSE;
  }

  AliInfo("The CDB manager is set in snapshot mode!");
  fSnapshotMode = kTRUE;
  return kTRUE;

}

//_____________________________________________________________________________
const char* AliCDBManager::GetURI(const char* path) {
// return the URI of the storage where to look for path

  if(!IsDefaultStorageSet()) return 0;

  AliCDBParam *aPar=SelectSpecificStorage(path);

  if(aPar) {
    return aPar->GetURI().Data();

  } else {
    return GetDefaultStorage()->GetURI().Data();
  }

  return 0;
}

//_____________________________________________________________________________
Int_t AliCDBManager::GetStartRunLHCPeriod(){
// get the first run of validity
// for the current period
// if set
  if(fStartRunLHCPeriod==-1)
    AliWarning("Run-range not yet set for the current LHC period.");
  return fStartRunLHCPeriod;
}

//_____________________________________________________________________________
Int_t AliCDBManager::GetEndRunLHCPeriod(){
// get the last run of validity
// for the current period
// if set
  if(fEndRunLHCPeriod==-1)
    AliWarning("Run-range not yet set for the current LHC period.");
  return fEndRunLHCPeriod;
}

//_____________________________________________________________________________
TString AliCDBManager::GetLHCPeriod(){
// get the current LHC period string
//
  if(fLHCPeriod.IsWhitespace() || fLHCPeriod.IsNull())
    AliWarning("LHC period (OCDB folder) not yet set");
  return fLHCPeriod;
}

//_____________________________________________________________________________
AliCDBId* AliCDBManager::GetId(const AliCDBPath& path, Int_t runNumber,
    Int_t version, Int_t subVersion) {
  // get the AliCDBId of the valid object from the database (does not retrieve the object)
  // User must delete returned object!

  if(runNumber < 0){
    // RunNumber is not specified. Try with fRun
    if (fRun < 0){
      AliError("Run number neither specified in query nor set in AliCDBManager! Use AliCDBManager::SetRun.");
      return NULL;
    }
    runNumber = fRun;
  }

  return GetId(AliCDBId(path, runNumber, runNumber, version, subVersion));
}

//_____________________________________________________________________________
AliCDBId* AliCDBManager::GetId(const AliCDBPath& path,
    const AliCDBRunRange& runRange, Int_t version,
    Int_t subVersion) {
  // get the AliCDBId of the valid object from the database (does not retrieve the object)
  // User must delete returned object!

  return GetId(AliCDBId(path, runRange, version, subVersion));
}

//_____________________________________________________________________________
AliCDBId* AliCDBManager::GetId(const AliCDBId& query) {
// get the AliCDBId of the valid object from the database (does not retrieve the object)
// User must delete returned object!

  if(!fDefaultStorage) {
    AliError("No storage set!");
    return NULL;
  }

  // check if query's path and runRange are valid
  // query is invalid also if version is not specified and subversion is!
  if (!query.IsValid()) {
    AliError(Form("Invalid query: %s", query.ToString().Data()));
    return NULL;
  }

  // query is not specified if path contains wildcard or run range= [-1,-1]
  if (!query.IsSpecified()) {
    AliError(Form("Unspecified query: %s",
          query.ToString().Data()));
    return NULL;
  }

  if(fCache && query.GetFirstRun() != fRun)
    AliWarning("Run number explicitly set in query: CDB cache temporarily disabled!");

  AliCDBEntry* entry = 0;

  // first look into map of cached objects
  if(fCache && query.GetFirstRun() == fRun)
    entry = (AliCDBEntry*) fEntryCache.GetValue(query.GetPath());

  if(entry) {
    AliDebug(2, Form("Object %s retrieved from cache !!",query.GetPath().Data()));
    return dynamic_cast<AliCDBId*> (entry->GetId().Clone());
  }

  // Entry is not in cache -> retrieve it from CDB and cache it!!
  AliCDBStorage *aStorage=0;
  AliCDBParam *aPar=SelectSpecificStorage(query.GetPath());

  if(aPar) {
    aStorage=GetStorage(aPar);
    TString str = aPar->GetURI();
    AliDebug(2,Form("Looking into storage: %s",str.Data()));

  } else {
    aStorage=GetDefaultStorage();
    AliDebug(2,"Looking into default storage");
  }

  return aStorage->GetId(query);

}

//_____________________________________________________________________________
TList* AliCDBManager::GetAll(const AliCDBPath& path, Int_t runNumber,
    Int_t version, Int_t subVersion) {
  // get multiple AliCDBEntry objects from the database

  if(runNumber < 0){
    // RunNumber is not specified. Try with fRun
    if (fRun < 0){
      AliError("Run number neither specified in query nor set in AliCDBManager! Use AliCDBManager::SetRun.");
      return NULL;
    }
    runNumber = fRun;
  }

  return GetAll(AliCDBId(path, runNumber, runNumber, version, 	
        subVersion));
}

//_____________________________________________________________________________
TList* AliCDBManager::GetAll(const AliCDBPath& path,
    const AliCDBRunRange& runRange, Int_t version, Int_t subVersion) {
  // get multiple AliCDBEntry objects from the database

  return GetAll(AliCDBId(path, runRange, version, subVersion));
}

//_____________________________________________________________________________
TList* AliCDBManager::GetAll(const AliCDBId& query) {
// get multiple AliCDBEntry objects from the database
// Warning: this method works correctly only for queries of the type "Detector/*"
// 		and not for more specific queries e.g. "Detector/Calib/*" !
// Warning #2: Entries are cached, but GetAll will keep on retrieving objects from OCDB!
// 		To get an object from cache use Get() function

  if(!fDefaultStorage) {
    AliError("No storage set!");
    return NULL;
  }

  if (!query.IsValid()) {
    AliError(Form("Invalid query: %s", query.ToString().Data()));
    return NULL;
  }

  if((fSpecificStorages.GetEntries()>0) && query.GetPath().BeginsWith('*')){
    // if specific storages are active a query with "*" is ambiguous
    AliError("Query too generic in this context!");
    return NULL;
  }

  if (query.IsAnyRange()) {
    AliError(Form("Unspecified run or runrange: %s",
          query.ToString().Data()));
    return NULL;
  }

  if(fLock && query.GetFirstRun() != fRun)
    AliFatal("Lock is ON: cannot use different run number than the internal one!");

  AliCDBParam *aPar=SelectSpecificStorage(query.GetPath());

  AliCDBStorage *aStorage;
  if(aPar) {
    aStorage=GetStorage(aPar);
    AliDebug(2,Form("Looking into storage: %s", aPar->GetURI().Data()));

  } else {
    aStorage=GetDefaultStorage();
    AliDebug(2,Form("Looking into default storage: %s", aStorage->GetURI().Data()));
  }

  TList *result = 0;
  if(aStorage) result = aStorage->GetAll(query);
  if(!result) return 0;

  // loop on result to check whether entries should be re-queried with specific storages
  if(fSpecificStorages.GetEntries()>0 && ! (fSpecificStorages.GetEntries() == 1 && aPar)) {
    AliInfo("Now look into all other specific storages...");

    TIter iter(result);
    AliCDBEntry* chkEntry=0;

    while((chkEntry = dynamic_cast<AliCDBEntry*> (iter.Next()))){
      AliCDBId& chkId = chkEntry->GetId();
      AliDebug(2, Form("Checking id %s ", chkId.GetPath().Data()));
      AliCDBParam *chkPar=SelectSpecificStorage(chkId.GetPath());
      if (!chkPar || aPar == chkPar) continue;
      AliCDBStorage *chkStorage = GetStorage(chkPar);
      AliDebug(2, Form("Found specific storage! %s", chkPar->GetURI().Data()));

      AliCDBEntry *newEntry=0;
      chkId.SetRunRange(query.GetFirstRun(), query.GetLastRun());
      chkId.SetVersion(query.GetVersion());
      chkId.SetSubVersion(query.GetSubVersion());

      if(chkStorage) newEntry = chkStorage->Get(chkId);
      if(!newEntry) continue;

      // object is found in specific storage: replace entry in the result list!
      chkEntry->SetOwner(1);
      delete result->Remove(chkEntry);
      result->AddFirst(newEntry);
    }

    Int_t nEntries = result->GetEntries();
    AliInfo("After look into other specific storages, result list is:");
    for(int i=0; i<nEntries;i++){
      AliCDBEntry *entry = (AliCDBEntry*) result->At(i);
      AliInfo(Form("%s",entry->GetId().ToString().Data()));
    }
  }

  // caching entries
  TIter iter(result);
  AliCDBEntry* entry=0;
  while((entry = dynamic_cast<AliCDBEntry*> (iter.Next()))){

    if(!fIds->Contains(&entry->GetId())){
      fIds->Add(entry->GetId().Clone());
    }
    if(fCache && (query.GetFirstRun() == fRun)){
      CacheEntry(entry->GetId().GetPath(), entry);
    }
  }


  return result;
}

//_____________________________________________________________________________
Bool_t AliCDBManager::Put(TObject* object, const AliCDBId& id, AliCDBMetaData* metaData, const char* mirrors, DataType type){
// store an AliCDBEntry object into the database

  if (object==0x0) {
    AliError("Null Entry! No storage will be done!");
    return kFALSE;
  }

  AliCDBEntry anEntry(object, id, metaData);
  return Put(&anEntry, mirrors, type);

}


//_____________________________________________________________________________
Bool_t AliCDBManager::Put(AliCDBEntry* entry, const char* mirrors, DataType type){
// store an AliCDBEntry object into the database

  if(type == kPrivate && !fDefaultStorage) {
    AliError("No storage set!");
    return kFALSE;
  }

  if (!entry){
    AliError("No entry!");
    return kFALSE;
  }

  if (entry->GetObject()==0x0){
    AliError("No valid object in CDB entry!");
    return kFALSE;
  }

  if (!entry->GetId().IsValid()) {
    AliError(Form("Invalid entry ID: %s",
          entry->GetId().ToString().Data()));
    return kFALSE;
  }	

  if (!entry->GetId().IsSpecified()) {
    AliError(Form("Unspecified entry ID: %s",
          entry->GetId().ToString().Data()));
    return kFALSE;
  }

  AliCDBId id = entry->GetId();
  AliCDBParam *aPar = SelectSpecificStorage(id.GetPath());

  AliCDBStorage *aStorage=0;

  if(aPar) {
    aStorage=GetStorage(aPar);
  } else {
    switch(type){
      case kCondition:
        aStorage = GetStorage(fCondParam);
        break;
      case kReference:
        aStorage = GetStorage(fRefParam);
        break;
      case kPrivate:
        aStorage = GetDefaultStorage();
        break;
    }
  }

  AliDebug(2,Form("Storing object into storage: %s", aStorage->GetURI().Data()));

  TString strMirrors(mirrors);
  Bool_t result = kFALSE;
  if(!strMirrors.IsNull() && !strMirrors.IsWhitespace())
    result = aStorage->Put(entry, mirrors, type);
  else
    result = aStorage->Put(entry, "", type);

  if(fRun >= 0) QueryCDB();

  return result;


}

//_____________________________________________________________________________
void AliCDBManager::SetMirrorSEs(const char* mirrors) {
// set mirror Storage Elements for the default storage, if it is of type "alien"
  if(fDefaultStorage->GetType() != "alien"){
    AliInfo("The default storage is not of type \"alien\". Settings for Storage Elements are not taken into account!");
    return;
  }
  fDefaultStorage->SetMirrorSEs(mirrors);
}

//_____________________________________________________________________________
const char* AliCDBManager::GetMirrorSEs() const {
// get mirror Storage Elements for the default storage, if it is of type "alien"
  if(fDefaultStorage->GetType() != "alien"){
    AliInfo("The default storage is not of type \"alien\". Settings for Storage Elements are not taken into account!");
    return "";
  }
  return fDefaultStorage->GetMirrorSEs();
}

//_____________________________________________________________________________
void AliCDBManager::CacheEntry(const char* path, AliCDBEntry* entry) {
// cache AliCDBEntry. Cache is valid until run number is changed.

  AliCDBEntry *chkEntry = dynamic_cast<AliCDBEntry*> (fEntryCache.GetValue(path));

  if(chkEntry) {
    AliDebug(2, Form("Object %s already in cache !!", path));
    return;
  } else {
    AliDebug(2,Form("Caching entry %s", path));
  }

  fEntryCache.Add(new TObjString(path), entry);
  AliDebug(2,Form("Cache entries: %d", fEntryCache.GetEntries()));

}

//_____________________________________________________________________________
void AliCDBManager::Print(Option_t* /*option*/) const {
// Print list of active storages and their URIs

  TString output=Form("Run number = %d; ",fRun);
  output += "Cache is ";
  if(!fCache) output += "NOT ";
  output += Form("ACTIVE; Number of active storages: %d\n",fActiveStorages.GetEntries());

  if(fDefaultStorage) {
    output += Form("\t*** Default Storage URI: \"%s\"\n",fDefaultStorage->GetURI().Data());
    //		AliInfo(output.Data());
  }
  if(fSpecificStorages.GetEntries()>0) {
    TIter iter(fSpecificStorages.GetTable());
    TPair *aPair=0;
    Int_t i=1;
    while((aPair = (TPair*) iter.Next())){
      output += Form("\t*** Specific storage %d: Path \"%s\" -> URI \"%s\"\n",
          i++, ((TObjString*) aPair->Key())->GetName(),
          ((AliCDBParam*) aPair->Value())->GetURI().Data());
    }
  }
  if(fDrainStorage) {
    output += Form("*** Drain Storage URI: %s\n",fDrainStorage->GetURI().Data());
  }
  AliInfo(output.Data());
}

//_____________________________________________________________________________
void AliCDBManager::SetRun(Int_t run) {
// Sets current run number.
// When the run number changes the caching is cleared.

  if(fRun == run)
    return;

  if(fLock && fRun >= 0) {
    AliFatal("Lock is ON, cannot reset run number!");
  }	

  fRun = run;

  if (fRaw) {
    // here the LHCPeriod xml file is parsed; the string containing the correct period is returned; the default storage is set
    if (fStartRunLHCPeriod <= run && fEndRunLHCPeriod >= run){
      AliInfo("LHCPeriod alien folder for current run already in memory");
    }else{
      SetDefaultStorageFromRun(fRun);
      if(fEntryCache.GetEntries()!=0) ClearCache();
      return;
    }
  }
  ClearCache();
  QueryCDB();
}

//_____________________________________________________________________________
void AliCDBManager::ClearCache(){
// clear AliCDBEntry cache

  AliDebug(2, Form("Cache entries to be deleted: %d",fEntryCache.GetEntries()));

  /*
  // To clean entries one by one
  TIter iter(fEntryCache.GetTable());
  TPair* pair=0;
  while((pair= dynamic_cast<TPair*> (iter.Next()))){

  TObjString* key = dynamic_cast<TObjString*> (pair->Key());
  AliCDBEntry* entry = dynamic_cast<AliCDBEntry*> (pair->Value());
  AliDebug(2, Form("Deleting entry: %s", key->GetName()));
  if (entry) delete entry;
  delete fEntryCache.Remove(key);
  }
  */
  fEntryCache.DeleteAll();
  AliDebug(2, Form("After deleting - Cache entries: %d",fEntryCache.GetEntries()));
}

//_____________________________________________________________________________
void AliCDBManager::UnloadFromCache(const char* path){
// unload cached object
// that is remove the entry from the cache and the id from the list of ids
//
  if(!fActiveStorages.GetEntries()) {
    AliDebug(2, Form("No active storages. Object \"%s\" is not unloaded from cache", path));
    return;
  }

  AliCDBPath queryPath(path);
  if(!queryPath.IsValid()) return;

  if(!queryPath.IsWildcard()) { // path is not wildcard, get it directly from the cache and unload it!
    if(fEntryCache.Contains(path)){
      AliDebug(2, Form("Unloading object \"%s\" from cache and from list of ids", path));
      TObjString pathStr(path);
      delete fEntryCache.Remove(&pathStr);
      // we do not remove from the list of Id's (it's not very coherent but we leave the
      // id for the benefit of the userinfo)
      /*
         TIter iter(fIds);
         AliCDBId *id = 0;
         while((id = dynamic_cast<AliCDBId*> (iter.Next()))){
         if(queryPath.Comprises(id->GetPath()))
         delete fIds->Remove(id);
         }*/
    } else {
      AliWarning(Form("Cache does not contain object \"%s\"!", path));
    }
    AliDebug(2, Form("Cache entries: %d",fEntryCache.GetEntries()));
    return;
  }

  // path is wildcard: loop on the cache and unload all comprised objects!
  TIter iter(fEntryCache.GetTable());
  TPair* pair = 0;
  Int_t removed=0;

  while((pair = dynamic_cast<TPair*> (iter.Next()))){
    AliCDBPath entryPath = pair->Key()->GetName();
    if(queryPath.Comprises(entryPath)) {
      AliDebug(2, Form("Unloading object \"%s\" from cache and from list of ids", entryPath.GetPath().Data()));
      TObjString pathStr(entryPath.GetPath());
      delete fEntryCache.Remove(&pathStr);
      removed++;

      // we do not remove from the list of Id's (it's not very coherent but we leave the
      // id for the benefit of the userinfo)
      /*
         TIter iterids(fIds);
         AliCDBId *anId = 0;
         while((anId = dynamic_cast<AliCDBId*> (iterids.Next()))){
         AliCDBPath aPath = anId->GetPath();
         TString aPathStr = aPath.GetPath();
         if(queryPath.Comprises(aPath)) {
         delete fIds->Remove(anId);
         }
         }*/
    }
  }
  AliDebug(2,Form("Cache entries and ids removed: %d   Remaining: %d",removed,fEntryCache.GetEntries()));
}

//_____________________________________________________________________________
void AliCDBManager::DestroyActiveStorages() {
// delete list of active storages

  fActiveStorages.DeleteAll();
  fSpecificStorages.DeleteAll();
}

//_____________________________________________________________________________
void AliCDBManager::DestroyActiveStorage(AliCDBStorage* /*storage*/) {
// destroys active storage

  /*
     TIter iter(fActiveStorages.GetTable());
     TPair* aPair;
     while ((aPair = (TPair*) iter.Next())) {
     if(storage == (AliCDBStorage*) aPair->Value())
     delete fActiveStorages.Remove(aPair->Key());
     storage->Delete(); storage=0x0;
     }
     */

}

//_____________________________________________________________________________
void AliCDBManager::QueryCDB() {
// query default and specific storages for files valid for fRun. Every storage loads the Ids into its list.

  if (fRun < 0){
    AliError("Run number not yet set! Use AliCDBManager::SetRun.");
    return;
  }
  if (!fDefaultStorage){
    AliError("Default storage is not set! Use AliCDBManager::SetDefaultStorage");
    return;
  }
  if(fDefaultStorage->GetType() == "alien" || fDefaultStorage->GetType() == "local"){
    fDefaultStorage->QueryCDB(fRun);
  //} else {
  //	AliDebug(2,"Skipping query for valid files, it used only in grid...");
  }

  TIter iter(&fSpecificStorages);
  TObjString *aCalibType=0;
  AliCDBParam* aPar=0;
  while((aCalibType = dynamic_cast<TObjString*> (iter.Next()))){
    aPar = (AliCDBParam*) fSpecificStorages.GetValue(aCalibType);
    if(aPar) {
      AliDebug(2,Form("Querying specific storage %s",aCalibType->GetName()));
      AliCDBStorage *aStorage = GetStorage(aPar);
      if(aStorage->GetType() == "alien" || aStorage->GetType() == "local"){
        aStorage->QueryCDB(fRun, aCalibType->GetName());
      } else {
        AliDebug(2,
            "Skipping query for valid files, it is used only in grid...");
      }
    }
  }
}

//______________________________________________________________________________________________
const char* AliCDBManager::GetDataTypeName(DataType type) {
// returns the name (string) of the data type

  switch (type){
    case kCondition: return "Conditions";
    case kReference: return "Reference";
    case kPrivate: return "Private";
  }
  return 0;

}

//______________________________________________________________________________________________
Bool_t AliCDBManager::DiffObjects(const char *cdbFile1, const char *cdbFile2) const {
// Compare byte-by-byte the objects contained in the CDB entry in two different files,
// whose name is passed as input
// Return value:
//   kTRUE - in case the content of the OCDB object (persistent part) is exactly the same
//   kFALSE - otherwise

  TString f1Str(cdbFile1);
  TString f2Str(cdbFile2);
  if (!gGrid && ( f1Str.BeginsWith("alien://") || f2Str.BeginsWith("alien://") ))
    TGrid::Connect("alien://");

  TFile * f1 = TFile::Open(cdbFile1);
  if (!f1){
    Printf("Cannot open file \"%s\"",cdbFile1);
    return kFALSE;
  }
  TFile * f2 = TFile::Open(cdbFile2);
  if (!f2){
    Printf("Cannot open file \"%s\"",cdbFile2);
    return kFALSE;
  }

  AliCDBEntry * entry1 = (AliCDBEntry*)f1->Get("AliCDBEntry");
  if (!entry1){
    Printf("Cannot get CDB entry from file \"%s\"",cdbFile1);
    return kFALSE;
  }
  AliCDBEntry * entry2 = (AliCDBEntry*)f2->Get("AliCDBEntry");
  if (!entry2){
    Printf("Cannot get CDB entry from file \"%s\"",cdbFile2);
    return kFALSE;
  }

  // stream the two objects in the buffer of two TMessages
  TObject* object1 = entry1->GetObject();
  TObject* object2 = entry2->GetObject();
  TMessage * file1 = new TMessage(TBuffer::kWrite);
  file1->WriteObject(object1);
  Int_t size1 = file1->Length();
  TMessage * file2 = new TMessage(TBuffer::kWrite);
  file2->WriteObject(object2);
  Int_t size2 = file2->Length();
  if (size1!=size2){
    Printf("Problem 2:  OCDB entry of different size (%d,%d)",size1,size2);
    return kFALSE;
  }

  // if the two buffers have the same size, check that they are the same byte-by-byte
  Int_t countDiff=0;
  char* buf1 = file1->Buffer();
  char* buf2 = file2->Buffer();
  //for (Int_t i=0; i<size1; i++)    if (file1->Buffer()[i]!=file2->Buffer()[i]) countDiff++;
  for(Int_t i=0; i<size1; i++)
    if (buf1[i]!=buf2[i]) countDiff++;

  if (countDiff>0){
    Printf("The CDB objects differ by %d bytes.", countDiff);
    return kFALSE;
  }

  Printf("The CDB objects are the same in the two files.");
  return kTRUE;
}

//______________________________________________________________________________________________
void AliCDBManager::InitShortLived() {
// Init the list of short-lived objects
// currently disabled

  fShortLived=0x0;

  // 	fShortLived = new TList();
  // 	fShortLived->SetOwner(1);
  //
  // 	fShortLived->Add(new TObjString("EMCAL/Calib/Data"));
  //
  // 	fShortLived->Add(new TObjString("HMPID/Calib/Nmean"));
  // 	fShortLived->Add(new TObjString("HMPID/Calib/Qthre"));
  //
  // 	fShortLived->Add(new TObjString("ITS/Calib/CalibSPD"));
  //
  // 	fShortLived->Add(new TObjString("MUON/Calib/Gains"));
  // 	fShortLived->Add(new TObjString("MUON/Calib/HV"));
  // 	fShortLived->Add(new TObjString("MUON/Calib/Pedestals"));
  //
  // 	fShortLived->Add(new TObjString("PHOS/Calib/CpvGainPedestals"));
  // 	fShortLived->Add(new TObjString("PHOS/Calib/EmcGainPedestals"));
  //
  // 	fShortLived->Add(new TObjString("PMD/Calib/Data"));
  //
  // 	fShortLived->Add(new TObjString("TRD/Calib/ChamberGainFactor"));
  // 	fShortLived->Add(new TObjString("TRD/Calib/LocalGainFactor"));
  // 	fShortLived->Add(new TObjString("TRD/Calib/ChamberT0"));
  // 	fShortLived->Add(new TObjString("TRD/Calib/LocalT0"));
  // 	fShortLived->Add(new TObjString("TRD/Calib/ChamberVdrift"));
  // 	fShortLived->Add(new TObjString("TRD/Calib/LocalVdrift"));
  //
  // 	fShortLived->Add(new TObjString("ZDC/Calib/Data"));

}

//______________________________________________________________________________________________
Bool_t AliCDBManager::IsShortLived(const char* path) {
// returns the name (string) of the data type

  if(!fShortLived) return kFALSE;

  AliCDBPath aPath(path);
  if(!aPath.IsValid()){
    AliError(Form("Not a valid path: %s", path));
    return kFALSE;
  }

  return fShortLived->Contains(path);

}

//______________________________________________________________________________________________
ULong64_t AliCDBManager::SetLock(Bool_t lock, ULong64_t key){
// To lock/unlock user must provide the key. A new key is provided after
// each successful lock. User should always backup the returned key and
// use it on next access.
  if (fLock == lock) return 0;  // nothing to be done
  if (lock) {
    // User wants to lock - check his identity
    if (fKey) {
      // Lock has a user - check his key
      if (fKey != key) {
        AliFatal("Wrong key provided to lock CDB. Please remove CDB lock access from your code !");
        return 0;
      }
    }
    // Provide new key
    fKey = gSystem->Now();
    fLock = kTRUE;
    return fKey;
  }
  // User wants to unlock - check the provided key
  if (key != fKey) {
    AliFatal("Lock is ON: wrong key provided");
    return 0;
  }
  fLock = kFALSE;
  return key;
}

///////////////////////////////////////////////////////////
// AliCDBManager Parameter class                         //
// interface to specific AliCDBParameter class           //
// (AliCDBGridParam, AliCDBLocalParam, AliCDBDumpParam)  //
///////////////////////////////////////////////////////////

AliCDBParam::AliCDBParam():
  fType(),
  fURI()
{
  // constructor

}

//_____________________________________________________________________________
AliCDBParam::~AliCDBParam() {
  // destructor

}

void AliCDBManager::ExtractBaseFolder(TString& url)
{
  // TBD RS
  // remove everything but the url - 
  // Exact copy of the AliReconstuction::Rectify.... (to be removed)
  // 
  //
  TString sbs;
  if (!(sbs=url("\\?User=[^?]*")).IsNull())                url.ReplaceAll(sbs,"");
  if (!(sbs=url("\\?DBFolder=[^?]*")).IsNull())            url.ReplaceAll("?DB","");
  if (!(sbs=url("\\?SE=[^?]*")).IsNull())                  url.ReplaceAll(sbs,"");
  if (!(sbs=url("\\?CacheFolder=[^?]*")).IsNull())         url.ReplaceAll(sbs,"");
  if (!(sbs=url("\\?OperateDisconnected=[^?]*")).IsNull()) url.ReplaceAll(sbs,"");
  if (!(sbs=url("\\?CacheSize=[^?]*")).IsNull())           url.ReplaceAll(sbs,"");  
  if (!(sbs=url("\\?CleanupInterval=[^?]*")).IsNull())     url.ReplaceAll(sbs,"");  
  Bool_t slash=kFALSE,space=kFALSE;
  while ( (slash=url.EndsWith("/")) || (space=url.EndsWith(" ")) ) {
    if (slash) url = url.Strip(TString::kTrailing,'/');
    if (space) url = url.Strip(TString::kTrailing,' ');
  }
  //url.ToLower();
  //
}
 AliCDBManager.cxx:1
 AliCDBManager.cxx:2
 AliCDBManager.cxx:3
 AliCDBManager.cxx:4
 AliCDBManager.cxx:5
 AliCDBManager.cxx:6
 AliCDBManager.cxx:7
 AliCDBManager.cxx:8
 AliCDBManager.cxx:9
 AliCDBManager.cxx:10
 AliCDBManager.cxx:11
 AliCDBManager.cxx:12
 AliCDBManager.cxx:13
 AliCDBManager.cxx:14
 AliCDBManager.cxx:15
 AliCDBManager.cxx:16
 AliCDBManager.cxx:17
 AliCDBManager.cxx:18
 AliCDBManager.cxx:19
 AliCDBManager.cxx:20
 AliCDBManager.cxx:21
 AliCDBManager.cxx:22
 AliCDBManager.cxx:23
 AliCDBManager.cxx:24
 AliCDBManager.cxx:25
 AliCDBManager.cxx:26
 AliCDBManager.cxx:27
 AliCDBManager.cxx:28
 AliCDBManager.cxx:29
 AliCDBManager.cxx:30
 AliCDBManager.cxx:31
 AliCDBManager.cxx:32
 AliCDBManager.cxx:33
 AliCDBManager.cxx:34
 AliCDBManager.cxx:35
 AliCDBManager.cxx:36
 AliCDBManager.cxx:37
 AliCDBManager.cxx:38
 AliCDBManager.cxx:39
 AliCDBManager.cxx:40
 AliCDBManager.cxx:41
 AliCDBManager.cxx:42
 AliCDBManager.cxx:43
 AliCDBManager.cxx:44
 AliCDBManager.cxx:45
 AliCDBManager.cxx:46
 AliCDBManager.cxx:47
 AliCDBManager.cxx:48
 AliCDBManager.cxx:49
 AliCDBManager.cxx:50
 AliCDBManager.cxx:51
 AliCDBManager.cxx:52
 AliCDBManager.cxx:53
 AliCDBManager.cxx:54
 AliCDBManager.cxx:55
 AliCDBManager.cxx:56
 AliCDBManager.cxx:57
 AliCDBManager.cxx:58
 AliCDBManager.cxx:59
 AliCDBManager.cxx:60
 AliCDBManager.cxx:61
 AliCDBManager.cxx:62
 AliCDBManager.cxx:63
 AliCDBManager.cxx:64
 AliCDBManager.cxx:65
 AliCDBManager.cxx:66
 AliCDBManager.cxx:67
 AliCDBManager.cxx:68
 AliCDBManager.cxx:69
 AliCDBManager.cxx:70
 AliCDBManager.cxx:71
 AliCDBManager.cxx:72
 AliCDBManager.cxx:73
 AliCDBManager.cxx:74
 AliCDBManager.cxx:75
 AliCDBManager.cxx:76
 AliCDBManager.cxx:77
 AliCDBManager.cxx:78
 AliCDBManager.cxx:79
 AliCDBManager.cxx:80
 AliCDBManager.cxx:81
 AliCDBManager.cxx:82
 AliCDBManager.cxx:83
 AliCDBManager.cxx:84
 AliCDBManager.cxx:85
 AliCDBManager.cxx:86
 AliCDBManager.cxx:87
 AliCDBManager.cxx:88
 AliCDBManager.cxx:89
 AliCDBManager.cxx:90
 AliCDBManager.cxx:91
 AliCDBManager.cxx:92
 AliCDBManager.cxx:93
 AliCDBManager.cxx:94
 AliCDBManager.cxx:95
 AliCDBManager.cxx:96
 AliCDBManager.cxx:97
 AliCDBManager.cxx:98
 AliCDBManager.cxx:99
 AliCDBManager.cxx:100
 AliCDBManager.cxx:101
 AliCDBManager.cxx:102
 AliCDBManager.cxx:103
 AliCDBManager.cxx:104
 AliCDBManager.cxx:105
 AliCDBManager.cxx:106
 AliCDBManager.cxx:107
 AliCDBManager.cxx:108
 AliCDBManager.cxx:109
 AliCDBManager.cxx:110
 AliCDBManager.cxx:111
 AliCDBManager.cxx:112
 AliCDBManager.cxx:113
 AliCDBManager.cxx:114
 AliCDBManager.cxx:115
 AliCDBManager.cxx:116
 AliCDBManager.cxx:117
 AliCDBManager.cxx:118
 AliCDBManager.cxx:119
 AliCDBManager.cxx:120
 AliCDBManager.cxx:121
 AliCDBManager.cxx:122
 AliCDBManager.cxx:123
 AliCDBManager.cxx:124
 AliCDBManager.cxx:125
 AliCDBManager.cxx:126
 AliCDBManager.cxx:127
 AliCDBManager.cxx:128
 AliCDBManager.cxx:129
 AliCDBManager.cxx:130
 AliCDBManager.cxx:131
 AliCDBManager.cxx:132
 AliCDBManager.cxx:133
 AliCDBManager.cxx:134
 AliCDBManager.cxx:135
 AliCDBManager.cxx:136
 AliCDBManager.cxx:137
 AliCDBManager.cxx:138
 AliCDBManager.cxx:139
 AliCDBManager.cxx:140
 AliCDBManager.cxx:141
 AliCDBManager.cxx:142
 AliCDBManager.cxx:143
 AliCDBManager.cxx:144
 AliCDBManager.cxx:145
 AliCDBManager.cxx:146
 AliCDBManager.cxx:147
 AliCDBManager.cxx:148
 AliCDBManager.cxx:149
 AliCDBManager.cxx:150
 AliCDBManager.cxx:151
 AliCDBManager.cxx:152
 AliCDBManager.cxx:153
 AliCDBManager.cxx:154
 AliCDBManager.cxx:155
 AliCDBManager.cxx:156
 AliCDBManager.cxx:157
 AliCDBManager.cxx:158
 AliCDBManager.cxx:159
 AliCDBManager.cxx:160
 AliCDBManager.cxx:161
 AliCDBManager.cxx:162
 AliCDBManager.cxx:163
 AliCDBManager.cxx:164
 AliCDBManager.cxx:165
 AliCDBManager.cxx:166
 AliCDBManager.cxx:167
 AliCDBManager.cxx:168
 AliCDBManager.cxx:169
 AliCDBManager.cxx:170
 AliCDBManager.cxx:171
 AliCDBManager.cxx:172
 AliCDBManager.cxx:173
 AliCDBManager.cxx:174
 AliCDBManager.cxx:175
 AliCDBManager.cxx:176
 AliCDBManager.cxx:177
 AliCDBManager.cxx:178
 AliCDBManager.cxx:179
 AliCDBManager.cxx:180
 AliCDBManager.cxx:181
 AliCDBManager.cxx:182
 AliCDBManager.cxx:183
 AliCDBManager.cxx:184
 AliCDBManager.cxx:185
 AliCDBManager.cxx:186
 AliCDBManager.cxx:187
 AliCDBManager.cxx:188
 AliCDBManager.cxx:189
 AliCDBManager.cxx:190
 AliCDBManager.cxx:191
 AliCDBManager.cxx:192
 AliCDBManager.cxx:193
 AliCDBManager.cxx:194
 AliCDBManager.cxx:195
 AliCDBManager.cxx:196
 AliCDBManager.cxx:197
 AliCDBManager.cxx:198
 AliCDBManager.cxx:199
 AliCDBManager.cxx:200
 AliCDBManager.cxx:201
 AliCDBManager.cxx:202
 AliCDBManager.cxx:203
 AliCDBManager.cxx:204
 AliCDBManager.cxx:205
 AliCDBManager.cxx:206
 AliCDBManager.cxx:207
 AliCDBManager.cxx:208
 AliCDBManager.cxx:209
 AliCDBManager.cxx:210
 AliCDBManager.cxx:211
 AliCDBManager.cxx:212
 AliCDBManager.cxx:213
 AliCDBManager.cxx:214
 AliCDBManager.cxx:215
 AliCDBManager.cxx:216
 AliCDBManager.cxx:217
 AliCDBManager.cxx:218
 AliCDBManager.cxx:219
 AliCDBManager.cxx:220
 AliCDBManager.cxx:221
 AliCDBManager.cxx:222
 AliCDBManager.cxx:223
 AliCDBManager.cxx:224
 AliCDBManager.cxx:225
 AliCDBManager.cxx:226
 AliCDBManager.cxx:227
 AliCDBManager.cxx:228
 AliCDBManager.cxx:229
 AliCDBManager.cxx:230
 AliCDBManager.cxx:231
 AliCDBManager.cxx:232
 AliCDBManager.cxx:233
 AliCDBManager.cxx:234
 AliCDBManager.cxx:235
 AliCDBManager.cxx:236
 AliCDBManager.cxx:237
 AliCDBManager.cxx:238
 AliCDBManager.cxx:239
 AliCDBManager.cxx:240
 AliCDBManager.cxx:241
 AliCDBManager.cxx:242
 AliCDBManager.cxx:243
 AliCDBManager.cxx:244
 AliCDBManager.cxx:245
 AliCDBManager.cxx:246
 AliCDBManager.cxx:247
 AliCDBManager.cxx:248
 AliCDBManager.cxx:249
 AliCDBManager.cxx:250
 AliCDBManager.cxx:251
 AliCDBManager.cxx:252
 AliCDBManager.cxx:253
 AliCDBManager.cxx:254
 AliCDBManager.cxx:255
 AliCDBManager.cxx:256
 AliCDBManager.cxx:257
 AliCDBManager.cxx:258
 AliCDBManager.cxx:259
 AliCDBManager.cxx:260
 AliCDBManager.cxx:261
 AliCDBManager.cxx:262
 AliCDBManager.cxx:263
 AliCDBManager.cxx:264
 AliCDBManager.cxx:265
 AliCDBManager.cxx:266
 AliCDBManager.cxx:267
 AliCDBManager.cxx:268
 AliCDBManager.cxx:269
 AliCDBManager.cxx:270
 AliCDBManager.cxx:271
 AliCDBManager.cxx:272
 AliCDBManager.cxx:273
 AliCDBManager.cxx:274
 AliCDBManager.cxx:275
 AliCDBManager.cxx:276
 AliCDBManager.cxx:277
 AliCDBManager.cxx:278
 AliCDBManager.cxx:279
 AliCDBManager.cxx:280
 AliCDBManager.cxx:281
 AliCDBManager.cxx:282
 AliCDBManager.cxx:283
 AliCDBManager.cxx:284
 AliCDBManager.cxx:285
 AliCDBManager.cxx:286
 AliCDBManager.cxx:287
 AliCDBManager.cxx:288
 AliCDBManager.cxx:289
 AliCDBManager.cxx:290
 AliCDBManager.cxx:291
 AliCDBManager.cxx:292
 AliCDBManager.cxx:293
 AliCDBManager.cxx:294
 AliCDBManager.cxx:295
 AliCDBManager.cxx:296
 AliCDBManager.cxx:297
 AliCDBManager.cxx:298
 AliCDBManager.cxx:299
 AliCDBManager.cxx:300
 AliCDBManager.cxx:301
 AliCDBManager.cxx:302
 AliCDBManager.cxx:303
 AliCDBManager.cxx:304
 AliCDBManager.cxx:305
 AliCDBManager.cxx:306
 AliCDBManager.cxx:307
 AliCDBManager.cxx:308
 AliCDBManager.cxx:309
 AliCDBManager.cxx:310
 AliCDBManager.cxx:311
 AliCDBManager.cxx:312
 AliCDBManager.cxx:313
 AliCDBManager.cxx:314
 AliCDBManager.cxx:315
 AliCDBManager.cxx:316
 AliCDBManager.cxx:317
 AliCDBManager.cxx:318
 AliCDBManager.cxx:319
 AliCDBManager.cxx:320
 AliCDBManager.cxx:321
 AliCDBManager.cxx:322
 AliCDBManager.cxx:323
 AliCDBManager.cxx:324
 AliCDBManager.cxx:325
 AliCDBManager.cxx:326
 AliCDBManager.cxx:327
 AliCDBManager.cxx:328
 AliCDBManager.cxx:329
 AliCDBManager.cxx:330
 AliCDBManager.cxx:331
 AliCDBManager.cxx:332
 AliCDBManager.cxx:333
 AliCDBManager.cxx:334
 AliCDBManager.cxx:335
 AliCDBManager.cxx:336
 AliCDBManager.cxx:337
 AliCDBManager.cxx:338
 AliCDBManager.cxx:339
 AliCDBManager.cxx:340
 AliCDBManager.cxx:341
 AliCDBManager.cxx:342
 AliCDBManager.cxx:343
 AliCDBManager.cxx:344
 AliCDBManager.cxx:345
 AliCDBManager.cxx:346
 AliCDBManager.cxx:347
 AliCDBManager.cxx:348
 AliCDBManager.cxx:349
 AliCDBManager.cxx:350
 AliCDBManager.cxx:351
 AliCDBManager.cxx:352
 AliCDBManager.cxx:353
 AliCDBManager.cxx:354
 AliCDBManager.cxx:355
 AliCDBManager.cxx:356
 AliCDBManager.cxx:357
 AliCDBManager.cxx:358
 AliCDBManager.cxx:359
 AliCDBManager.cxx:360
 AliCDBManager.cxx:361
 AliCDBManager.cxx:362
 AliCDBManager.cxx:363
 AliCDBManager.cxx:364
 AliCDBManager.cxx:365
 AliCDBManager.cxx:366
 AliCDBManager.cxx:367
 AliCDBManager.cxx:368
 AliCDBManager.cxx:369
 AliCDBManager.cxx:370
 AliCDBManager.cxx:371
 AliCDBManager.cxx:372
 AliCDBManager.cxx:373
 AliCDBManager.cxx:374
 AliCDBManager.cxx:375
 AliCDBManager.cxx:376
 AliCDBManager.cxx:377
 AliCDBManager.cxx:378
 AliCDBManager.cxx:379
 AliCDBManager.cxx:380
 AliCDBManager.cxx:381
 AliCDBManager.cxx:382
 AliCDBManager.cxx:383
 AliCDBManager.cxx:384
 AliCDBManager.cxx:385
 AliCDBManager.cxx:386
 AliCDBManager.cxx:387
 AliCDBManager.cxx:388
 AliCDBManager.cxx:389
 AliCDBManager.cxx:390
 AliCDBManager.cxx:391
 AliCDBManager.cxx:392
 AliCDBManager.cxx:393
 AliCDBManager.cxx:394
 AliCDBManager.cxx:395
 AliCDBManager.cxx:396
 AliCDBManager.cxx:397
 AliCDBManager.cxx:398
 AliCDBManager.cxx:399
 AliCDBManager.cxx:400
 AliCDBManager.cxx:401
 AliCDBManager.cxx:402
 AliCDBManager.cxx:403
 AliCDBManager.cxx:404
 AliCDBManager.cxx:405
 AliCDBManager.cxx:406
 AliCDBManager.cxx:407
 AliCDBManager.cxx:408
 AliCDBManager.cxx:409
 AliCDBManager.cxx:410
 AliCDBManager.cxx:411
 AliCDBManager.cxx:412
 AliCDBManager.cxx:413
 AliCDBManager.cxx:414
 AliCDBManager.cxx:415
 AliCDBManager.cxx:416
 AliCDBManager.cxx:417
 AliCDBManager.cxx:418
 AliCDBManager.cxx:419
 AliCDBManager.cxx:420
 AliCDBManager.cxx:421
 AliCDBManager.cxx:422
 AliCDBManager.cxx:423
 AliCDBManager.cxx:424
 AliCDBManager.cxx:425
 AliCDBManager.cxx:426
 AliCDBManager.cxx:427
 AliCDBManager.cxx:428
 AliCDBManager.cxx:429
 AliCDBManager.cxx:430
 AliCDBManager.cxx:431
 AliCDBManager.cxx:432
 AliCDBManager.cxx:433
 AliCDBManager.cxx:434
 AliCDBManager.cxx:435
 AliCDBManager.cxx:436
 AliCDBManager.cxx:437
 AliCDBManager.cxx:438
 AliCDBManager.cxx:439
 AliCDBManager.cxx:440
 AliCDBManager.cxx:441
 AliCDBManager.cxx:442
 AliCDBManager.cxx:443
 AliCDBManager.cxx:444
 AliCDBManager.cxx:445
 AliCDBManager.cxx:446
 AliCDBManager.cxx:447
 AliCDBManager.cxx:448
 AliCDBManager.cxx:449
 AliCDBManager.cxx:450
 AliCDBManager.cxx:451
 AliCDBManager.cxx:452
 AliCDBManager.cxx:453
 AliCDBManager.cxx:454
 AliCDBManager.cxx:455
 AliCDBManager.cxx:456
 AliCDBManager.cxx:457
 AliCDBManager.cxx:458
 AliCDBManager.cxx:459
 AliCDBManager.cxx:460
 AliCDBManager.cxx:461
 AliCDBManager.cxx:462
 AliCDBManager.cxx:463
 AliCDBManager.cxx:464
 AliCDBManager.cxx:465
 AliCDBManager.cxx:466
 AliCDBManager.cxx:467
 AliCDBManager.cxx:468
 AliCDBManager.cxx:469
 AliCDBManager.cxx:470
 AliCDBManager.cxx:471
 AliCDBManager.cxx:472
 AliCDBManager.cxx:473
 AliCDBManager.cxx:474
 AliCDBManager.cxx:475
 AliCDBManager.cxx:476
 AliCDBManager.cxx:477
 AliCDBManager.cxx:478
 AliCDBManager.cxx:479
 AliCDBManager.cxx:480
 AliCDBManager.cxx:481
 AliCDBManager.cxx:482
 AliCDBManager.cxx:483
 AliCDBManager.cxx:484
 AliCDBManager.cxx:485
 AliCDBManager.cxx:486
 AliCDBManager.cxx:487
 AliCDBManager.cxx:488
 AliCDBManager.cxx:489
 AliCDBManager.cxx:490
 AliCDBManager.cxx:491
 AliCDBManager.cxx:492
 AliCDBManager.cxx:493
 AliCDBManager.cxx:494
 AliCDBManager.cxx:495
 AliCDBManager.cxx:496
 AliCDBManager.cxx:497
 AliCDBManager.cxx:498
 AliCDBManager.cxx:499
 AliCDBManager.cxx:500
 AliCDBManager.cxx:501
 AliCDBManager.cxx:502
 AliCDBManager.cxx:503
 AliCDBManager.cxx:504
 AliCDBManager.cxx:505
 AliCDBManager.cxx:506
 AliCDBManager.cxx:507
 AliCDBManager.cxx:508
 AliCDBManager.cxx:509
 AliCDBManager.cxx:510
 AliCDBManager.cxx:511
 AliCDBManager.cxx:512
 AliCDBManager.cxx:513
 AliCDBManager.cxx:514
 AliCDBManager.cxx:515
 AliCDBManager.cxx:516
 AliCDBManager.cxx:517
 AliCDBManager.cxx:518
 AliCDBManager.cxx:519
 AliCDBManager.cxx:520
 AliCDBManager.cxx:521
 AliCDBManager.cxx:522
 AliCDBManager.cxx:523
 AliCDBManager.cxx:524
 AliCDBManager.cxx:525
 AliCDBManager.cxx:526
 AliCDBManager.cxx:527
 AliCDBManager.cxx:528
 AliCDBManager.cxx:529
 AliCDBManager.cxx:530
 AliCDBManager.cxx:531
 AliCDBManager.cxx:532
 AliCDBManager.cxx:533
 AliCDBManager.cxx:534
 AliCDBManager.cxx:535
 AliCDBManager.cxx:536
 AliCDBManager.cxx:537
 AliCDBManager.cxx:538
 AliCDBManager.cxx:539
 AliCDBManager.cxx:540
 AliCDBManager.cxx:541
 AliCDBManager.cxx:542
 AliCDBManager.cxx:543
 AliCDBManager.cxx:544
 AliCDBManager.cxx:545
 AliCDBManager.cxx:546
 AliCDBManager.cxx:547
 AliCDBManager.cxx:548
 AliCDBManager.cxx:549
 AliCDBManager.cxx:550
 AliCDBManager.cxx:551
 AliCDBManager.cxx:552
 AliCDBManager.cxx:553
 AliCDBManager.cxx:554
 AliCDBManager.cxx:555
 AliCDBManager.cxx:556
 AliCDBManager.cxx:557
 AliCDBManager.cxx:558
 AliCDBManager.cxx:559
 AliCDBManager.cxx:560
 AliCDBManager.cxx:561
 AliCDBManager.cxx:562
 AliCDBManager.cxx:563
 AliCDBManager.cxx:564
 AliCDBManager.cxx:565
 AliCDBManager.cxx:566
 AliCDBManager.cxx:567
 AliCDBManager.cxx:568
 AliCDBManager.cxx:569
 AliCDBManager.cxx:570
 AliCDBManager.cxx:571
 AliCDBManager.cxx:572
 AliCDBManager.cxx:573
 AliCDBManager.cxx:574
 AliCDBManager.cxx:575
 AliCDBManager.cxx:576
 AliCDBManager.cxx:577
 AliCDBManager.cxx:578
 AliCDBManager.cxx:579
 AliCDBManager.cxx:580
 AliCDBManager.cxx:581
 AliCDBManager.cxx:582
 AliCDBManager.cxx:583
 AliCDBManager.cxx:584
 AliCDBManager.cxx:585
 AliCDBManager.cxx:586
 AliCDBManager.cxx:587
 AliCDBManager.cxx:588
 AliCDBManager.cxx:589
 AliCDBManager.cxx:590
 AliCDBManager.cxx:591
 AliCDBManager.cxx:592
 AliCDBManager.cxx:593
 AliCDBManager.cxx:594
 AliCDBManager.cxx:595
 AliCDBManager.cxx:596
 AliCDBManager.cxx:597
 AliCDBManager.cxx:598
 AliCDBManager.cxx:599
 AliCDBManager.cxx:600
 AliCDBManager.cxx:601
 AliCDBManager.cxx:602
 AliCDBManager.cxx:603
 AliCDBManager.cxx:604
 AliCDBManager.cxx:605
 AliCDBManager.cxx:606
 AliCDBManager.cxx:607
 AliCDBManager.cxx:608
 AliCDBManager.cxx:609
 AliCDBManager.cxx:610
 AliCDBManager.cxx:611
 AliCDBManager.cxx:612
 AliCDBManager.cxx:613
 AliCDBManager.cxx:614
 AliCDBManager.cxx:615
 AliCDBManager.cxx:616
 AliCDBManager.cxx:617
 AliCDBManager.cxx:618
 AliCDBManager.cxx:619
 AliCDBManager.cxx:620
 AliCDBManager.cxx:621
 AliCDBManager.cxx:622
 AliCDBManager.cxx:623
 AliCDBManager.cxx:624
 AliCDBManager.cxx:625
 AliCDBManager.cxx:626
 AliCDBManager.cxx:627
 AliCDBManager.cxx:628
 AliCDBManager.cxx:629
 AliCDBManager.cxx:630
 AliCDBManager.cxx:631
 AliCDBManager.cxx:632
 AliCDBManager.cxx:633
 AliCDBManager.cxx:634
 AliCDBManager.cxx:635
 AliCDBManager.cxx:636
 AliCDBManager.cxx:637
 AliCDBManager.cxx:638
 AliCDBManager.cxx:639
 AliCDBManager.cxx:640
 AliCDBManager.cxx:641
 AliCDBManager.cxx:642
 AliCDBManager.cxx:643
 AliCDBManager.cxx:644
 AliCDBManager.cxx:645
 AliCDBManager.cxx:646
 AliCDBManager.cxx:647
 AliCDBManager.cxx:648
 AliCDBManager.cxx:649
 AliCDBManager.cxx:650
 AliCDBManager.cxx:651
 AliCDBManager.cxx:652
 AliCDBManager.cxx:653
 AliCDBManager.cxx:654
 AliCDBManager.cxx:655
 AliCDBManager.cxx:656
 AliCDBManager.cxx:657
 AliCDBManager.cxx:658
 AliCDBManager.cxx:659
 AliCDBManager.cxx:660
 AliCDBManager.cxx:661
 AliCDBManager.cxx:662
 AliCDBManager.cxx:663
 AliCDBManager.cxx:664
 AliCDBManager.cxx:665
 AliCDBManager.cxx:666
 AliCDBManager.cxx:667
 AliCDBManager.cxx:668
 AliCDBManager.cxx:669
 AliCDBManager.cxx:670
 AliCDBManager.cxx:671
 AliCDBManager.cxx:672
 AliCDBManager.cxx:673
 AliCDBManager.cxx:674
 AliCDBManager.cxx:675
 AliCDBManager.cxx:676
 AliCDBManager.cxx:677
 AliCDBManager.cxx:678
 AliCDBManager.cxx:679
 AliCDBManager.cxx:680
 AliCDBManager.cxx:681
 AliCDBManager.cxx:682
 AliCDBManager.cxx:683
 AliCDBManager.cxx:684
 AliCDBManager.cxx:685
 AliCDBManager.cxx:686
 AliCDBManager.cxx:687
 AliCDBManager.cxx:688
 AliCDBManager.cxx:689
 AliCDBManager.cxx:690
 AliCDBManager.cxx:691
 AliCDBManager.cxx:692
 AliCDBManager.cxx:693
 AliCDBManager.cxx:694
 AliCDBManager.cxx:695
 AliCDBManager.cxx:696
 AliCDBManager.cxx:697
 AliCDBManager.cxx:698
 AliCDBManager.cxx:699
 AliCDBManager.cxx:700
 AliCDBManager.cxx:701
 AliCDBManager.cxx:702
 AliCDBManager.cxx:703
 AliCDBManager.cxx:704
 AliCDBManager.cxx:705
 AliCDBManager.cxx:706
 AliCDBManager.cxx:707
 AliCDBManager.cxx:708
 AliCDBManager.cxx:709
 AliCDBManager.cxx:710
 AliCDBManager.cxx:711
 AliCDBManager.cxx:712
 AliCDBManager.cxx:713
 AliCDBManager.cxx:714
 AliCDBManager.cxx:715
 AliCDBManager.cxx:716
 AliCDBManager.cxx:717
 AliCDBManager.cxx:718
 AliCDBManager.cxx:719
 AliCDBManager.cxx:720
 AliCDBManager.cxx:721
 AliCDBManager.cxx:722
 AliCDBManager.cxx:723
 AliCDBManager.cxx:724
 AliCDBManager.cxx:725
 AliCDBManager.cxx:726
 AliCDBManager.cxx:727
 AliCDBManager.cxx:728
 AliCDBManager.cxx:729
 AliCDBManager.cxx:730
 AliCDBManager.cxx:731
 AliCDBManager.cxx:732
 AliCDBManager.cxx:733
 AliCDBManager.cxx:734
 AliCDBManager.cxx:735
 AliCDBManager.cxx:736
 AliCDBManager.cxx:737
 AliCDBManager.cxx:738
 AliCDBManager.cxx:739
 AliCDBManager.cxx:740
 AliCDBManager.cxx:741
 AliCDBManager.cxx:742
 AliCDBManager.cxx:743
 AliCDBManager.cxx:744
 AliCDBManager.cxx:745
 AliCDBManager.cxx:746
 AliCDBManager.cxx:747
 AliCDBManager.cxx:748
 AliCDBManager.cxx:749
 AliCDBManager.cxx:750
 AliCDBManager.cxx:751
 AliCDBManager.cxx:752
 AliCDBManager.cxx:753
 AliCDBManager.cxx:754
 AliCDBManager.cxx:755
 AliCDBManager.cxx:756
 AliCDBManager.cxx:757
 AliCDBManager.cxx:758
 AliCDBManager.cxx:759
 AliCDBManager.cxx:760
 AliCDBManager.cxx:761
 AliCDBManager.cxx:762
 AliCDBManager.cxx:763
 AliCDBManager.cxx:764
 AliCDBManager.cxx:765
 AliCDBManager.cxx:766
 AliCDBManager.cxx:767
 AliCDBManager.cxx:768
 AliCDBManager.cxx:769
 AliCDBManager.cxx:770
 AliCDBManager.cxx:771
 AliCDBManager.cxx:772
 AliCDBManager.cxx:773
 AliCDBManager.cxx:774
 AliCDBManager.cxx:775
 AliCDBManager.cxx:776
 AliCDBManager.cxx:777
 AliCDBManager.cxx:778
 AliCDBManager.cxx:779
 AliCDBManager.cxx:780
 AliCDBManager.cxx:781
 AliCDBManager.cxx:782
 AliCDBManager.cxx:783
 AliCDBManager.cxx:784
 AliCDBManager.cxx:785
 AliCDBManager.cxx:786
 AliCDBManager.cxx:787
 AliCDBManager.cxx:788
 AliCDBManager.cxx:789
 AliCDBManager.cxx:790
 AliCDBManager.cxx:791
 AliCDBManager.cxx:792
 AliCDBManager.cxx:793
 AliCDBManager.cxx:794
 AliCDBManager.cxx:795
 AliCDBManager.cxx:796
 AliCDBManager.cxx:797
 AliCDBManager.cxx:798
 AliCDBManager.cxx:799
 AliCDBManager.cxx:800
 AliCDBManager.cxx:801
 AliCDBManager.cxx:802
 AliCDBManager.cxx:803
 AliCDBManager.cxx:804
 AliCDBManager.cxx:805
 AliCDBManager.cxx:806
 AliCDBManager.cxx:807
 AliCDBManager.cxx:808
 AliCDBManager.cxx:809
 AliCDBManager.cxx:810
 AliCDBManager.cxx:811
 AliCDBManager.cxx:812
 AliCDBManager.cxx:813
 AliCDBManager.cxx:814
 AliCDBManager.cxx:815
 AliCDBManager.cxx:816
 AliCDBManager.cxx:817
 AliCDBManager.cxx:818
 AliCDBManager.cxx:819
 AliCDBManager.cxx:820
 AliCDBManager.cxx:821
 AliCDBManager.cxx:822
 AliCDBManager.cxx:823
 AliCDBManager.cxx:824
 AliCDBManager.cxx:825
 AliCDBManager.cxx:826
 AliCDBManager.cxx:827
 AliCDBManager.cxx:828
 AliCDBManager.cxx:829
 AliCDBManager.cxx:830
 AliCDBManager.cxx:831
 AliCDBManager.cxx:832
 AliCDBManager.cxx:833
 AliCDBManager.cxx:834
 AliCDBManager.cxx:835
 AliCDBManager.cxx:836
 AliCDBManager.cxx:837
 AliCDBManager.cxx:838
 AliCDBManager.cxx:839
 AliCDBManager.cxx:840
 AliCDBManager.cxx:841
 AliCDBManager.cxx:842
 AliCDBManager.cxx:843
 AliCDBManager.cxx:844
 AliCDBManager.cxx:845
 AliCDBManager.cxx:846
 AliCDBManager.cxx:847
 AliCDBManager.cxx:848
 AliCDBManager.cxx:849
 AliCDBManager.cxx:850
 AliCDBManager.cxx:851
 AliCDBManager.cxx:852
 AliCDBManager.cxx:853
 AliCDBManager.cxx:854
 AliCDBManager.cxx:855
 AliCDBManager.cxx:856
 AliCDBManager.cxx:857
 AliCDBManager.cxx:858
 AliCDBManager.cxx:859
 AliCDBManager.cxx:860
 AliCDBManager.cxx:861
 AliCDBManager.cxx:862
 AliCDBManager.cxx:863
 AliCDBManager.cxx:864
 AliCDBManager.cxx:865
 AliCDBManager.cxx:866
 AliCDBManager.cxx:867
 AliCDBManager.cxx:868
 AliCDBManager.cxx:869
 AliCDBManager.cxx:870
 AliCDBManager.cxx:871
 AliCDBManager.cxx:872
 AliCDBManager.cxx:873
 AliCDBManager.cxx:874
 AliCDBManager.cxx:875
 AliCDBManager.cxx:876
 AliCDBManager.cxx:877
 AliCDBManager.cxx:878
 AliCDBManager.cxx:879
 AliCDBManager.cxx:880
 AliCDBManager.cxx:881
 AliCDBManager.cxx:882
 AliCDBManager.cxx:883
 AliCDBManager.cxx:884
 AliCDBManager.cxx:885
 AliCDBManager.cxx:886
 AliCDBManager.cxx:887
 AliCDBManager.cxx:888
 AliCDBManager.cxx:889
 AliCDBManager.cxx:890
 AliCDBManager.cxx:891
 AliCDBManager.cxx:892
 AliCDBManager.cxx:893
 AliCDBManager.cxx:894
 AliCDBManager.cxx:895
 AliCDBManager.cxx:896
 AliCDBManager.cxx:897
 AliCDBManager.cxx:898
 AliCDBManager.cxx:899
 AliCDBManager.cxx:900
 AliCDBManager.cxx:901
 AliCDBManager.cxx:902
 AliCDBManager.cxx:903
 AliCDBManager.cxx:904
 AliCDBManager.cxx:905
 AliCDBManager.cxx:906
 AliCDBManager.cxx:907
 AliCDBManager.cxx:908
 AliCDBManager.cxx:909
 AliCDBManager.cxx:910
 AliCDBManager.cxx:911
 AliCDBManager.cxx:912
 AliCDBManager.cxx:913
 AliCDBManager.cxx:914
 AliCDBManager.cxx:915
 AliCDBManager.cxx:916
 AliCDBManager.cxx:917
 AliCDBManager.cxx:918
 AliCDBManager.cxx:919
 AliCDBManager.cxx:920
 AliCDBManager.cxx:921
 AliCDBManager.cxx:922
 AliCDBManager.cxx:923
 AliCDBManager.cxx:924
 AliCDBManager.cxx:925
 AliCDBManager.cxx:926
 AliCDBManager.cxx:927
 AliCDBManager.cxx:928
 AliCDBManager.cxx:929
 AliCDBManager.cxx:930
 AliCDBManager.cxx:931
 AliCDBManager.cxx:932
 AliCDBManager.cxx:933
 AliCDBManager.cxx:934
 AliCDBManager.cxx:935
 AliCDBManager.cxx:936
 AliCDBManager.cxx:937
 AliCDBManager.cxx:938
 AliCDBManager.cxx:939
 AliCDBManager.cxx:940
 AliCDBManager.cxx:941
 AliCDBManager.cxx:942
 AliCDBManager.cxx:943
 AliCDBManager.cxx:944
 AliCDBManager.cxx:945
 AliCDBManager.cxx:946
 AliCDBManager.cxx:947
 AliCDBManager.cxx:948
 AliCDBManager.cxx:949
 AliCDBManager.cxx:950
 AliCDBManager.cxx:951
 AliCDBManager.cxx:952
 AliCDBManager.cxx:953
 AliCDBManager.cxx:954
 AliCDBManager.cxx:955
 AliCDBManager.cxx:956
 AliCDBManager.cxx:957
 AliCDBManager.cxx:958
 AliCDBManager.cxx:959
 AliCDBManager.cxx:960
 AliCDBManager.cxx:961
 AliCDBManager.cxx:962
 AliCDBManager.cxx:963
 AliCDBManager.cxx:964
 AliCDBManager.cxx:965
 AliCDBManager.cxx:966
 AliCDBManager.cxx:967
 AliCDBManager.cxx:968
 AliCDBManager.cxx:969
 AliCDBManager.cxx:970
 AliCDBManager.cxx:971
 AliCDBManager.cxx:972
 AliCDBManager.cxx:973
 AliCDBManager.cxx:974
 AliCDBManager.cxx:975
 AliCDBManager.cxx:976
 AliCDBManager.cxx:977
 AliCDBManager.cxx:978
 AliCDBManager.cxx:979
 AliCDBManager.cxx:980
 AliCDBManager.cxx:981
 AliCDBManager.cxx:982
 AliCDBManager.cxx:983
 AliCDBManager.cxx:984
 AliCDBManager.cxx:985
 AliCDBManager.cxx:986
 AliCDBManager.cxx:987
 AliCDBManager.cxx:988
 AliCDBManager.cxx:989
 AliCDBManager.cxx:990
 AliCDBManager.cxx:991
 AliCDBManager.cxx:992
 AliCDBManager.cxx:993
 AliCDBManager.cxx:994
 AliCDBManager.cxx:995
 AliCDBManager.cxx:996
 AliCDBManager.cxx:997
 AliCDBManager.cxx:998
 AliCDBManager.cxx:999
 AliCDBManager.cxx:1000
 AliCDBManager.cxx:1001
 AliCDBManager.cxx:1002
 AliCDBManager.cxx:1003
 AliCDBManager.cxx:1004
 AliCDBManager.cxx:1005
 AliCDBManager.cxx:1006
 AliCDBManager.cxx:1007
 AliCDBManager.cxx:1008
 AliCDBManager.cxx:1009
 AliCDBManager.cxx:1010
 AliCDBManager.cxx:1011
 AliCDBManager.cxx:1012
 AliCDBManager.cxx:1013
 AliCDBManager.cxx:1014
 AliCDBManager.cxx:1015
 AliCDBManager.cxx:1016
 AliCDBManager.cxx:1017
 AliCDBManager.cxx:1018
 AliCDBManager.cxx:1019
 AliCDBManager.cxx:1020
 AliCDBManager.cxx:1021
 AliCDBManager.cxx:1022
 AliCDBManager.cxx:1023
 AliCDBManager.cxx:1024
 AliCDBManager.cxx:1025
 AliCDBManager.cxx:1026
 AliCDBManager.cxx:1027
 AliCDBManager.cxx:1028
 AliCDBManager.cxx:1029
 AliCDBManager.cxx:1030
 AliCDBManager.cxx:1031
 AliCDBManager.cxx:1032
 AliCDBManager.cxx:1033
 AliCDBManager.cxx:1034
 AliCDBManager.cxx:1035
 AliCDBManager.cxx:1036
 AliCDBManager.cxx:1037
 AliCDBManager.cxx:1038
 AliCDBManager.cxx:1039
 AliCDBManager.cxx:1040
 AliCDBManager.cxx:1041
 AliCDBManager.cxx:1042
 AliCDBManager.cxx:1043
 AliCDBManager.cxx:1044
 AliCDBManager.cxx:1045
 AliCDBManager.cxx:1046
 AliCDBManager.cxx:1047
 AliCDBManager.cxx:1048
 AliCDBManager.cxx:1049
 AliCDBManager.cxx:1050
 AliCDBManager.cxx:1051
 AliCDBManager.cxx:1052
 AliCDBManager.cxx:1053
 AliCDBManager.cxx:1054
 AliCDBManager.cxx:1055
 AliCDBManager.cxx:1056
 AliCDBManager.cxx:1057
 AliCDBManager.cxx:1058
 AliCDBManager.cxx:1059
 AliCDBManager.cxx:1060
 AliCDBManager.cxx:1061
 AliCDBManager.cxx:1062
 AliCDBManager.cxx:1063
 AliCDBManager.cxx:1064
 AliCDBManager.cxx:1065
 AliCDBManager.cxx:1066
 AliCDBManager.cxx:1067
 AliCDBManager.cxx:1068
 AliCDBManager.cxx:1069
 AliCDBManager.cxx:1070
 AliCDBManager.cxx:1071
 AliCDBManager.cxx:1072
 AliCDBManager.cxx:1073
 AliCDBManager.cxx:1074
 AliCDBManager.cxx:1075
 AliCDBManager.cxx:1076
 AliCDBManager.cxx:1077
 AliCDBManager.cxx:1078
 AliCDBManager.cxx:1079
 AliCDBManager.cxx:1080
 AliCDBManager.cxx:1081
 AliCDBManager.cxx:1082
 AliCDBManager.cxx:1083
 AliCDBManager.cxx:1084
 AliCDBManager.cxx:1085
 AliCDBManager.cxx:1086
 AliCDBManager.cxx:1087
 AliCDBManager.cxx:1088
 AliCDBManager.cxx:1089
 AliCDBManager.cxx:1090
 AliCDBManager.cxx:1091
 AliCDBManager.cxx:1092
 AliCDBManager.cxx:1093
 AliCDBManager.cxx:1094
 AliCDBManager.cxx:1095
 AliCDBManager.cxx:1096
 AliCDBManager.cxx:1097
 AliCDBManager.cxx:1098
 AliCDBManager.cxx:1099
 AliCDBManager.cxx:1100
 AliCDBManager.cxx:1101
 AliCDBManager.cxx:1102
 AliCDBManager.cxx:1103
 AliCDBManager.cxx:1104
 AliCDBManager.cxx:1105
 AliCDBManager.cxx:1106
 AliCDBManager.cxx:1107
 AliCDBManager.cxx:1108
 AliCDBManager.cxx:1109
 AliCDBManager.cxx:1110
 AliCDBManager.cxx:1111
 AliCDBManager.cxx:1112
 AliCDBManager.cxx:1113
 AliCDBManager.cxx:1114
 AliCDBManager.cxx:1115
 AliCDBManager.cxx:1116
 AliCDBManager.cxx:1117
 AliCDBManager.cxx:1118
 AliCDBManager.cxx:1119
 AliCDBManager.cxx:1120
 AliCDBManager.cxx:1121
 AliCDBManager.cxx:1122
 AliCDBManager.cxx:1123
 AliCDBManager.cxx:1124
 AliCDBManager.cxx:1125
 AliCDBManager.cxx:1126
 AliCDBManager.cxx:1127
 AliCDBManager.cxx:1128
 AliCDBManager.cxx:1129
 AliCDBManager.cxx:1130
 AliCDBManager.cxx:1131
 AliCDBManager.cxx:1132
 AliCDBManager.cxx:1133
 AliCDBManager.cxx:1134
 AliCDBManager.cxx:1135
 AliCDBManager.cxx:1136
 AliCDBManager.cxx:1137
 AliCDBManager.cxx:1138
 AliCDBManager.cxx:1139
 AliCDBManager.cxx:1140
 AliCDBManager.cxx:1141
 AliCDBManager.cxx:1142
 AliCDBManager.cxx:1143
 AliCDBManager.cxx:1144
 AliCDBManager.cxx:1145
 AliCDBManager.cxx:1146
 AliCDBManager.cxx:1147
 AliCDBManager.cxx:1148
 AliCDBManager.cxx:1149
 AliCDBManager.cxx:1150
 AliCDBManager.cxx:1151
 AliCDBManager.cxx:1152
 AliCDBManager.cxx:1153
 AliCDBManager.cxx:1154
 AliCDBManager.cxx:1155
 AliCDBManager.cxx:1156
 AliCDBManager.cxx:1157
 AliCDBManager.cxx:1158
 AliCDBManager.cxx:1159
 AliCDBManager.cxx:1160
 AliCDBManager.cxx:1161
 AliCDBManager.cxx:1162
 AliCDBManager.cxx:1163
 AliCDBManager.cxx:1164
 AliCDBManager.cxx:1165
 AliCDBManager.cxx:1166
 AliCDBManager.cxx:1167
 AliCDBManager.cxx:1168
 AliCDBManager.cxx:1169
 AliCDBManager.cxx:1170
 AliCDBManager.cxx:1171
 AliCDBManager.cxx:1172
 AliCDBManager.cxx:1173
 AliCDBManager.cxx:1174
 AliCDBManager.cxx:1175
 AliCDBManager.cxx:1176
 AliCDBManager.cxx:1177
 AliCDBManager.cxx:1178
 AliCDBManager.cxx:1179
 AliCDBManager.cxx:1180
 AliCDBManager.cxx:1181
 AliCDBManager.cxx:1182
 AliCDBManager.cxx:1183
 AliCDBManager.cxx:1184
 AliCDBManager.cxx:1185
 AliCDBManager.cxx:1186
 AliCDBManager.cxx:1187
 AliCDBManager.cxx:1188
 AliCDBManager.cxx:1189
 AliCDBManager.cxx:1190
 AliCDBManager.cxx:1191
 AliCDBManager.cxx:1192
 AliCDBManager.cxx:1193
 AliCDBManager.cxx:1194
 AliCDBManager.cxx:1195
 AliCDBManager.cxx:1196
 AliCDBManager.cxx:1197
 AliCDBManager.cxx:1198
 AliCDBManager.cxx:1199
 AliCDBManager.cxx:1200
 AliCDBManager.cxx:1201
 AliCDBManager.cxx:1202
 AliCDBManager.cxx:1203
 AliCDBManager.cxx:1204
 AliCDBManager.cxx:1205
 AliCDBManager.cxx:1206
 AliCDBManager.cxx:1207
 AliCDBManager.cxx:1208
 AliCDBManager.cxx:1209
 AliCDBManager.cxx:1210
 AliCDBManager.cxx:1211
 AliCDBManager.cxx:1212
 AliCDBManager.cxx:1213
 AliCDBManager.cxx:1214
 AliCDBManager.cxx:1215
 AliCDBManager.cxx:1216
 AliCDBManager.cxx:1217
 AliCDBManager.cxx:1218
 AliCDBManager.cxx:1219
 AliCDBManager.cxx:1220
 AliCDBManager.cxx:1221
 AliCDBManager.cxx:1222
 AliCDBManager.cxx:1223
 AliCDBManager.cxx:1224
 AliCDBManager.cxx:1225
 AliCDBManager.cxx:1226
 AliCDBManager.cxx:1227
 AliCDBManager.cxx:1228
 AliCDBManager.cxx:1229
 AliCDBManager.cxx:1230
 AliCDBManager.cxx:1231
 AliCDBManager.cxx:1232
 AliCDBManager.cxx:1233
 AliCDBManager.cxx:1234
 AliCDBManager.cxx:1235
 AliCDBManager.cxx:1236
 AliCDBManager.cxx:1237
 AliCDBManager.cxx:1238
 AliCDBManager.cxx:1239
 AliCDBManager.cxx:1240
 AliCDBManager.cxx:1241
 AliCDBManager.cxx:1242
 AliCDBManager.cxx:1243
 AliCDBManager.cxx:1244
 AliCDBManager.cxx:1245
 AliCDBManager.cxx:1246
 AliCDBManager.cxx:1247
 AliCDBManager.cxx:1248
 AliCDBManager.cxx:1249
 AliCDBManager.cxx:1250
 AliCDBManager.cxx:1251
 AliCDBManager.cxx:1252
 AliCDBManager.cxx:1253
 AliCDBManager.cxx:1254
 AliCDBManager.cxx:1255
 AliCDBManager.cxx:1256
 AliCDBManager.cxx:1257
 AliCDBManager.cxx:1258
 AliCDBManager.cxx:1259
 AliCDBManager.cxx:1260
 AliCDBManager.cxx:1261
 AliCDBManager.cxx:1262
 AliCDBManager.cxx:1263
 AliCDBManager.cxx:1264
 AliCDBManager.cxx:1265
 AliCDBManager.cxx:1266
 AliCDBManager.cxx:1267
 AliCDBManager.cxx:1268
 AliCDBManager.cxx:1269
 AliCDBManager.cxx:1270
 AliCDBManager.cxx:1271
 AliCDBManager.cxx:1272
 AliCDBManager.cxx:1273
 AliCDBManager.cxx:1274
 AliCDBManager.cxx:1275
 AliCDBManager.cxx:1276
 AliCDBManager.cxx:1277
 AliCDBManager.cxx:1278
 AliCDBManager.cxx:1279
 AliCDBManager.cxx:1280
 AliCDBManager.cxx:1281
 AliCDBManager.cxx:1282
 AliCDBManager.cxx:1283
 AliCDBManager.cxx:1284
 AliCDBManager.cxx:1285
 AliCDBManager.cxx:1286
 AliCDBManager.cxx:1287
 AliCDBManager.cxx:1288
 AliCDBManager.cxx:1289
 AliCDBManager.cxx:1290
 AliCDBManager.cxx:1291
 AliCDBManager.cxx:1292
 AliCDBManager.cxx:1293
 AliCDBManager.cxx:1294
 AliCDBManager.cxx:1295
 AliCDBManager.cxx:1296
 AliCDBManager.cxx:1297
 AliCDBManager.cxx:1298
 AliCDBManager.cxx:1299
 AliCDBManager.cxx:1300
 AliCDBManager.cxx:1301
 AliCDBManager.cxx:1302
 AliCDBManager.cxx:1303
 AliCDBManager.cxx:1304
 AliCDBManager.cxx:1305
 AliCDBManager.cxx:1306
 AliCDBManager.cxx:1307
 AliCDBManager.cxx:1308
 AliCDBManager.cxx:1309
 AliCDBManager.cxx:1310
 AliCDBManager.cxx:1311
 AliCDBManager.cxx:1312
 AliCDBManager.cxx:1313
 AliCDBManager.cxx:1314
 AliCDBManager.cxx:1315
 AliCDBManager.cxx:1316
 AliCDBManager.cxx:1317
 AliCDBManager.cxx:1318
 AliCDBManager.cxx:1319
 AliCDBManager.cxx:1320
 AliCDBManager.cxx:1321
 AliCDBManager.cxx:1322
 AliCDBManager.cxx:1323
 AliCDBManager.cxx:1324
 AliCDBManager.cxx:1325
 AliCDBManager.cxx:1326
 AliCDBManager.cxx:1327
 AliCDBManager.cxx:1328
 AliCDBManager.cxx:1329
 AliCDBManager.cxx:1330
 AliCDBManager.cxx:1331
 AliCDBManager.cxx:1332
 AliCDBManager.cxx:1333
 AliCDBManager.cxx:1334
 AliCDBManager.cxx:1335
 AliCDBManager.cxx:1336
 AliCDBManager.cxx:1337
 AliCDBManager.cxx:1338
 AliCDBManager.cxx:1339
 AliCDBManager.cxx:1340
 AliCDBManager.cxx:1341
 AliCDBManager.cxx:1342
 AliCDBManager.cxx:1343
 AliCDBManager.cxx:1344
 AliCDBManager.cxx:1345
 AliCDBManager.cxx:1346
 AliCDBManager.cxx:1347
 AliCDBManager.cxx:1348
 AliCDBManager.cxx:1349
 AliCDBManager.cxx:1350
 AliCDBManager.cxx:1351
 AliCDBManager.cxx:1352
 AliCDBManager.cxx:1353
 AliCDBManager.cxx:1354
 AliCDBManager.cxx:1355
 AliCDBManager.cxx:1356
 AliCDBManager.cxx:1357
 AliCDBManager.cxx:1358
 AliCDBManager.cxx:1359
 AliCDBManager.cxx:1360
 AliCDBManager.cxx:1361
 AliCDBManager.cxx:1362
 AliCDBManager.cxx:1363
 AliCDBManager.cxx:1364
 AliCDBManager.cxx:1365
 AliCDBManager.cxx:1366
 AliCDBManager.cxx:1367
 AliCDBManager.cxx:1368
 AliCDBManager.cxx:1369
 AliCDBManager.cxx:1370
 AliCDBManager.cxx:1371
 AliCDBManager.cxx:1372
 AliCDBManager.cxx:1373
 AliCDBManager.cxx:1374
 AliCDBManager.cxx:1375
 AliCDBManager.cxx:1376
 AliCDBManager.cxx:1377
 AliCDBManager.cxx:1378
 AliCDBManager.cxx:1379
 AliCDBManager.cxx:1380
 AliCDBManager.cxx:1381
 AliCDBManager.cxx:1382
 AliCDBManager.cxx:1383
 AliCDBManager.cxx:1384
 AliCDBManager.cxx:1385
 AliCDBManager.cxx:1386
 AliCDBManager.cxx:1387
 AliCDBManager.cxx:1388
 AliCDBManager.cxx:1389
 AliCDBManager.cxx:1390
 AliCDBManager.cxx:1391
 AliCDBManager.cxx:1392
 AliCDBManager.cxx:1393
 AliCDBManager.cxx:1394
 AliCDBManager.cxx:1395
 AliCDBManager.cxx:1396
 AliCDBManager.cxx:1397
 AliCDBManager.cxx:1398
 AliCDBManager.cxx:1399
 AliCDBManager.cxx:1400
 AliCDBManager.cxx:1401
 AliCDBManager.cxx:1402
 AliCDBManager.cxx:1403
 AliCDBManager.cxx:1404
 AliCDBManager.cxx:1405
 AliCDBManager.cxx:1406
 AliCDBManager.cxx:1407
 AliCDBManager.cxx:1408
 AliCDBManager.cxx:1409
 AliCDBManager.cxx:1410
 AliCDBManager.cxx:1411
 AliCDBManager.cxx:1412
 AliCDBManager.cxx:1413
 AliCDBManager.cxx:1414
 AliCDBManager.cxx:1415
 AliCDBManager.cxx:1416
 AliCDBManager.cxx:1417
 AliCDBManager.cxx:1418
 AliCDBManager.cxx:1419
 AliCDBManager.cxx:1420
 AliCDBManager.cxx:1421
 AliCDBManager.cxx:1422
 AliCDBManager.cxx:1423
 AliCDBManager.cxx:1424
 AliCDBManager.cxx:1425
 AliCDBManager.cxx:1426
 AliCDBManager.cxx:1427
 AliCDBManager.cxx:1428
 AliCDBManager.cxx:1429
 AliCDBManager.cxx:1430
 AliCDBManager.cxx:1431
 AliCDBManager.cxx:1432
 AliCDBManager.cxx:1433
 AliCDBManager.cxx:1434
 AliCDBManager.cxx:1435
 AliCDBManager.cxx:1436
 AliCDBManager.cxx:1437
 AliCDBManager.cxx:1438
 AliCDBManager.cxx:1439
 AliCDBManager.cxx:1440
 AliCDBManager.cxx:1441
 AliCDBManager.cxx:1442
 AliCDBManager.cxx:1443
 AliCDBManager.cxx:1444
 AliCDBManager.cxx:1445
 AliCDBManager.cxx:1446
 AliCDBManager.cxx:1447
 AliCDBManager.cxx:1448
 AliCDBManager.cxx:1449
 AliCDBManager.cxx:1450
 AliCDBManager.cxx:1451
 AliCDBManager.cxx:1452
 AliCDBManager.cxx:1453
 AliCDBManager.cxx:1454
 AliCDBManager.cxx:1455
 AliCDBManager.cxx:1456
 AliCDBManager.cxx:1457
 AliCDBManager.cxx:1458
 AliCDBManager.cxx:1459
 AliCDBManager.cxx:1460
 AliCDBManager.cxx:1461
 AliCDBManager.cxx:1462
 AliCDBManager.cxx:1463
 AliCDBManager.cxx:1464
 AliCDBManager.cxx:1465
 AliCDBManager.cxx:1466
 AliCDBManager.cxx:1467
 AliCDBManager.cxx:1468
 AliCDBManager.cxx:1469
 AliCDBManager.cxx:1470
 AliCDBManager.cxx:1471
 AliCDBManager.cxx:1472
 AliCDBManager.cxx:1473
 AliCDBManager.cxx:1474
 AliCDBManager.cxx:1475
 AliCDBManager.cxx:1476
 AliCDBManager.cxx:1477
 AliCDBManager.cxx:1478
 AliCDBManager.cxx:1479
 AliCDBManager.cxx:1480
 AliCDBManager.cxx:1481
 AliCDBManager.cxx:1482
 AliCDBManager.cxx:1483
 AliCDBManager.cxx:1484
 AliCDBManager.cxx:1485
 AliCDBManager.cxx:1486
 AliCDBManager.cxx:1487
 AliCDBManager.cxx:1488
 AliCDBManager.cxx:1489
 AliCDBManager.cxx:1490
 AliCDBManager.cxx:1491
 AliCDBManager.cxx:1492
 AliCDBManager.cxx:1493
 AliCDBManager.cxx:1494
 AliCDBManager.cxx:1495
 AliCDBManager.cxx:1496
 AliCDBManager.cxx:1497
 AliCDBManager.cxx:1498
 AliCDBManager.cxx:1499
 AliCDBManager.cxx:1500
 AliCDBManager.cxx:1501
 AliCDBManager.cxx:1502
 AliCDBManager.cxx:1503
 AliCDBManager.cxx:1504
 AliCDBManager.cxx:1505
 AliCDBManager.cxx:1506
 AliCDBManager.cxx:1507
 AliCDBManager.cxx:1508
 AliCDBManager.cxx:1509
 AliCDBManager.cxx:1510
 AliCDBManager.cxx:1511
 AliCDBManager.cxx:1512
 AliCDBManager.cxx:1513
 AliCDBManager.cxx:1514
 AliCDBManager.cxx:1515
 AliCDBManager.cxx:1516
 AliCDBManager.cxx:1517
 AliCDBManager.cxx:1518
 AliCDBManager.cxx:1519
 AliCDBManager.cxx:1520
 AliCDBManager.cxx:1521
 AliCDBManager.cxx:1522
 AliCDBManager.cxx:1523
 AliCDBManager.cxx:1524
 AliCDBManager.cxx:1525
 AliCDBManager.cxx:1526
 AliCDBManager.cxx:1527
 AliCDBManager.cxx:1528
 AliCDBManager.cxx:1529
 AliCDBManager.cxx:1530
 AliCDBManager.cxx:1531
 AliCDBManager.cxx:1532
 AliCDBManager.cxx:1533
 AliCDBManager.cxx:1534
 AliCDBManager.cxx:1535
 AliCDBManager.cxx:1536
 AliCDBManager.cxx:1537
 AliCDBManager.cxx:1538
 AliCDBManager.cxx:1539
 AliCDBManager.cxx:1540
 AliCDBManager.cxx:1541
 AliCDBManager.cxx:1542
 AliCDBManager.cxx:1543
 AliCDBManager.cxx:1544
 AliCDBManager.cxx:1545
 AliCDBManager.cxx:1546
 AliCDBManager.cxx:1547
 AliCDBManager.cxx:1548
 AliCDBManager.cxx:1549
 AliCDBManager.cxx:1550
 AliCDBManager.cxx:1551
 AliCDBManager.cxx:1552
 AliCDBManager.cxx:1553
 AliCDBManager.cxx:1554
 AliCDBManager.cxx:1555
 AliCDBManager.cxx:1556
 AliCDBManager.cxx:1557
 AliCDBManager.cxx:1558
 AliCDBManager.cxx:1559
 AliCDBManager.cxx:1560
 AliCDBManager.cxx:1561
 AliCDBManager.cxx:1562
 AliCDBManager.cxx:1563
 AliCDBManager.cxx:1564
 AliCDBManager.cxx:1565
 AliCDBManager.cxx:1566
 AliCDBManager.cxx:1567
 AliCDBManager.cxx:1568
 AliCDBManager.cxx:1569
 AliCDBManager.cxx:1570
 AliCDBManager.cxx:1571
 AliCDBManager.cxx:1572
 AliCDBManager.cxx:1573
 AliCDBManager.cxx:1574
 AliCDBManager.cxx:1575
 AliCDBManager.cxx:1576
 AliCDBManager.cxx:1577
 AliCDBManager.cxx:1578
 AliCDBManager.cxx:1579
 AliCDBManager.cxx:1580
 AliCDBManager.cxx:1581
 AliCDBManager.cxx:1582
 AliCDBManager.cxx:1583
 AliCDBManager.cxx:1584
 AliCDBManager.cxx:1585
 AliCDBManager.cxx:1586
 AliCDBManager.cxx:1587
 AliCDBManager.cxx:1588
 AliCDBManager.cxx:1589
 AliCDBManager.cxx:1590
 AliCDBManager.cxx:1591
 AliCDBManager.cxx:1592
 AliCDBManager.cxx:1593
 AliCDBManager.cxx:1594
 AliCDBManager.cxx:1595
 AliCDBManager.cxx:1596
 AliCDBManager.cxx:1597
 AliCDBManager.cxx:1598
 AliCDBManager.cxx:1599
 AliCDBManager.cxx:1600
 AliCDBManager.cxx:1601
 AliCDBManager.cxx:1602
 AliCDBManager.cxx:1603
 AliCDBManager.cxx:1604
 AliCDBManager.cxx:1605
 AliCDBManager.cxx:1606
 AliCDBManager.cxx:1607
 AliCDBManager.cxx:1608
 AliCDBManager.cxx:1609
 AliCDBManager.cxx:1610
 AliCDBManager.cxx:1611
 AliCDBManager.cxx:1612
 AliCDBManager.cxx:1613
 AliCDBManager.cxx:1614
 AliCDBManager.cxx:1615
 AliCDBManager.cxx:1616
 AliCDBManager.cxx:1617
 AliCDBManager.cxx:1618
 AliCDBManager.cxx:1619
 AliCDBManager.cxx:1620
 AliCDBManager.cxx:1621
 AliCDBManager.cxx:1622
 AliCDBManager.cxx:1623
 AliCDBManager.cxx:1624
 AliCDBManager.cxx:1625
 AliCDBManager.cxx:1626
 AliCDBManager.cxx:1627
 AliCDBManager.cxx:1628
 AliCDBManager.cxx:1629
 AliCDBManager.cxx:1630
 AliCDBManager.cxx:1631
 AliCDBManager.cxx:1632
 AliCDBManager.cxx:1633
 AliCDBManager.cxx:1634
 AliCDBManager.cxx:1635
 AliCDBManager.cxx:1636
 AliCDBManager.cxx:1637
 AliCDBManager.cxx:1638
 AliCDBManager.cxx:1639
 AliCDBManager.cxx:1640
 AliCDBManager.cxx:1641
 AliCDBManager.cxx:1642
 AliCDBManager.cxx:1643
 AliCDBManager.cxx:1644
 AliCDBManager.cxx:1645
 AliCDBManager.cxx:1646
 AliCDBManager.cxx:1647
 AliCDBManager.cxx:1648
 AliCDBManager.cxx:1649
 AliCDBManager.cxx:1650
 AliCDBManager.cxx:1651
 AliCDBManager.cxx:1652
 AliCDBManager.cxx:1653
 AliCDBManager.cxx:1654
 AliCDBManager.cxx:1655
 AliCDBManager.cxx:1656
 AliCDBManager.cxx:1657
 AliCDBManager.cxx:1658
 AliCDBManager.cxx:1659
 AliCDBManager.cxx:1660
 AliCDBManager.cxx:1661
 AliCDBManager.cxx:1662
 AliCDBManager.cxx:1663
 AliCDBManager.cxx:1664
 AliCDBManager.cxx:1665
 AliCDBManager.cxx:1666
 AliCDBManager.cxx:1667
 AliCDBManager.cxx:1668
 AliCDBManager.cxx:1669
 AliCDBManager.cxx:1670
 AliCDBManager.cxx:1671
 AliCDBManager.cxx:1672
 AliCDBManager.cxx:1673
 AliCDBManager.cxx:1674
 AliCDBManager.cxx:1675
 AliCDBManager.cxx:1676
 AliCDBManager.cxx:1677
 AliCDBManager.cxx:1678
 AliCDBManager.cxx:1679
 AliCDBManager.cxx:1680
 AliCDBManager.cxx:1681
 AliCDBManager.cxx:1682
 AliCDBManager.cxx:1683
 AliCDBManager.cxx:1684
 AliCDBManager.cxx:1685
 AliCDBManager.cxx:1686
 AliCDBManager.cxx:1687
 AliCDBManager.cxx:1688
 AliCDBManager.cxx:1689
 AliCDBManager.cxx:1690
 AliCDBManager.cxx:1691
 AliCDBManager.cxx:1692
 AliCDBManager.cxx:1693
 AliCDBManager.cxx:1694
 AliCDBManager.cxx:1695
 AliCDBManager.cxx:1696
 AliCDBManager.cxx:1697
 AliCDBManager.cxx:1698
 AliCDBManager.cxx:1699
 AliCDBManager.cxx:1700
 AliCDBManager.cxx:1701
 AliCDBManager.cxx:1702
 AliCDBManager.cxx:1703
 AliCDBManager.cxx:1704
 AliCDBManager.cxx:1705
 AliCDBManager.cxx:1706
 AliCDBManager.cxx:1707
 AliCDBManager.cxx:1708
 AliCDBManager.cxx:1709
 AliCDBManager.cxx:1710
 AliCDBManager.cxx:1711
 AliCDBManager.cxx:1712
 AliCDBManager.cxx:1713
 AliCDBManager.cxx:1714
 AliCDBManager.cxx:1715
 AliCDBManager.cxx:1716
 AliCDBManager.cxx:1717
 AliCDBManager.cxx:1718
 AliCDBManager.cxx:1719
 AliCDBManager.cxx:1720
 AliCDBManager.cxx:1721
 AliCDBManager.cxx:1722
 AliCDBManager.cxx:1723
 AliCDBManager.cxx:1724
 AliCDBManager.cxx:1725
 AliCDBManager.cxx:1726
 AliCDBManager.cxx:1727
 AliCDBManager.cxx:1728
 AliCDBManager.cxx:1729
 AliCDBManager.cxx:1730
 AliCDBManager.cxx:1731
 AliCDBManager.cxx:1732
 AliCDBManager.cxx:1733
 AliCDBManager.cxx:1734
 AliCDBManager.cxx:1735
 AliCDBManager.cxx:1736
 AliCDBManager.cxx:1737
 AliCDBManager.cxx:1738
 AliCDBManager.cxx:1739
 AliCDBManager.cxx:1740
 AliCDBManager.cxx:1741
 AliCDBManager.cxx:1742
 AliCDBManager.cxx:1743
 AliCDBManager.cxx:1744
 AliCDBManager.cxx:1745
 AliCDBManager.cxx:1746
 AliCDBManager.cxx:1747
 AliCDBManager.cxx:1748
 AliCDBManager.cxx:1749
 AliCDBManager.cxx:1750
 AliCDBManager.cxx:1751
 AliCDBManager.cxx:1752
 AliCDBManager.cxx:1753
 AliCDBManager.cxx:1754
 AliCDBManager.cxx:1755
 AliCDBManager.cxx:1756
 AliCDBManager.cxx:1757
 AliCDBManager.cxx:1758
 AliCDBManager.cxx:1759
 AliCDBManager.cxx:1760
 AliCDBManager.cxx:1761
 AliCDBManager.cxx:1762
 AliCDBManager.cxx:1763
 AliCDBManager.cxx:1764
 AliCDBManager.cxx:1765
 AliCDBManager.cxx:1766
 AliCDBManager.cxx:1767
 AliCDBManager.cxx:1768
 AliCDBManager.cxx:1769
 AliCDBManager.cxx:1770
 AliCDBManager.cxx:1771
 AliCDBManager.cxx:1772
 AliCDBManager.cxx:1773
 AliCDBManager.cxx:1774
 AliCDBManager.cxx:1775
 AliCDBManager.cxx:1776
 AliCDBManager.cxx:1777
 AliCDBManager.cxx:1778
 AliCDBManager.cxx:1779
 AliCDBManager.cxx:1780
 AliCDBManager.cxx:1781
 AliCDBManager.cxx:1782
 AliCDBManager.cxx:1783
 AliCDBManager.cxx:1784
 AliCDBManager.cxx:1785
 AliCDBManager.cxx:1786
 AliCDBManager.cxx:1787
 AliCDBManager.cxx:1788
 AliCDBManager.cxx:1789
 AliCDBManager.cxx:1790
 AliCDBManager.cxx:1791
 AliCDBManager.cxx:1792
 AliCDBManager.cxx:1793
 AliCDBManager.cxx:1794
 AliCDBManager.cxx:1795
 AliCDBManager.cxx:1796
 AliCDBManager.cxx:1797
 AliCDBManager.cxx:1798
 AliCDBManager.cxx:1799
 AliCDBManager.cxx:1800
 AliCDBManager.cxx:1801
 AliCDBManager.cxx:1802
 AliCDBManager.cxx:1803
 AliCDBManager.cxx:1804
 AliCDBManager.cxx:1805
 AliCDBManager.cxx:1806
 AliCDBManager.cxx:1807
 AliCDBManager.cxx:1808
 AliCDBManager.cxx:1809
 AliCDBManager.cxx:1810
 AliCDBManager.cxx:1811
 AliCDBManager.cxx:1812
 AliCDBManager.cxx:1813
 AliCDBManager.cxx:1814
 AliCDBManager.cxx:1815
 AliCDBManager.cxx:1816
 AliCDBManager.cxx:1817
 AliCDBManager.cxx:1818
 AliCDBManager.cxx:1819
 AliCDBManager.cxx:1820
 AliCDBManager.cxx:1821
 AliCDBManager.cxx:1822
 AliCDBManager.cxx:1823
 AliCDBManager.cxx:1824
 AliCDBManager.cxx:1825
 AliCDBManager.cxx:1826
 AliCDBManager.cxx:1827
 AliCDBManager.cxx:1828
 AliCDBManager.cxx:1829
 AliCDBManager.cxx:1830
 AliCDBManager.cxx:1831
 AliCDBManager.cxx:1832
 AliCDBManager.cxx:1833
 AliCDBManager.cxx:1834
 AliCDBManager.cxx:1835
 AliCDBManager.cxx:1836
 AliCDBManager.cxx:1837
 AliCDBManager.cxx:1838
 AliCDBManager.cxx:1839
 AliCDBManager.cxx:1840
 AliCDBManager.cxx:1841
 AliCDBManager.cxx:1842
 AliCDBManager.cxx:1843
 AliCDBManager.cxx:1844
 AliCDBManager.cxx:1845
 AliCDBManager.cxx:1846
 AliCDBManager.cxx:1847
 AliCDBManager.cxx:1848
 AliCDBManager.cxx:1849
 AliCDBManager.cxx:1850
 AliCDBManager.cxx:1851
 AliCDBManager.cxx:1852
 AliCDBManager.cxx:1853
 AliCDBManager.cxx:1854
 AliCDBManager.cxx:1855
 AliCDBManager.cxx:1856
 AliCDBManager.cxx:1857
 AliCDBManager.cxx:1858
 AliCDBManager.cxx:1859
 AliCDBManager.cxx:1860
 AliCDBManager.cxx:1861
 AliCDBManager.cxx:1862
 AliCDBManager.cxx:1863
 AliCDBManager.cxx:1864
 AliCDBManager.cxx:1865
 AliCDBManager.cxx:1866
 AliCDBManager.cxx:1867
 AliCDBManager.cxx:1868
 AliCDBManager.cxx:1869
 AliCDBManager.cxx:1870
 AliCDBManager.cxx:1871
 AliCDBManager.cxx:1872
 AliCDBManager.cxx:1873
 AliCDBManager.cxx:1874
 AliCDBManager.cxx:1875
 AliCDBManager.cxx:1876
 AliCDBManager.cxx:1877
 AliCDBManager.cxx:1878
 AliCDBManager.cxx:1879
 AliCDBManager.cxx:1880
 AliCDBManager.cxx:1881
 AliCDBManager.cxx:1882
 AliCDBManager.cxx:1883
 AliCDBManager.cxx:1884
 AliCDBManager.cxx:1885
 AliCDBManager.cxx:1886
 AliCDBManager.cxx:1887
 AliCDBManager.cxx:1888
 AliCDBManager.cxx:1889
 AliCDBManager.cxx:1890
 AliCDBManager.cxx:1891
 AliCDBManager.cxx:1892
 AliCDBManager.cxx:1893
 AliCDBManager.cxx:1894
 AliCDBManager.cxx:1895
 AliCDBManager.cxx:1896
 AliCDBManager.cxx:1897
 AliCDBManager.cxx:1898
 AliCDBManager.cxx:1899
 AliCDBManager.cxx:1900
 AliCDBManager.cxx:1901
 AliCDBManager.cxx:1902
 AliCDBManager.cxx:1903
 AliCDBManager.cxx:1904
 AliCDBManager.cxx:1905
 AliCDBManager.cxx:1906
 AliCDBManager.cxx:1907
 AliCDBManager.cxx:1908
 AliCDBManager.cxx:1909
 AliCDBManager.cxx:1910
 AliCDBManager.cxx:1911
 AliCDBManager.cxx:1912
 AliCDBManager.cxx:1913
 AliCDBManager.cxx:1914
 AliCDBManager.cxx:1915
 AliCDBManager.cxx:1916
 AliCDBManager.cxx:1917
 AliCDBManager.cxx:1918
 AliCDBManager.cxx:1919
 AliCDBManager.cxx:1920
 AliCDBManager.cxx:1921
 AliCDBManager.cxx:1922
 AliCDBManager.cxx:1923
 AliCDBManager.cxx:1924
 AliCDBManager.cxx:1925
 AliCDBManager.cxx:1926
 AliCDBManager.cxx:1927
 AliCDBManager.cxx:1928
 AliCDBManager.cxx:1929
 AliCDBManager.cxx:1930
 AliCDBManager.cxx:1931
 AliCDBManager.cxx:1932
 AliCDBManager.cxx:1933
 AliCDBManager.cxx:1934
 AliCDBManager.cxx:1935
 AliCDBManager.cxx:1936
 AliCDBManager.cxx:1937
 AliCDBManager.cxx:1938
 AliCDBManager.cxx:1939
 AliCDBManager.cxx:1940