#include "AliLog.h"
#include "AliModule.h"
#include "AliQAv1.h"
+#include "AliQAChecker.h"
+#include "AliQACheckerBase.h"
#include "AliQADataMakerRec.h"
#include "AliQADataMakerSim.h"
#include "AliQAManager.h"
}
//_____________________________________________________________________________
-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),
fGAliceFileName(gAliceFilename),
fFirstEvent(0),
fMaxEvents(0),
- fMode(mode),
+ fMode(AliQAv1::GetModeName(mode)),
fNumberOfEvents(999999),
fRecoParam(),
fRunNumber(0),
}
}
SetWriteExpert() ;
- fMode.ToLower() ;
- if (fMode.Contains("sim"))
- fMode.ReplaceAll("s", "S") ;
- else if (fMode.Contains("rec"))
- fMode.ReplaceAll("r", "R") ;
}
//_____________________________________________________________________________
} //task switch
}
} // detector loop
- Increment() ;
+ Increment(taskIndex) ;
} // event loop
// Save QA data for all detectors
+
rv = Finish(taskIndex) ;
if ( taskIndex == AliQAv1::kRAWS )
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) ;
// 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 ;
}
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() ;
{
// 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
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)) )
{
// 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())) ;
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))) ;
}
//_____________________________________________________________________________
-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) ;
}
//_____________________________________________________________________________
-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) ;
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)
{
if (!fCycleSame)
if ( !InitQA(AliQAv1::kRAWS) )
- return kFALSE ;
+ return "" ;
fRawReaderDelete = kFALSE ;
DoIt(AliQAv1::kRAWS) ;
if (!fCycleSame)
if ( !InitQA(AliQAv1::kRAWS, fileName) )
- return kFALSE ;
+ return "" ;
DoIt(AliQAv1::kRAWS) ;
return fDetectorsW ;
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 ;