]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliQAChecker.cxx
setting default storage for QA in Checker
[u/mrichter/AliRoot.git] / STEER / AliQAChecker.cxx
index 2bdbe49afe17502cfefeacb7db54d3f72adad3fd..77fc36e6fafbc63398645615997707348fa4c077 100644 (file)
@@ -23,6 +23,7 @@
 
 #include "AliCDBEntry.h"
 #include "AliCDBManager.h"
+#include "AliCDBStorage.h"
 #include "AliLog.h"
 #include "AliModule.h" 
 #include "AliQA.h"
@@ -94,7 +95,7 @@ AliQAChecker::~AliQAChecker()
 
  TString detName(AliQA::GetDetName(det)) ; 
 
-  AliInfo(Form("Retrieving QA checker for %s", detName.Data())) ; 
+  AliDebug(1, Form("Retrieving QA checker for %s", detName.Data())) ; 
   TPluginManager* pluginManager = gROOT->GetPluginManager() ;
   TString qacName = "Ali" + detName + "QAChecker" ;
 
@@ -125,14 +126,14 @@ AliQAChecker::~AliQAChecker()
 
 
 //_____________________________________________________________________________
-void AliQAChecker::GetRefSubDir(const char * det, const char * task, TDirectory *& dirFile, TList *& dirOCDB)     
+void AliQAChecker::GetRefSubDir(const char * det, const char * task, TDirectory *& dirFile, TObjArray *& dirOCDB)     
 { 
   // Opens and returns the file with the reference data 
        
        dirFile = NULL ; 
        dirOCDB = NULL ; 
        TString refStorage(AliQA::GetQARefStorage()) ; 
-       refStorage += AliQA::GetQARefFileName() ;
+       //refStorage += AliQA::GetQARefFileName() ;
        if (refStorage.Contains(AliQA::GetLabLocalFile())) {    
                refStorage.ReplaceAll(AliQA::GetLabLocalFile(), "") ; 
                if ( fRefFile ) 
@@ -153,12 +154,18 @@ void AliQAChecker::GetRefSubDir(const char * det, const char * task, TDirectory
                }  
        } else if (refStorage.Contains(AliQA::GetLabLocalOCDB()) || refStorage.Contains(AliQA::GetLabAliEnOCDB())) {    
                AliCDBManager* man = AliCDBManager::Instance() ; 
+               if ( ! man->GetLock() ) { 
+                       man->SetDefaultStorage(AliQA::GetQARefStorage()) ; 
+                       man->SetSpecificStorage("*", AliQA::GetQARefStorage()) ;
+               }
                char detOCDBDir[20] ; 
-               sprintf(detOCDBDir, "%s/%s", AliQA::GetQARefFileName(), det) ; 
-               AliCDBEntry * entry = man->Get(detOCDBDir) ;
-               TList * listDetQAD = dynamic_cast<TList *>(entry->GetObject()) ;
-               if ( listDetQAD ) 
-                       dirOCDB = dynamic_cast<TList *>(listDetQAD->FindObject(task)) ; 
+               sprintf(detOCDBDir, "%s/%s/%s", det, AliQA::GetRefOCDBDirName(), AliQA::GetRefDataDirName()) ; 
+               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)) ; 
+               }
        }
 }
 
@@ -187,7 +194,7 @@ Bool_t AliQAChecker::Run(const char * fileName)
   TIter nextd(detKeyList) ; 
   TKey * detKey ; 
   while ( (detKey = dynamic_cast<TKey *>(nextd()) ) ) {
-    AliInfo(Form("Found %s", detKey->GetName())) ;
+    AliDebug(1, Form("Found %s", detKey->GetName())) ;
     //Check which detector
     TString detName ; 
     TString detNameQA(detKey->GetName()) ; 
@@ -215,7 +222,7 @@ Bool_t AliQAChecker::Run(const char * fileName)
                AliInfo(Form("QA checker found for %s", detName.Data())) ; 
       if (!qac)
                AliFatal(Form("QA checker not found for %s", detName.Data())) ; 
-      AliQA::ALITASK index = AliQA::kNULLTASK ; 
+      AliQA::ALITASK_t index = AliQA::kNULLTASK ; 
       if ( taskName == AliQA::GetTaskName(AliQA::kHITS) ) 
                index = AliQA::kSIM ; 
       if ( taskName == AliQA::GetTaskName(AliQA::kSDIGITS) ) 
@@ -230,10 +237,10 @@ Bool_t AliQAChecker::Run(const char * fileName)
                index = AliQA::kREC ; 
       if ( taskName == AliQA::GetTaskName(AliQA::kESDS) ) 
                index = AliQA::kESD ; 
-      qac->Init(AliQA::DETECTORINDEX(det)) ; 
+      qac->Init(AliQA::DETECTORINDEX_t(det)) ; 
 
-         TDirectory * refDir     = NULL ; 
-         TList * refOCDBDir      = NULL ;      
+         TDirectory * refDir    = NULL ; 
+         TObjArray * refOCDBDir = NULL ;       
          GetRefSubDir(detNameQA.Data(), taskName.Data(), refDir, refOCDBDir) ;
          if ( refDir || refOCDBDir) {
                  qac->SetRefandData(refDir, refOCDBDir, taskDir) ;
@@ -256,44 +263,42 @@ Bool_t AliQAChecker::Run(const char * fileName)
 }
 
 //_____________________________________________________________________________
-Bool_t AliQAChecker::Run(AliQA::DETECTORINDEX det, AliQA::TASKINDEX task, TObjArray * list)
+Bool_t AliQAChecker::Run(AliQA::DETECTORINDEX_t det, AliQA::TASKINDEX_t task, TObjArray * list)
 {
-  // run the Quality Assurance Checker for detector det, for task task starting from data in list
+       // run the Quality Assurance Checker for detector det, for task task starting from data in list
 
-  AliQACheckerBase * qac = GetDetQAChecker(det) ; 
-  if (qac)
-    AliInfo(Form("QA checker found for %s", AliQA::GetDetName(det).Data())) ;
-  if (!qac)
-       AliFatal(Form("QA checker not found for %s", AliQA::GetDetName(det).Data())) ; 
+       AliQACheckerBase * qac = GetDetQAChecker(det) ; 
+       if (qac)
+               AliDebug(1, Form("QA checker found for %s", AliQA::GetDetName(det).Data())) ;
+       if (!qac)
+               AliError(Form("QA checker not found for %s", AliQA::GetDetName(det).Data())) ; 
   
-  AliQA::ALITASK index = AliQA::kNULLTASK ; 
-  if ( task == AliQA::kRAWS ) 
+       AliQA::ALITASK_t index = AliQA::kNULLTASK ; 
+       if ( task == AliQA::kRAWS ) 
                index = AliQA::kRAW ; 
-  else if ( task == AliQA::kHITS ) 
+       else if ( task == AliQA::kHITS ) 
                index = AliQA::kSIM ; 
-  else if ( task == AliQA::kSDIGITS ) 
+       else if ( task == AliQA::kSDIGITS ) 
                index = AliQA::kSIM ; 
-  else if ( task == AliQA::kDIGITS ) 
+       else if ( task == AliQA::kDIGITS ) 
                index = AliQA::kSIM ; 
-  else if ( task == AliQA::kRECPOINTS ) 
+       else if ( task == AliQA::kRECPOINTS ) 
                index = AliQA::kREC ; 
-  else if ( task == AliQA::kTRACKSEGMENTS ) 
+       else if ( task == AliQA::kTRACKSEGMENTS ) 
                index = AliQA::kREC ; 
-  else if ( task == AliQA::kRECPARTICLES ) 
+       else if ( task == AliQA::kRECPARTICLES ) 
                index = AliQA::kREC ; 
-  else if ( task == AliQA::kESDS ) 
+       else if ( task == AliQA::kESDS ) 
                index = AliQA::kESD ; 
 
-  TDirectory * refDir = NULL ; 
-  TList *refOCDBDir   = NULL ; 
+       TDirectory * refDir    = NULL ; 
+       TObjArray * refOCDBDir = NULL ; 
+       qac->Init(det) ; 
        GetRefSubDir(AliQA::GetDetName(det), AliQA::GetTaskName(task), refDir, refOCDBDir) ;
-  if ( refDir || refOCDBDir) {
-         qac->Init(det) ; 
+       if ( refDir || refOCDBDir)  // references found
          qac->SetRefandData(refDir, refOCDBDir) ; 
-         qac->Run(index, list) ; 
-  }
-  return kTRUE ; 
-  
+       qac->Run(index, list) ; 
+       return kTRUE ; 
 }