"ZDC", "PMD", "T0", "VZERO", "ACORDE", "HLT", "Global", "CORR"} ;
TString AliQAv1::fgGRPPath = "GRP/GRP/Data" ;
TString AliQAv1::fgTaskNames[] = {"Raws", "Hits", "SDigits", "Digits", "DigitsR", "RecPoints", "TrackSegments", "RecParticles", "ESDs"} ;
-TString AliQAv1::fgModeNames[] = {"", "Sim", "Rec"} ;
+TString AliQAv1::fgModeNames[] = {"", "Sim", "Rec", "QA"} ;
const TString AliQAv1::fgkLabLocalFile = "file://" ;
const TString AliQAv1::fgkLabLocalOCDB = "local://" ;
const TString AliQAv1::fgkLabAliEnOCDB = "alien://" ;
const char * AliQAv1::GetAliTaskName(ALITASK_t tsk)
{
// returns the char name corresponding to module index
- TString tskName ;
switch (tsk) {
case kNULLTASK:
break ;
case kRAW:
- tskName = "RAW" ;
+ return "RAW" ;
break ;
case kSIM:
- tskName = "SIM" ;
+ return "SIM" ;
break ;
case kREC:
- tskName = "REC" ;
+ return "REC" ;
break ;
case kESD:
- tskName = "ESD" ;
+ return "ESD" ;
break ;
case kANA:
- tskName = "ANA" ;
+ return "ANA" ;
break ;
default:
- tsk = kNULLTASK ;
+ return "" ;
break ;
}
- return tskName.Data() ;
+ return "" ;
}
//_______________________________________________________________
TFile * AliQAv1::GetQAResultFile()
{
// opens the file to store the Quality Assurance Data Checker results
- if (fgQAResultFile)
- if (fgQAResultFile->IsOpen())
- fgQAResultFile->Close();
-
- TString dirName(fgQAResultDirName) ;
- if ( dirName.Contains(fgkLabLocalFile))
- dirName.ReplaceAll(fgkLabLocalFile, "") ;
- TString fileName(dirName + fgQAResultFileName) ;
- TString opt("") ;
- if ( !gSystem->AccessPathName(fileName) )
- opt = "UPDATE" ;
- else {
- if ( gSystem->AccessPathName(dirName) )
- gSystem->mkdir(dirName) ;
- opt = "NEW" ;
- }
- fgQAResultFile = TFile::Open(fileName, opt) ;
-
- return fgQAResultFile ;
+ if (fgQAResultFile) {
+ if (fgQAResultFile->IsOpen())
+ fgQAResultFile->Close();
+ delete fgQAResultFile;
+ }
+ TString dirName(fgQAResultDirName) ;
+ if ( dirName.Contains(fgkLabLocalFile))
+ dirName.ReplaceAll(fgkLabLocalFile, "") ;
+ TString fileName(dirName + fgQAResultFileName) ;
+ TString opt("") ;
+ if ( !gSystem->AccessPathName(fileName) )
+ opt = "UPDATE" ;
+ else {
+ if ( gSystem->AccessPathName(dirName) )
+ gSystem->mkdir(dirName) ;
+ opt = "NEW" ;
+ }
+ fgQAResultFile = TFile::Open(fileName, opt) ;
+ return fgQAResultFile ;
}
//_______________________________________________________________
// Get an instance of the singleton. The only authorized way to call the ctor
if ( ! fgQA) {
- TFile * f = GetQAResultFile() ;
- fgQA = static_cast<AliQAv1 *>(f->Get("QA")) ;
- f->Close() ;
+ GetQAResultFile() ;
+ fgQA = static_cast<AliQAv1 *>(fgQAResultFile->Get("QA")) ;
if ( ! fgQA )
fgQA = new AliQAv1() ;
}
// Get an instance of the singleton. The only authorized way to call the ctor
if ( ! fgQA) {
- TFile * f = GetQAResultFile() ;
- fgQA = static_cast<AliQAv1 *>(f->Get(GetQAName())) ;
+ GetQAResultFile() ;
+ fgQA = static_cast<AliQAv1 *>(fgQAResultFile->Get(GetQAName())) ;
if ( ! fgQA )
fgQA = new AliQAv1(det) ;
}
tskStatus[kESD] = status & 0x0f000 ;
tskStatus[kANA] = status & 0xf0000 ;
- AliInfo(Form("====> QA Status for %8s %8s raw =0x%x, sim=0x%x, rec=0x%x, esd=0x%x, ana=0x%x", GetDetName(det).Data(), AliRecoParam::GetEventSpecieName(es),
+ AliInfo(Form("====> QA Status for %8s %8s raw =0x%lx, sim=0x%lx, rec=0x%lx, esd=0x%lx, ana=0x%lx", GetDetName(det).Data(), AliRecoParam::GetEventSpecieName(es),
tskStatus[kRAW], tskStatus[kSIM], tskStatus[kREC], tskStatus[kESD], tskStatus[kANA] )) ;
if (tsk == kNULLTASK) {
for (Int_t itsk = kRAW ; itsk < kNTASK ; itsk++) {
void AliQAv1::ShowASCIIStatus(AliRecoParam::EventSpecie_t es, DETECTORINDEX_t det, ALITASK_t tsk, const ULong_t status) const
{
// print the QA status in human readable format
- TString text;
- QABIT_t bit = GetQAStatusBit(es, det, tsk) ;
+ const QABIT_t bit = GetQAStatusBit(es, det, tsk) ;
if ( bit != kNULLBit ) {
- text = GetBitName(bit) ;
- text += " " ;
- AliInfoClass(Form(" %8s %8s %4s 0x%4lx, Problem signalled: %8s \n", AliRecoParam::GetEventSpecieName(es), GetDetName(det).Data(), GetAliTaskName(tsk), status, text.Data())) ;
+ AliInfoClass(Form(" %8s %8s %4s \n", AliRecoParam::GetEventSpecieName(es), GetDetName(det).Data(), GetAliTaskName(tsk))) ;
+ AliInfoClass(Form(" %8s %8s %4s 0x%4lx, Problem signalled: %8s \n", AliRecoParam::GetEventSpecieName(es), GetDetName(det).Data(), GetAliTaskName(tsk), status, GetBitName(bit))) ;
}
}