]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliQAManager.cxx
Removing comment for "magic" lines to correctly read raw tag files.
[u/mrichter/AliRoot.git] / STEER / AliQAManager.cxx
index 6d0babcf3f18edccfe833089315e03e128ea68f4..3a54b32e7ff0433bc333cd152ea4a951b2a0d937 100644 (file)
@@ -54,6 +54,8 @@
 #include "AliLog.h"
 #include "AliModule.h"
 #include "AliQAv1.h"
+#include "AliQAChecker.h"
+#include "AliQACheckerBase.h"
 #include "AliQADataMakerRec.h"
 #include "AliQADataMakerSim.h"
 #include "AliQAManager.h" 
@@ -103,7 +105,7 @@ AliQAManager::AliQAManager() :
 }
 
 //_____________________________________________________________________________
-AliQAManager::AliQAManager(const Char_t * mode, const Char_t* gAliceFilename) :
+AliQAManager::AliQAManager(AliQAv1::MODE_t mode, const Char_t* gAliceFilename) :
   AliCDBManager(), 
   fCurrentEvent(0),  
        fCycleSame(kFALSE),
@@ -114,7 +116,7 @@ AliQAManager::AliQAManager(const Char_t * mode, const Char_t* gAliceFilename) :
        fGAliceFileName(gAliceFilename), 
        fFirstEvent(0),        
        fMaxEvents(0),   
-  fMode(mode), 
+  fMode(AliQAv1::GetModeName(mode)), 
        fNumberOfEvents(999999), 
   fRecoParam(),
        fRunNumber(0), 
@@ -135,11 +137,6 @@ AliQAManager::AliQAManager(const Char_t * mode, const Char_t* gAliceFilename) :
     }
   }
   SetWriteExpert() ; 
-  fMode.ToLower() ; 
-  if (fMode.Contains("sim")) 
-               fMode.ReplaceAll("s", "S") ; 
-  else if (fMode.Contains("rec")) 
-    fMode.ReplaceAll("r", "R") ; 
 }
 
 //_____________________________________________________________________________
@@ -312,9 +309,10 @@ Bool_t AliQAManager::DoIt(const AliQAv1::TASKINDEX_t taskIndex)
                                } //task switch
                        }
                } // detector loop
-    Increment() ; 
+    Increment(taskIndex) ; 
        } // event loop 
        // Save QA data for all detectors
+
        rv = Finish(taskIndex) ;
        
        if ( taskIndex == AliQAv1::kRAWS ) 
@@ -327,6 +325,9 @@ Bool_t AliQAManager::DoIt(const AliQAv1::TASKINDEX_t taskIndex)
 Bool_t AliQAManager::Finish(const AliQAv1::TASKINDEX_t taskIndex) 
 {
        // write output to file for all detectors
+  
+  AliQAChecker::Instance()->SetRunNumber(fRunNumber) ; 
+
        for (UInt_t iDet = 0; iDet < fgkNDetectors ; iDet++) {
                if (IsSelected(AliQAv1::GetDetName(iDet))) {
                        AliQADataMaker * qadm = GetQADataMaker(iDet) ;
@@ -368,8 +369,8 @@ TCanvas ** AliQAManager::GetImage(Char_t * detName)
   // retrieves QA Image for the given detector
   TCanvas ** rv = NULL ; 
   Int_t detIndex = AliQAv1::GetDetIndex(detName) ; 
-  AliQADataMaker * qadm = GetQADataMaker(detIndex) ; 
-  rv = qadm->GetImage() ;
+  AliQACheckerBase * qac = AliQAChecker::Instance()->GetDetQAChecker(detIndex) ; 
+  rv = qac->GetImage() ;
   return rv ; 
 }
 
@@ -471,7 +472,7 @@ AliQADataMaker * AliQAManager::GetQADataMaker(const Int_t iDet)
       if ( AliRecoParam::Convert(qadm->GetRecoParam()->GetEventSpecie()) != AliRecoParam::kDefault)  
         qadm->SetEventSpecie(qadm->GetRecoParam()->GetEventSpecie()) ; 
 
-  } else if ( iDet != AliQAv1::kCORR ) {
+  } else if ( iDet < AliQAv1::kHLT ) {
     
     // load the QA data maker object
     TPluginManager* pluginManager = gROOT->GetPluginManager() ;
@@ -514,13 +515,15 @@ void  AliQAManager::EndOfCycle(TObjArray * detArray)
 {
        // End of cycle QADataMakers 
        
-  if (fPrintImage) {
+  AliQAChecker::Instance()->SetRunNumber(fRunNumber) ; 
+ if (fPrintImage) {
     TCanvas fakeCanvas ; 
     fakeCanvas.Print(Form("%s%s%d.%s[", AliQAv1::GetImageFileName(), GetMode(), fRunNumber, AliQAv1::GetImageFileFormat())) ; 
   }
        for (UInt_t iDet = 0; iDet < fgkNDetectors ; iDet++) {
                if (IsSelected(AliQAv1::GetDetName(iDet))) {
                        AliQADataMaker * qadm = GetQADataMaker(iDet) ;
+                       AliQACheckerBase * qac = AliQAChecker::Instance()->GetDetQAChecker(iDet) ;
                        if (!qadm) 
                                continue ;      
                        // skip non active detectors
@@ -529,7 +532,7 @@ void  AliQAManager::EndOfCycle(TObjArray * detArray)
                                if (!det || !det->IsActive())  
                                        continue ;
                        }
-      qadm->SetPrintImage(fPrintImage) ;
+      qac->SetPrintImage(fPrintImage) ;
       
                        for (UInt_t taskIndex = 0; taskIndex < AliQAv1::kNTASKINDEX; taskIndex++) {
                                if ( fTasks.Contains(Form("%d", taskIndex)) ) 
@@ -545,6 +548,7 @@ void  AliQAManager::EndOfCycle(TString detectors)
 {
        // End of cycle QADataMakers 
        
+  AliQAChecker::Instance()->SetRunNumber(fRunNumber) ; 
   if (fPrintImage) {
     TCanvas fakeCanvas ; 
     fakeCanvas.Print(Form("%s%s%d.%s[", AliQAv1::GetImageFileName(), GetMode(), fRunNumber, AliQAv1::GetImageFileFormat())) ; 
@@ -552,12 +556,13 @@ void  AliQAManager::EndOfCycle(TString detectors)
   for (UInt_t iDet = 0; iDet < fgkNDetectors ; iDet++) {
                if (IsSelected(AliQAv1::GetDetName(iDet))) {
                        AliQADataMaker * qadm = GetQADataMaker(iDet) ;
+      AliQACheckerBase * qac = AliQAChecker::Instance()->GetDetQAChecker(iDet) ;
                        if (!qadm) 
                                continue ;      
                        // skip non active detectors
       if (!detectors.Contains(AliQAv1::GetDetName(iDet))) 
         continue ;
-      qadm->SetPrintImage(fPrintImage) ;
+      qac->SetPrintImage(fPrintImage) ;
                for (UInt_t taskIndex = 0; taskIndex < AliQAv1::kNTASKINDEX; taskIndex++) {
                                if ( fTasks.Contains(Form("%d", taskIndex)) ) 
                                        qadm->EndOfCycle(AliQAv1::GetTaskIndex(AliQAv1::GetTaskName(taskIndex))) ;
@@ -568,9 +573,14 @@ void  AliQAManager::EndOfCycle(TString detectors)
 }
 
 //_____________________________________________________________________________
-void AliQAManager::Increment()
+void AliQAManager::Increment(const AliQAv1::TASKINDEX_t taskIndex)
 {
   // Increments the cycle counter for all QA Data Makers
+  static AliQAv1::TASKINDEX_t currentTask = AliQAv1::kNTASKINDEX ; 
+  if (currentTask == taskIndex) 
+    return ; 
+  else 
+    currentTask = taskIndex ; 
        for (UInt_t iDet = 0; iDet < fgkNDetectors ; iDet++) {
                if (IsSelected(AliQAv1::GetDetName(iDet))) {
                        AliQADataMaker * qadm = GetQADataMaker(iDet) ;
@@ -1078,13 +1088,13 @@ void AliQAManager::Reset(const Bool_t sameCycle)
 }
 
 //_____________________________________________________________________________
-AliQAManager * AliQAManager::QAManager(const Char_t * mode, TMap *entryCache, Int_t run) 
+AliQAManager * AliQAManager::QAManager(AliQAv1::MODE_t mode, TMap *entryCache, Int_t run) 
 {
   // returns AliQAManager instance (singleton)
   
        if (!fgQAInstance) {
-    if ( (strcmp(mode, "sim") != 0) && (strcmp(mode, "rec") != 0) ) {
-      AliErrorClass("You must specify sim or rec") ; 
+    if ( (mode != AliQAv1::kSIMMODE) && (mode != AliQAv1::kRECMODE) ) {
+      AliErrorClass("You must specify kSIMMODE or kRECMODE") ; 
       return NULL ; 
     }
     fgQAInstance = new AliQAManager(mode) ;  
@@ -1096,6 +1106,13 @@ AliQAManager * AliQAManager::QAManager(const Char_t * mode, TMap *entryCache, In
        return fgQAInstance;
 }
 
+//_____________________________________________________________________________
+AliQAManager * AliQAManager::QAManager(AliQAv1::TASKINDEX_t task) 
+{
+  // returns AliQAManager instance (singleton)
+  return QAManager(AliQAv1::Mode(task)) ; 
+}
+
 //_____________________________________________________________________________
 TString AliQAManager::Run(const Char_t * detectors, AliRawReader * rawReader, const Bool_t sameCycle) 
 {
@@ -1116,7 +1133,7 @@ TString AliQAManager::Run(const Char_t * detectors, AliRawReader * rawReader, co
        
        if (!fCycleSame) 
     if ( !InitQA(AliQAv1::kRAWS) ) 
-      return kFALSE ; 
+      return "" ; 
   fRawReaderDelete = kFALSE ; 
 
        DoIt(AliQAv1::kRAWS) ; 
@@ -1151,7 +1168,7 @@ TString AliQAManager::Run(const Char_t * detectors, const Char_t * fileName, con
        
        if (!fCycleSame) 
     if ( !InitQA(AliQAv1::kRAWS, fileName) ) 
-      return kFALSE ; 
+      return "" ; 
        
        DoIt(AliQAv1::kRAWS) ; 
        return  fDetectorsW ;
@@ -1187,14 +1204,14 @@ TString AliQAManager::Run(const Char_t * detectors, const AliQAv1::TASKINDEX_t t
                        if ( fTasks.Contains(Form("%d", task)) ) {
         if (!fCycleSame)
           if ( !InitQA(AliQAv1::GetTaskIndex(AliQAv1::GetTaskName(task)), fileName) ) 
-            return kFALSE ;
+            return "" ;
         DoIt(AliQAv1::GetTaskIndex(AliQAv1::GetTaskName(task))) ;
                        }
                }
        } else {
     if (! fCycleSame )
       if ( !InitQA(taskIndex, fileName) ) 
-        return kFALSE ; 
+        return "" ; 
       DoIt(taskIndex) ; 
   }            
        return fDetectorsW ;