Added methods for finding a given module in the DDL map (F. Prino)
[u/mrichter/AliRoot.git] / STEER / AliQADataMakerSteer.cxx
index c4a9f85..2d7519e 100644 (file)
@@ -143,7 +143,7 @@ AliQADataMakerSteer::~AliQADataMakerSteer()
 }
 
 //_____________________________________________________________________________
-Bool_t AliQADataMakerSteer::DoIt(const AliQA::TASKINDEX taskIndex, const char * mode)
+Bool_t AliQADataMakerSteer::DoIt(const AliQA::TASKINDEX_t taskIndex, const char * mode)
 {
        // Runs all the QA data Maker for every detector
 
@@ -247,7 +247,7 @@ Bool_t AliQADataMakerSteer::DoIt(const AliQA::TASKINDEX taskIndex, const char *
 }
 
 //_____________________________________________________________________________
-Bool_t AliQADataMakerSteer::Finish(const AliQA::TASKINDEX taskIndex, const char * mode) 
+Bool_t AliQADataMakerSteer::Finish(const AliQA::TASKINDEX_t taskIndex, const char * mode) 
 {
        // write output to file for all detectors
        for (UInt_t iDet = 0; iDet < fgkNDetectors ; iDet++) {
@@ -262,7 +262,7 @@ Bool_t AliQADataMakerSteer::Finish(const AliQA::TASKINDEX taskIndex, const char
 }
 
 //_____________________________________________________________________________
-TObjArray * AliQADataMakerSteer::GetFromOCDB(AliQA::DETECTORINDEX det, AliQA::TASKINDEX task) const 
+TObjArray * AliQADataMakerSteer::GetFromOCDB(AliQA::DETECTORINDEX_t det, AliQA::TASKINDEX_t task, const char * year) const 
 {
        // Retrieve the list of QA data for a given detector and a given task 
        TObjArray * rv = NULL ;
@@ -273,11 +273,14 @@ TObjArray * AliQADataMakerSteer::GetFromOCDB(AliQA::DETECTORINDEX det, AliQA::TA
        }       
        AliCDBManager* man = AliCDBManager::Instance() ; 
        if ( ! man->IsDefaultStorageSet() ) {
-               man->SetDefaultStorage(AliQA::GetQARefDefaultStorage()) ; 
-               man->SetSpecificStorage(Form("%s/*", AliQA::GetQAOCDBDirName()), AliQA::GetQARefStorage()) ;
+               TString tmp(AliQA::GetQARefDefaultStorage()) ; 
+               tmp.Append(year) ; 
+               tmp.Append("/") ; 
+               man->SetDefaultStorage(tmp.Data()) ;            
+               man->SetSpecificStorage(Form("%s/*", AliQA::GetQAName()), AliQA::GetQARefStorage()) ;
        }
        char detOCDBDir[10] ; 
-       sprintf(detOCDBDir, "%s/%s/%s", AliQA::GetQAOCDBDirName(), AliQA::GetDetName((Int_t)det), AliQA::GetRefOCDBDirName()) ; 
+       sprintf(detOCDBDir, "%s/%s/%s", AliQA::GetQAName(), AliQA::GetDetName((Int_t)det), AliQA::GetRefOCDBDirName()) ; 
        AliInfo(Form("Retrieving reference data from %s/%s for %s", AliQA::GetQARefStorage(), detOCDBDir, AliQA::GetTaskName(task).Data())) ; 
        AliCDBEntry* entry = man->Get(detOCDBDir, 0) ; //FIXME 0 --> Run Number
        TList * listDetQAD = dynamic_cast<TList *>(entry->GetObject()) ;
@@ -366,7 +369,7 @@ AliQADataMaker * AliQADataMakerSteer::GetQADataMaker(const Int_t iDet, const cha
 }
 
 //_____________________________________________________________________________
-Bool_t AliQADataMakerSteer::Init(const AliQA::TASKINDEX taskIndex, const char * mode, const  char * input )
+Bool_t AliQADataMakerSteer::Init(const AliQA::TASKINDEX_t taskIndex, const char * mode, const  char * input )
 {
        // Initialize the event source and QA data makers
        
@@ -504,7 +507,6 @@ Bool_t AliQADataMakerSteer::IsSelected(const char * det)
        
        // search for the given detector
        Bool_t rv = kFALSE;
-       //AliInfo(Form("SSSSSSSSSSSSS fd = %s det = %s ", fDetectors.Data(), det)) ; 
        if ((fDetectors.CompareTo(detName) == 0) ||
                fDetectors.BeginsWith(detName+" ") ||
                fDetectors.EndsWith(" "+detName) ||
@@ -622,14 +624,15 @@ void AliQADataMakerSteer::Reset(const Bool_t sameCycle)
 }
 
 //_____________________________________________________________________________
-TString AliQADataMakerSteer::Run(const char * detectors, AliRawReader * rawReader) 
+TString AliQADataMakerSteer::Run(const char * detectors, AliRawReader * rawReader, const Bool_t sameCycle) 
 {
        //Runs all the QA data Maker for Raws only
-
-       fRawReader       = rawReader ;          
+       
+       fCycleSame       = sameCycle ;
+       fRawReader       = rawReader ;
        fDetectors       = detectors ; 
-       fDetectorsW      = detectors ; 
-
+       fDetectorsW      = detectors ;  
+       
        if ( !Init(AliQA::kRAWS, "rec") ) 
                return kFALSE ; 
        fRawReaderDelete = kFALSE ; 
@@ -639,10 +642,11 @@ TString AliQADataMakerSteer::Run(const char * detectors, AliRawReader * rawReade
 }
 
 //_____________________________________________________________________________
-TString AliQADataMakerSteer::Run(const char * detectors, const char * fileName) 
+TString AliQADataMakerSteer::Run(const char * detectors, const char * fileName, const Bool_t sameCycle) 
 {
        //Runs all the QA data Maker for Raws only
+
+       fCycleSame       = sameCycle ;
        fDetectors       = detectors ; 
        fDetectorsW      = detectors ;  
        
@@ -654,14 +658,15 @@ TString AliQADataMakerSteer::Run(const char * detectors, const char * fileName)
 }
 
 //_____________________________________________________________________________
-TString AliQADataMakerSteer::Run(const char * detectors, const AliQA::TASKINDEX taskIndex, const  char * fileName )
+TString AliQADataMakerSteer::Run(const char * detectors, const AliQA::TASKINDEX_t taskIndex, Bool_t const sameCycle, const  char * fileName ) 
 {
        // Runs all the QA data Maker for every detector
-
-       fDetectors  = detectors ; 
-       fDetectorsW = detectors ; 
-
-       char * mode ; 
+       
+       fCycleSame       = sameCycle ;
+       fDetectors       = detectors ; 
+       fDetectorsW      = detectors ;          
+       
+       TString mode ; 
        if ( (taskIndex == AliQA::kHITS) || (taskIndex == AliQA::kSDIGITS) || (taskIndex == AliQA::kDIGITS) ) 
                mode = "sim" ; 
        else if ( (taskIndex == AliQA::kRAWS) || (taskIndex == AliQA::kRECPOINTS) || (taskIndex == AliQA::kESDS) )
@@ -671,17 +676,17 @@ TString AliQADataMakerSteer::Run(const char * detectors, const AliQA::TASKINDEX
                return "" ;
        }
 
-       if ( !Init(taskIndex, mode, fileName) ) 
+       if ( !Init(taskIndex, mode.Data(), fileName) ) 
                return kFALSE ; 
 
-       DoIt(taskIndex, mode) ;
+       DoIt(taskIndex, mode.Data()) ;
        
        return fDetectorsW ;
 
 }
 
 //_____________________________________________________________________________
-Bool_t AliQADataMakerSteer::Save2OCDB(const Int_t runNumber, const Int_t cycleNumber, const char * detectors) const
+Bool_t AliQADataMakerSteer::Save2OCDB(const Int_t runNumber, const char * year, const Int_t cycleNumber, const char * detectors) const
 {
        // take the locasl QA data merge into a single file and save in OCDB 
        Bool_t rv = kTRUE ; 
@@ -704,14 +709,14 @@ Bool_t AliQADataMakerSteer::Save2OCDB(const Int_t runNumber, const Int_t cycleNu
                char inputFileName[20] ; 
                sprintf(inputFileName, "Merged.%s.%d.root", AliQA::GetQADataFileName(), runNumber) ; 
                inputFile = TFile::Open(inputFileName) ; 
-               rv = SaveIt2OCDB(runNumber, inputFile) ; 
+               rv = SaveIt2OCDB(runNumber, inputFile, year) ; 
        } else {
                for (Int_t index = 0; index < AliQA::kNDET; index++) {
                        if (sdet.Contains(AliQA::GetDetName(index))) {
                                char inputFileName[20] ; 
                                sprintf(inputFileName, "%s.%s.%d.%d.root", AliQA::GetDetName(index), AliQA::GetQADataFileName(), runNumber, cycleNumber) ; 
                                inputFile = TFile::Open(inputFileName) ;                        
-                               rv *= SaveIt2OCDB(runNumber, inputFile) ; 
+                               rv *= SaveIt2OCDB(runNumber, inputFile, year) ; 
                        }
                }
        }
@@ -719,29 +724,36 @@ Bool_t AliQADataMakerSteer::Save2OCDB(const Int_t runNumber, const Int_t cycleNu
 }
 
 //_____________________________________________________________________________
-Bool_t AliQADataMakerSteer::SaveIt2OCDB(const Int_t runNumber, TFile * inputFile) const
+Bool_t AliQADataMakerSteer::SaveIt2OCDB(const Int_t runNumber, TFile * inputFile, const char * year) const
 {
        // reads the TH1 from file and adds it to appropriate list before saving to OCDB
        Bool_t rv = kTRUE ;
        AliInfo(Form("Saving TH1s in %s to %s", inputFile->GetName(), AliQA::GetQARefStorage())) ; 
        AliCDBManager* man = AliCDBManager::Instance() ; 
        if ( ! man->IsDefaultStorageSet() ) {
-               man->SetDefaultStorage(AliQA::GetQARefDefaultStorage()) ; 
-               man->SetSpecificStorage(Form("%s/*", AliQA::GetQAOCDBDirName()), AliQA::GetQARefStorage()) ; 
+               TString tmp(AliQA::GetQARefDefaultStorage()) ; 
+               tmp.Append(year) ; 
+               tmp.Append("?user=alidaq") ; 
+               man->SetDefaultStorage(tmp.Data()) ; 
+               man->SetSpecificStorage("*", AliQA::GetQARefStorage()) ; 
        }
        if(man->GetRun() < 0) 
                man->SetRun(runNumber);
 
+       AliCDBMetaData mdr ;
+       mdr.SetResponsible("yves schutz");
+
        for ( Int_t detIndex = 0 ; detIndex < AliQA::kNDET ; detIndex++) {
                TDirectory * detDir = inputFile->GetDirectory(AliQA::GetDetName(detIndex)) ; 
                if ( detDir ) {
                        AliInfo(Form("Entering %s", detDir->GetName())) ;
                        char detOCDBDir[20] ;
-                       sprintf(detOCDBDir, "%s/%s/%s", AliQA::GetQAOCDBDirName(), AliQA::GetDetName(detIndex), AliQA::GetRefOCDBDirName()) ; 
-                       AliCDBId idr(detOCDBDir, runNumber, 999999999)  ;
+                       sprintf(detOCDBDir, "%s/%s/%s", AliQA::GetDetName(detIndex), AliQA::GetRefOCDBDirName(), AliQA::GetRefDataDirName()) ; 
+                       AliCDBId idr(detOCDBDir, runNumber, AliCDBRunRange::Infinity())  ;
                        TList * listDetQAD = new TList() ;
                        char listName[20] ; 
                        sprintf(listName, "%s QA data Reference", AliQA::GetDetName(detIndex)) ; 
+                       mdr.SetComment("HMPID QA stuff");
                        listDetQAD->SetName(listName) ; 
                        TList * taskList = detDir->GetListOfKeys() ; 
                        TIter nextTask(taskList) ; 
@@ -764,7 +776,6 @@ Bool_t AliQADataMakerSteer::SaveIt2OCDB(const Int_t runNumber, TFile * inputFile
                                        }
                                }
                        }
-                       AliCDBMetaData mdr ;
                        man->Put(listDetQAD, idr, &mdr) ;
                }
        }