X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliQAChecker.cxx;h=a3059e56c2fe12a1b3f87f51014e0f94c4928956;hb=52d1b7b0d72c75765fd3ed9160cedd613d013e33;hp=f3253fd5d3b71c7bf5e6d5c2f60b9fc66ce06777;hpb=44ed7a669ab9cf51d3f37f1f6736443b71c54926;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliQAChecker.cxx b/STEER/AliQAChecker.cxx index f3253fd5d3b..a3059e56c2f 100644 --- a/STEER/AliQAChecker.cxx +++ b/STEER/AliQAChecker.cxx @@ -56,7 +56,8 @@ AliQAChecker::AliQAChecker(const char* name, const char* title) : fRunInfoOwner(kFALSE), fRefFile(0x0), fFoundDetectors("."), - fEventSpecie(AliRecoParam::kDefault) + fEventSpecie(AliRecoParam::kDefault), + fRun(0) { // ctor: initialise checkers and open the data file for (Int_t det = 0 ; det < AliQAv1::kNDET ; det++) @@ -71,7 +72,8 @@ AliQAChecker::AliQAChecker(const AliQAChecker& qac) : fRunInfoOwner(kFALSE), fRefFile(qac.fRefFile), fFoundDetectors(qac.fFoundDetectors), - fEventSpecie(qac.fEventSpecie) + fEventSpecie(qac.fEventSpecie), + fRun(qac.fRun) { // copy constructor @@ -116,7 +118,7 @@ AliQAChecker::~AliQAChecker() } else if (det == AliQAv1::kCORR) { qac = new AliCorrQAChecker() ; } else { - AliDebug(AliQAv1::GetQADebugLevel(), Form("Retrieving QA checker for %s", detName.Data())) ; + AliDebugClass(AliQAv1::GetQADebugLevel(), Form("Retrieving QA checker for %s", detName.Data())) ; TPluginManager* pluginManager = gROOT->GetPluginManager() ; TString qacName = "Ali" + detName + "QAChecker" ; @@ -144,67 +146,6 @@ AliQAChecker::~AliQAChecker() return qac ; } - -//_____________________________________________________________________________ -void AliQAChecker::GetRefSubDir(const char * det, const char * task, TDirectory *& dirFile, TObjArray **& dirOCDB) -{ - // Opens and returns the file with the reference data - dirFile = NULL ; - TString refStorage(AliQAv1::GetQARefStorage()) ; -// if (refStorage.Contains(AliQAv1::GetLabLocalFile())) { -// refStorage.ReplaceAll(AliQAv1::GetLabLocalFile(), "") ; -// refStorage += AliQAv1::GetQARefFileName() ; -// if ( fRefFile ) -// if ( fRefFile->IsOpen() ) -// fRefFile->Close() ; -// fRefFile = TFile::Open(refStorage.Data()) ; -// if (!fRefFile) { -// AliError(Form("Cannot find reference file %s", refStorage.Data())) ; -// dirFile = NULL ; -// } -// dirFile = fRefFile->GetDirectory(det) ; -// if (!dirFile) { -// AliWarning(Form("Directory %s not found in %d", det, refStorage.Data())) ; -// } else { -// dirFile = dirFile->GetDirectory(task) ; -// if (!dirFile) -// AliWarning(Form("Directory %s/%s not found in %s", det, task, refStorage.Data())) ; -// } -// } else - if (!refStorage.Contains(AliQAv1::GetLabLocalOCDB()) && !refStorage.Contains(AliQAv1::GetLabAliEnOCDB())) { - AliError(Form("%s is not a valid location for reference data", refStorage.Data())) ; - return ; - } else { - AliQAManager* manQA = AliQAManager::QAManager() ; - for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++) { - if ( !AliQAv1::Instance()->IsEventSpecieSet(specie) ) - continue ; - //if ( strcmp(AliQAv1::GetRefDataDirName(), "") == 0 ) { // the name of the last level of the directory is not set (EventSpecie) - // Get it from RunInfo - //if (!fRunInfo) // not yet set, get the info from GRP - // LoadRunInfoFromGRP() ; - AliQAv1::SetQARefDataDirName(specie) ; - //} - if ( ! manQA->GetLock() ) { - manQA->SetDefaultStorage(AliQAv1::GetQARefStorage()) ; - manQA->SetSpecificStorage("*", AliQAv1::GetQARefStorage()) ; - manQA->SetRun(AliCDBManager::Instance()->GetRun()) ; - manQA->SetLock() ; - } - char * detOCDBDir = Form("%s/%s/%s", det, AliQAv1::GetRefOCDBDirName(), AliQAv1::GetRefDataDirName()) ; - AliCDBEntry * entry = manQA->Get(detOCDBDir, manQA->GetRun()) ; - if (entry) { - dirOCDB = new TObjArray*[AliRecoParam::kNSpecies] ; - TList * listDetQAD = dynamic_cast(entry->GetObject()) ; - TIter next(listDetQAD) ; - TObjArray * ar ; - while ( (ar = (TObjArray*)next()) ) - if ( listDetQAD ) - dirOCDB[specie] = dynamic_cast(listDetQAD->FindObject(Form("%s/%s", task, AliRecoParam::GetEventSpecieName(specie)))) ; - } - } - } -} //_____________________________________________________________________________ AliQAChecker * AliQAChecker::Instance() @@ -223,7 +164,7 @@ void AliQAChecker::LoadRunInfoFromGRP() AliGRPObject* grpObject = 0x0; if (entry) { - TMap* m = dynamic_cast(entry->GetObject()); // old GRP entry + TMap* m = static_cast(entry->GetObject()); // old GRP entry if (m) { AliDebug(AliQAv1::GetQADebugLevel(), "It is a map"); @@ -234,7 +175,7 @@ void AliQAChecker::LoadRunInfoFromGRP() else { AliDebug(AliQAv1::GetQADebugLevel(), "It is a new GRP object"); - grpObject = dynamic_cast(entry->GetObject()); // new GRP entry + grpObject = static_cast(entry->GetObject()); // new GRP entry } entry->SetOwner(0); @@ -310,18 +251,18 @@ void AliQAChecker::LoadRunInfoFromGRP() } //_____________________________________________________________________________ -Bool_t AliQAChecker::Run(const char * fileName) +Bool_t AliQAChecker::Run(const char * fileName, AliDetectorRecoParam * recoParam) { // run the Quality Assurance Checker for all tasks Hits, SDigits, Digits, DigitsR, RecPoints, TrackSegments, RecParticles and ESDs // starting from data in file TStopwatch stopwatch; stopwatch.Start(); - + //search for all detectors QA directories TList * detKeyList = AliQAv1::GetQADataFile(fileName)->GetListOfKeys() ; TIter nextd(detKeyList) ; TKey * detKey ; - while ( (detKey = dynamic_cast(nextd()) ) ) { + while ( (detKey = static_cast(nextd()) ) ) { AliDebug(AliQAv1::GetQADebugLevel(), Form("Found %s", detKey->GetName())) ; //Check which detector TString detName ; @@ -357,6 +298,8 @@ Bool_t AliQAChecker::Run(const char * fileName) index = AliQAv1::kSIM ; if ( taskName == AliQAv1::GetTaskName(AliQAv1::kDIGITS) ) index = AliQAv1::kSIM ; + if ( taskName == AliQAv1::GetTaskName(AliQAv1::kRAWS) ) + index = AliQAv1::kRAW ; if ( taskName == AliQAv1::GetTaskName(AliQAv1::kDIGITSR) ) index = AliQAv1::kREC ; if ( taskName == AliQAv1::GetTaskName(AliQAv1::kRECPOINTS) ) @@ -368,27 +311,24 @@ Bool_t AliQAChecker::Run(const char * fileName) if ( taskName == AliQAv1::GetTaskName(AliQAv1::kESDS) ) index = AliQAv1::kESD ; qac->Init(AliQAv1::DETECTORINDEX_t(det)) ; - - TDirectory * refDir = NULL ; - TObjArray ** refOCDBDir = NULL ; - GetRefSubDir(detNameQA.Data(), taskName.Data(), refDir, refOCDBDir) ; - qac->SetRefandData(refDir, refOCDBDir, taskDir) ; - qac->Run(index) ; + qac->Run(index, recoParam) ; } } - AliInfo("QA performed for following detectors:") ; + TString detList ; for ( Int_t det = 0; det < AliQAv1::kNDET; det++) { if (fFoundDetectors.Contains(AliQAv1::GetDetName(det))) { - AliInfoClass(Form("%s, ",AliQAv1::GetDetName(det))) ; + detList += AliQAv1::GetDetName(det) ; + detList += " " ; fFoundDetectors.ReplaceAll(AliQAv1::GetDetName(det), "") ; + AliQAv1::Instance()->Show(AliQAv1::GetDetIndex(AliQAv1::GetDetName(det))) ; } } - printf("\n") ; + AliInfo(Form("QA performed for following detectors: %s", detList.Data())) ; return kTRUE ; } //_____________________________________________________________________________ -Bool_t AliQAChecker::Run(AliQAv1::DETECTORINDEX_t det, AliQAv1::TASKINDEX_t task, TObjArray ** list) +Bool_t AliQAChecker::Run(AliQAv1::DETECTORINDEX_t det, AliQAv1::TASKINDEX_t task, TObjArray ** list, AliDetectorRecoParam * recoParam) { // run the Quality Assurance Checker for detector det, for task task starting from data in list @@ -418,17 +358,17 @@ Bool_t AliQAChecker::Run(AliQAv1::DETECTORINDEX_t det, AliQAv1::TASKINDEX_t task else if ( task == AliQAv1::kESDS ) index = AliQAv1::kESD ; - TDirectory * refDir = NULL ; - TObjArray ** refOCDBDir = NULL ; qac->Init(det) ; - GetRefSubDir(AliQAv1::GetDetName(det), AliQAv1::GetTaskName(task), refDir, refOCDBDir) ; - qac->SetRefandData(refDir, refOCDBDir) ; - qac->Run(index, list) ; + qac->Run(index, list, recoParam) ; + + // make the image + qac->MakeImage(list, task, AliQAv1::Mode(task)) ; + return kTRUE ; } //_____________________________________________________________________________ -Bool_t AliQAChecker::Run(AliQAv1::DETECTORINDEX_t det, AliQAv1::TASKINDEX_t task, TNtupleD ** list) +Bool_t AliQAChecker::Run(AliQAv1::DETECTORINDEX_t det, AliQAv1::TASKINDEX_t task, TNtupleD ** list, AliDetectorRecoParam * recoParam) { // run the Quality Assurance Checker for detector det, for task task starting from data in list @@ -458,11 +398,8 @@ Bool_t AliQAChecker::Run(AliQAv1::DETECTORINDEX_t det, AliQAv1::TASKINDEX_t task else if ( task == AliQAv1::kESDS ) index = AliQAv1::kESD ; - TDirectory * refDir = NULL ; - TObjArray ** refOCDBDir = NULL ; qac->Init(det) ; - GetRefSubDir(AliQAv1::GetDetName(det), AliQAv1::GetTaskName(task), refDir, refOCDBDir) ; - qac->SetRefandData(refDir, refOCDBDir) ; - qac->Run(index, list) ; + qac->Run(index, list, recoParam) ; + return kTRUE ; }