- dirFile = NULL ;
- dirOCDB = NULL ;
- TString refStorage(AliQA::GetQARefStorage()) ;
- //refStorage += AliQA::GetQARefFileName() ;
- if (refStorage.Contains(AliQA::GetLabLocalFile())) {
- refStorage.ReplaceAll(AliQA::GetLabLocalFile(), "") ;
- if ( fRefFile )
- if ( fRefFile->IsOpen() )
- fRefFile->Close() ;
- fRefFile = TFile::Open(refStorage.Data()) ;
- if (!fRefFile) {
- AliError(Form("Cannot find reference file %s", refStorage.Data())) ;
- dirFile = NULL ;
- }
- dirFile = fRefFile->GetDirectory(det) ;
- if (!dirFile) {
- AliWarning(Form("Directory %s not found in %d", det, refStorage.Data())) ;
- } else {
- dirFile = dirFile->GetDirectory(task) ;
- if (!dirFile)
- AliWarning(Form("Directory %s/%s not found in %s", det, task, refStorage.Data())) ;
- }
- } else if (refStorage.Contains(AliQA::GetLabLocalOCDB()) || refStorage.Contains(AliQA::GetLabAliEnOCDB())) {
- AliCDBManager* man = AliCDBManager::Instance() ;
- if ( strcmp(AliQA::GetRefDataDirName(), "") == 0 ) { // the name of the last level of the directory is not set (RUNTYPE)
- // Get it from EventInfo
- if (!fEventInfo) // not yet set, get the info from GRP
- LoadEventInfoFromGRP() ;
- AliQA::SetQARefDataDirName(fEventInfo->GetRunType()) ;
- }
- if ( ! man->GetLock() ) {
- man->SetDefaultStorage(AliQA::GetQARefStorage()) ;
- man->SetSpecificStorage("*", AliQA::GetQARefStorage()) ;
- }
- char * detOCDBDir = Form("%s/%s/%s", det, AliQA::GetRefOCDBDirName(), AliQA::GetRefDataDirName()) ;
- AliInfo(Form("Reference QA data are taken from %s", detOCDBDir)) ;
- AliCDBEntry * entry = man->Get(detOCDBDir, man->GetRun()) ;
- if (entry) {
- TList * listDetQAD = dynamic_cast<TList *>(entry->GetObject()) ;
- if ( listDetQAD )
- dirOCDB = dynamic_cast<TObjArray *>(listDetQAD->FindObject(task)) ;
- }
- }