Moving CDB dependence from AliQA to AliQADataMakerSteer
authorschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 17 Apr 2008 07:44:18 +0000 (07:44 +0000)
committerschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 17 Apr 2008 07:44:18 +0000 (07:44 +0000)
STEER/AliQA.cxx
STEER/AliQADataMakerSteer.cxx
STEER/AliQADataMakerSteer.h

index 2dc1412..6982500 100644 (file)
@@ -39,7 +39,6 @@
 // --- Standard library ---
 
 // --- AliRoot header files ---
-#include "AliCDBManager.h"
 #include "AliLog.h"
 #include "AliQA.h"
 
@@ -483,12 +482,6 @@ void AliQA::SetQARefStorage(const char * name)
   }    
        TString tmp(fgQARefDirName) ; // + fgQARefFileName) ;
        printf("AliQA::SetQARefDir: QA references are in  %s\n", tmp.Data() ) ;
-
-       AliCDBManager* man = AliCDBManager::Instance() ; 
-       if ( ! man->IsDefaultStorageSet() ) { 
-               man->SetDefaultStorage(AliQA::GetQARefStorage()) ; 
-               man->SetSpecificStorage("*", AliQA::GetQARefStorage()) ;
-       }
 }
 
 //_____________________________________________________________________________
index 45bd16d..9eba4be 100644 (file)
@@ -151,10 +151,10 @@ AliQADataMakerSteer::~AliQADataMakerSteer()
 Bool_t AliQADataMakerSteer::DoIt(const AliQA::TASKINDEX_t taskIndex, const char * mode)
 {
        // Runs all the QA data Maker for every detector
-
+               
        Bool_t rv = kFALSE ;
     // Fill QA data in event loop 
-       for (UInt_t iEvent = fFirstEvent ; iEvent < fMaxEvents ; iEvent++) {
+       for (UInt_t iEvent = fFirstEvent ; iEvent < (UInt_t)fMaxEvents ; iEvent++) {
                fCurrentEvent++ ; 
                // Get the event
                if ( iEvent%10 == 0  ) 
@@ -171,7 +171,7 @@ Bool_t AliQADataMakerSteer::DoIt(const AliQA::TASKINDEX_t taskIndex, const char
                }
                // loop  over active loaders
                for (Int_t i = 0; i < fQADataMakers.GetEntriesFast() ; i++) {
-                       AliQADataMaker * qadm = static_cast<AliQADataMaker *>(fQADataMakers.At(i)); //GetQADataMaker(iDet, mode) ;
+                       AliQADataMaker * qadm = static_cast<AliQADataMaker *>(fQADataMakers.At(i)) ;
                        if ( qadm->IsCycleDone() ) {
                                qadm->EndOfCycle(AliQA::kRAWS) ;
                                qadm->StartOfCycle(AliQA::kRAWS) ;
@@ -537,7 +537,7 @@ Bool_t AliQADataMakerSteer::Merge(const Int_t runNumber) const
        ifstream in("tempo.txt") ; 
        const Int_t runMax = 10 ;  
        TString file[AliQA::kNDET*runMax] ;
-       Int_t run[AliQA::kNDET*runMax] = {-1.0} ;
+       Int_t run[AliQA::kNDET*runMax] = {-1} ;
        
        Int_t index = 0 ; 
        while ( 1 ) {
@@ -626,6 +626,19 @@ TString AliQADataMakerSteer::Run(const char * detectors, AliRawReader * rawReade
                return kFALSE ; 
        fRawReaderDelete = kFALSE ; 
 
+       AliCDBManager* man = AliCDBManager::Instance() ; 
+       if ( ! man->IsDefaultStorageSet() ) { 
+               man->SetDefaultStorage(AliQA::GetQARefStorage()) ; 
+               man->SetSpecificStorage("*", AliQA::GetQARefStorage()) ;
+       }
+       
+       if ( man->GetRun() == -1 ) {// check if run number not set previously and set it from raw data
+
+               rawReader->NextEvent() ; 
+               man->SetRun(fRawReader->GetRunNumber()) ;
+               rawReader->RewindEvents() ;
+       }       
+       
        DoIt(AliQA::kRAWS, "rec") ; 
        return  fDetectorsW ;
 }
@@ -642,6 +655,28 @@ TString AliQADataMakerSteer::Run(const char * detectors, const char * fileName,
        if ( !Init(AliQA::kRAWS, "rec", fileName) ) 
                return kFALSE ; 
 
+       AliCDBManager* man = AliCDBManager::Instance() ; 
+       if ( ! man->IsDefaultStorageSet() ) { 
+               man->SetDefaultStorage(AliQA::GetQARefStorage()) ; 
+               man->SetSpecificStorage("*", AliQA::GetQARefStorage()) ;
+       }
+
+       if ( man->GetRun() == -1 ) { // check if run number not set previously and set it from AliRun
+               AliRunLoader * rl = AliRunLoader::Open("galice.root") ;
+               if ( ! rl ) {
+                       AliFatal("galice.root file not found in current directory") ; 
+               } else {
+                       rl->CdGAFile() ; 
+                       rl->LoadgAlice() ;
+                       if ( ! rl->GetAliRun() ) {
+                               AliFatal("AliRun not found in galice.root") ;
+                       } else {
+                               rl->LoadHeader() ;
+                               man->SetRun(rl->GetHeader()->GetRun());
+                       }
+               }
+       }
+       
        DoIt(AliQA::kRAWS, "rec") ; 
        return  fDetectorsW ;
 }
@@ -668,6 +703,28 @@ TString AliQADataMakerSteer::Run(const char * detectors, const AliQA::TASKINDEX_
        if ( !Init(taskIndex, mode.Data(), fileName) ) 
                return kFALSE ; 
 
+       AliCDBManager* man = AliCDBManager::Instance() ; 
+       if ( ! man->IsDefaultStorageSet() ) { 
+               man->SetDefaultStorage(AliQA::GetQARefStorage()) ; 
+               man->SetSpecificStorage("*", AliQA::GetQARefStorage()) ;
+       }
+       
+       if ( man->GetRun() == -1 ) { // check if run number not set previously and set it from AliRun
+               AliRunLoader * rl = AliRunLoader::Open("galice.root") ;
+               if ( ! rl ) {
+                       AliFatal("galice.root file not found in current directory") ; 
+               } else {
+                       rl->CdGAFile() ; 
+                       rl->LoadgAlice() ;
+                       if ( ! rl->GetAliRun() ) {
+                               AliFatal("AliRun not found in galice.root") ;
+                       } else {
+                               rl->LoadHeader() ;
+                               man->SetRun(rl->GetHeader()->GetRun()) ;
+                       }
+               }
+       }
+       
        DoIt(taskIndex, mode.Data()) ;
        
        return fDetectorsW ;
index 59eb158..f50cd76 100644 (file)
@@ -72,7 +72,7 @@ private:
        Bool_t             fFirst ;                        //! to search the detector QA data maker only once
        TString            fGAliceFileName ;               //! name of the galice file
        UInt_t             fFirstEvent ;                   //! first event to process
-       UInt_t             fMaxEvents ;                    //! number of events to process
+       Int_t              fMaxEvents ;                    //! number of events to process
        Long64_t           fNumberOfEvents ;               //! number of events in the run 
        UInt_t             fRunNumber ;                    //! current run number
        AliRawReader     * fRawReader ;                    //! current raw reader object