X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=STEER%2FAliQA.cxx;h=544b539b5555c4e13cd25a6152c709846a4d635a;hp=7c95ac2dd0bcb9df0dd93ffd2e617f8eddb0a32f;hb=4453d90074bfdad23ca5dc949656684bd3a97b63;hpb=a2b64fbdc1e6f3093e9f1735d21f1d8708f74419 diff --git a/STEER/AliQA.cxx b/STEER/AliQA.cxx index 7c95ac2dd0b..544b539b555 100644 --- a/STEER/AliQA.cxx +++ b/STEER/AliQA.cxx @@ -34,6 +34,7 @@ #include // --- ROOT system --- +#include #include #include #include @@ -50,7 +51,7 @@ AliQA * AliQA::fgQA = 0x0 ; TFile * AliQA::fgQADataFile = 0x0 ; TString AliQA::fgQADataFileName = "QA" ; // will transform into Det.QA.run.cycle.root TFile * AliQA::fgQARefFile = 0x0 ; -TString AliQA::fgQARefDirName = "" ; +TString AliQA::fgQARefDirName = "" ; TString AliQA::fgQARefFileName = "QA.root" ; TFile * AliQA::fgQAResultFile = 0x0 ; TString AliQA::fgQAResultDirName = "" ; @@ -67,15 +68,19 @@ TString AliQA::fgRTNames[] = {"UNKNOWN", "AUTO_TEST", "CALIBRATION "STANDALONE_EMD", "STANDALONE_LASER", "STANDALONE_MB", "STANDALONE_PEDESTAL", "STANDALONE_SEMICENTRAL", "STANDALONE_PULSER" } ; TString AliQA::fgTaskNames[] = {"Raws", "Hits", "SDigits", "Digits", "RecPoints", "TrackSegments", "RecParticles", "ESDs"} ; -const TString AliQA::fkgLabLocalFile = "file://" ; -const TString AliQA::fkgLabLocalOCDB = "local://" ; -const TString AliQA::fkgLabAliEnOCDB = "alien://" ; -const TString AliQA::fkgRefFileName = "QA.root" ; -const TString AliQA::fkgQAName = "QA" ; -const TString AliQA::fkgQACorrNtName = "CorrQA" ; -const TString AliQA::fkgRefOCDBDirName = "Ref" ; -TString AliQA::fkgRefDataDirName = "" ; -const TString AliQA::fkgQARefOCDBDefault = "alien://folder=/alice/QA/20" ; +const TString AliQA::fgkLabLocalFile = "file://" ; +const TString AliQA::fgkLabLocalOCDB = "local://" ; +const TString AliQA::fgkLabAliEnOCDB = "alien://" ; +const TString AliQA::fgkRefFileName = "QA.root" ; +const TString AliQA::fgkQAName = "QA" ; +const TString AliQA::fgkQACorrNtName = "CorrQA" ; +const TString AliQA::fgkRefOCDBDirName = "Ref" ; +TString AliQA::fgkRefDataDirName = "" ; +const TString AliQA::fgkQARefOCDBDefault = "alien://folder=/alice/QA/20" ; +const TString AliQA::fgkExpert = "Expert" ; +const UInt_t AliQA::fgkExpertBit = 16 ; +const UInt_t AliQA::fgkQABit = 17 ; + //____________________________________________________________________________ AliQA::AliQA() : TNamed("", ""), @@ -96,11 +101,13 @@ AliQA::AliQA() : AliQA::AliQA(const AliQA& qa) : TNamed(qa), fNdet(qa.fNdet), - fQA(qa.fQA), + fQA(new ULong_t[qa.fNdet]), fDet(qa.fDet), fTask(qa.fTask) { // cpy ctor + for (Int_t index = 0 ; index < fNdet ; index++) + fQA[index] = qa.fQA[index] ; } //_____________________________________________________________________________ @@ -172,7 +179,7 @@ void AliQA::Close() } //_______________________________________________________________ -const Bool_t AliQA::CheckFatal() const +Bool_t AliQA::CheckFatal() const { // check if any FATAL status is set Bool_t rv = kFALSE ; @@ -183,7 +190,7 @@ const Bool_t AliQA::CheckFatal() const } //_______________________________________________________________ -const Bool_t AliQA::CheckRange(DETECTORINDEX_t det) const +Bool_t AliQA::CheckRange(DETECTORINDEX_t det) const { // check if detector is in given detector range: 0-kNDET @@ -194,7 +201,7 @@ const Bool_t AliQA::CheckRange(DETECTORINDEX_t det) const } //_______________________________________________________________ -const Bool_t AliQA::CheckRange(ALITASK_t task) const +Bool_t AliQA::CheckRange(ALITASK_t task) const { // check if task is given taskk range: 0:kNTASK Bool_t rv = ( task < kRAW || task > kNTASK ) ? kFALSE : kTRUE ; @@ -204,7 +211,7 @@ const Bool_t AliQA::CheckRange(ALITASK_t task) const } //_______________________________________________________________ -const Bool_t AliQA::CheckRange(QABIT_t bit) const +Bool_t AliQA::CheckRange(QABIT_t bit) const { // check if bit is in given bit range: 0-kNBit @@ -217,7 +224,7 @@ const Bool_t AliQA::CheckRange(QABIT_t bit) const //_______________________________________________________________ -const char * AliQA::GetAliTaskName(ALITASK_t tsk) +char * AliQA::GetAliTaskName(ALITASK_t tsk) { // returns the char name corresponding to module index TString tskName ; @@ -243,11 +250,11 @@ const char * AliQA::GetAliTaskName(ALITASK_t tsk) tsk = kNULLTASK ; break ; } - return tskName.Data() ; + return Form("%s", tskName.Data()) ; } //_______________________________________________________________ -const char * AliQA::GetBitName(QABIT_t bit) const +char * AliQA::GetBitName(QABIT_t bit) const { // returns the char name corresponding to bit TString bitName ; @@ -270,11 +277,11 @@ const char * AliQA::GetBitName(QABIT_t bit) const bit = kNULLBit ; break ; } - return bitName.Data() ; + return Form("%s", bitName.Data()) ; } //_______________________________________________________________ -const AliQA::DETECTORINDEX_t AliQA::GetDetIndex(const char * name) +AliQA::DETECTORINDEX_t AliQA::GetDetIndex(const char * name) { // returns the detector index corresponding to a given name TString sname(name) ; @@ -300,10 +307,10 @@ const char * AliQA::GetDetName(Int_t det) } //_______________________________________________________________ -TFile * AliQA::GetQADataFile(const char * name, const Int_t run, const Int_t cycle) +TFile * AliQA::GetQADataFile(const char * name, const Int_t run) { // opens the file to store the detectors Quality Assurance Data Maker results - const char * temp = Form("%s.%s.%d.%d.root", name, fgQADataFileName.Data(), run, cycle) ; + const char * temp = Form("%s.%s.%d.root", name, fgQADataFileName.Data(), run) ; TString opt ; if (! fgQADataFile ) { if (gSystem->AccessPathName(temp)) @@ -337,8 +344,7 @@ TFile * AliQA::GetQADataFile(const char * fileName) if (!gSystem->AccessPathName(fileName)) { fgQADataFile = TFile::Open(fileName) ; } else { - printf("File %s not found", fileName) ; - exit(1) ; + AliFatalClass(Form("File %s not found", fileName)) ; } return fgQADataFile ; } @@ -352,8 +358,8 @@ TFile * AliQA::GetQAResultFile() fgQAResultFile = 0x0 ; // if (!fgQAResultFile) { TString dirName(fgQAResultDirName) ; - if ( dirName.Contains(fkgLabLocalFile)) - dirName.ReplaceAll(fkgLabLocalFile, "") ; + if ( dirName.Contains(fgkLabLocalFile)) + dirName.ReplaceAll(fgkLabLocalFile, "") ; TString fileName(dirName + fgQAResultFileName) ; TString opt("") ; if ( !gSystem->AccessPathName(fileName) ) @@ -372,13 +378,14 @@ TFile * AliQA::GetQAResultFile() //_______________________________________________________________ const TString AliQA::GetRunTypeName(RUNTYPE_t rt) { + // returns the name of a run type TString rv("Invalid Run Type") ; if ( rt == kNULLTYPE ) { rv = "Known RUN_TYPE are: \n" ; for (Int_t index = 0 ; index < kNTYPE; index++) { rv += Form("%2d -- %s\n", index, fgRTNames[index].Data()) ; } - printf("%s", rv.Data()) ; + AliErrorClass(Form("%s", rv.Data())) ; return "" ; } else { @@ -389,11 +396,11 @@ const TString AliQA::GetRunTypeName(RUNTYPE_t rt) } //_______________________________________________________________ -const AliQA::TASKINDEX_t AliQA::GetTaskIndex(const char * name) +AliQA::TASKINDEX_t AliQA::GetTaskIndex(const char * name) { // returns the detector index corresponding to a given name TString sname(name) ; - TASKINDEX_t rv ; + TASKINDEX_t rv = kNULLTASKINDEX ; for (Int_t tsk = 0; tsk < kNTASKINDEX ; tsk++) { if ( GetTaskName(tsk) == sname ) { rv = TASKINDEX_t(tsk) ; @@ -404,7 +411,7 @@ const AliQA::TASKINDEX_t AliQA::GetTaskIndex(const char * name) } //_______________________________________________________________ -const Bool_t AliQA::IsSet(DETECTORINDEX_t det, ALITASK_t tsk, QABIT_t bit) const +Bool_t AliQA::IsSet(DETECTORINDEX_t det, ALITASK_t tsk, QABIT_t bit) const { // Checks is the requested bit is set @@ -420,7 +427,7 @@ const Bool_t AliQA::IsSet(DETECTORINDEX_t det, ALITASK_t tsk, QABIT_t bit) const } //_______________________________________________________________ -const Bool_t AliQA::IsSetAny(DETECTORINDEX_t det, ALITASK_t tsk) const +Bool_t AliQA::IsSetAny(DETECTORINDEX_t det, ALITASK_t tsk) const { // Checks is the requested bit is set @@ -440,7 +447,7 @@ const Bool_t AliQA::IsSetAny(DETECTORINDEX_t det, ALITASK_t tsk) const return kTRUE ; } //_______________________________________________________________ -const Bool_t AliQA::IsSetAny(DETECTORINDEX_t det) const +Bool_t AliQA::IsSetAny(DETECTORINDEX_t det) const { // Checks is the requested bit is set @@ -501,13 +508,13 @@ AliQA * AliQA::Instance(const ALITASK_t tsk) fgQA = new AliQA(tsk) ; break ; case kREC: - printf("fgQA = gAlice->GetQA()") ; + AliInfoClass("fgQA = gAlice->GetQA()") ; break ; case kESD: - printf("fgQA = dynamic_cast (esdFile->Get(\"QA\")") ; + AliInfoClass("fgQA = dynamic_cast (esdFile->Get(\"QA\")") ; break ; case kANA: - printf("fgQA = dynamic_cast (esdFile->Get(\"QA\")") ; + AliInfoClass("fgQA = dynamic_cast (esdFile->Get(\"QA\")") ; break ; case kNTASK: break ; @@ -557,7 +564,7 @@ void AliQA::Merge(TCollection * list) { } //_______________________________________________________________ -const ULong_t AliQA::Offset(ALITASK_t tsk) const +ULong_t AliQA::Offset(ALITASK_t tsk) const { // Calculates the bit offset for a given module (SIM, REC, ESD, ANA) @@ -603,20 +610,20 @@ void AliQA::SetQARefStorage(const char * name) // Set the root directory where the QA reference data are stored fgQARefDirName = name ; - if ( fgQARefDirName.Contains(fkgLabLocalFile) ) - fgQARefFileName = fkgRefFileName ; - else if ( fgQARefDirName.Contains(fkgLabLocalOCDB) ) - fgQARefFileName = fkgQAName ; - else if ( fgQARefDirName.Contains(fkgLabAliEnOCDB) ) - fgQARefFileName = fkgQAName ; + if ( fgQARefDirName.Contains(fgkLabLocalFile) ) + fgQARefFileName = fgkRefFileName ; + else if ( fgQARefDirName.Contains(fgkLabLocalOCDB) ) + fgQARefFileName = fgkQAName ; + else if ( fgQARefDirName.Contains(fgkLabAliEnOCDB) ) + fgQARefFileName = fgkQAName ; else { - printf("ERROR: %s is an invalid storage definition\n", name) ; + AliErrorClass(Form("%s is an invalid storage definition\n", name)) ; fgQARefDirName = "" ; fgQARefFileName = "" ; } TString tmp(fgQARefDirName) ; // + fgQARefFileName) ; - printf("AliQA::SetQARefDir: QA references are in %s\n", tmp.Data() ) ; + AliInfoClass(Form("AliQA::SetQARefDir: QA references are in %s\n", tmp.Data()) ) ; } //_____________________________________________________________________________ @@ -633,7 +640,7 @@ void AliQA::SetQARefDataDirName(const char * name) } if (rt == kNULLTYPE) { - printf("AliQA::SetQARefDataDirName: %s is an unknown RUN TYPE name\n", name) ; + AliWarningClass(Form("AliQA::SetQARefDataDirName: %s is an unknown RUN TYPE name\n", name)) ; return ; } @@ -646,9 +653,9 @@ void AliQA::SetQAResultDirName(const char * name) // Set the root directory where to store the QA status object fgQAResultDirName.Prepend(name) ; - printf("AliQA::SetQAResultDirName: QA results are in %s\n", fgQAResultDirName.Data()) ; - if ( fgQAResultDirName.Contains(fkgLabLocalFile)) - fgQAResultDirName.ReplaceAll(fkgLabLocalFile, "") ; + AliInfoClass(Form("AliQA::SetQAResultDirName: QA results are in %s\n", fgQAResultDirName.Data())) ; + if ( fgQAResultDirName.Contains(fgkLabLocalFile)) + fgQAResultDirName.ReplaceAll(fgkLabLocalFile, "") ; fgQAResultFileName.Prepend(fgQAResultDirName) ; } @@ -693,7 +700,7 @@ void AliQA::ShowStatus(DETECTORINDEX_t det, ALITASK_t tsk) const tskStatus[kESD] = status & 0x0f000 ; tskStatus[kANA] = status & 0xf0000 ; - AliInfo(Form("====> QA Status for %8s raw =0x%x, sim=0x%x, rec=0x%x, esd=0x%x, ana=0x%x", GetDetName(det).Data(), + AliInfo(Form("====> QA Status for %8s raw =0x%lx, sim=0x%lx, rec=0x%lx, esd=0x%lx, ana=0x%lx", GetDetName(det).Data(), tskStatus[kRAW], tskStatus[kSIM], tskStatus[kREC], tskStatus[kESD], tskStatus[kANA] )) ; if (tsk == kNULLTASK) { for (Int_t itsk = kRAW ; itsk < kNTASK ; itsk++) { @@ -716,7 +723,7 @@ void AliQA::ShowASCIIStatus(DETECTORINDEX_t det, ALITASK_t tsk, const ULong_t st } } if (! text.IsNull()) - printf(" %8s %4s 0x%4x, Problem signalled: %8s \n", GetDetName(det).Data(), GetAliTaskName(tsk), status, text.Data()) ; + AliWarningClass(Form(" %8s %4s 0x%4lx, Problem signalled: %8s \n", GetDetName(det).Data(), GetAliTaskName(tsk), status, text.Data())) ; } //_______________________________________________________________