5 * Created by schutz on 29/09/08.
6 * Copyright 2008 CERN. All rights reserved.
16 // Macro to analyse the output of the QAChecker
18 // Open the file that holds the AliQA object
19 const char * resultFileName = "QA.root" ; //AliQA::GetQAResultFileName() ;
20 const char * msgE = "QA ERROR: " ;
21 const char * msgS = "QA SIGNAL: " ;
23 TFile * inputQAFile = TFile::Open(resultFileName) ;
24 if ( ! inputQAFile ) {
25 printf("QA ERROR: File %s not found\n", AliQA::GetQAResultFileName()) ;
28 // Get the AliQA object from the file
30 AliQA * qa = dynamic_cast<AliQA*>(inputQAFile->Get(AliQA::GetQAName())) ;
31 // Show the status of all Detectors
32 for (Int_t det = 0 ; det < AliQA::kNDET ; det++) {
33 for (Int_t task = 0 ; task < AliQA::kNTASK ; task++) {
34 if (qa->IsSetAny(AliQA::DETECTORINDEX_t(det), AliQA::ALITASK_t(task))) {
35 qa->ShowStatus(AliQA::DETECTORINDEX_t(det), AliQA::ALITASK_t(task)) ;
36 // found a bad detector, open the QA data file and search for the faulty histogram
37 TFile * dataQAFile = TFile::Open(AliQA::GetQADataFileName(AliQA::GetDetName(det), run)) ;
39 printf("%s File %s not found\n", msgE, AliQA::GetQADataFileName(AliQA::GetDetName(det), run)) ;
42 dataQAFile->cd(AliQA::GetDetName(AliQA::DETECTORINDEX_t(det))) ;
43 TDirectory * saveDir = gDirectory ;
45 case AliQA::kNULLTASK:
48 Bool_t dir = saveDir->cd(AliQA::GetTaskName(AliQA::kRAWS)) ;
50 printf("%s Directory %s not found in %s\n", msgE, AliQA::GetTaskName(AliQA::kRAWS).Data(), AliQA::GetQADataFileName(AliQA::GetDetName(det), run)) ;
52 TList * listofkeys = gDirectory->GetListOfKeys() ;
53 for (Int_t key = 0 ; key < listofkeys->GetEntries() ; key++) {
54 TNamed * obj = dynamic_cast<TNamed*>(listofkeys->At(key)) ;
56 Bool_t rv = obj->TestBit(AliQA::GetQABit()) ;
58 printf("%s QA bit set in %s/%s/%s\n",
60 AliQA::GetDetName(det),
61 AliQA::GetTaskName(AliQA::kRAWS).Data(),
68 dir = saveDir->cd(AliQA::GetTaskName(AliQA::kHITS)) ;
70 printf("%s Directory %s not found in %s\n", msgE, AliQA::GetTaskName(AliQA::kHITS).Data(), AliQA::GetQADataFileName(AliQA::GetDetName(det), run)) ;
72 TList * listofkeys = gDirectory->GetListOfKeys() ;
73 for (Int_t key = 0 ; key < listofkeys->GetEntries() ; key++) {
74 TNamed * obj = dynamic_cast<TNamed*>(listofkeys->At(key)) ;
76 Bool_t rv = obj->TestBit(AliQA::GetQABit()) ;
78 printf("%s QA bit set in %s/%s/%s\n",
80 AliQA::GetDetName(det),
81 AliQA::GetTaskName(AliQA::kHITS).Data(),
86 dir = saveDir->cd(AliQA::GetTaskName(AliQA::kSDIGITS)) ;
88 printf("%s Directory %s not found in %s\n", msgE, AliQA::GetTaskName(AliQA::kSDIGITS).Data(), AliQA::GetQADataFileName(AliQA::GetDetName(det), run)) ;
90 TList * listofkeys = gDirectory->GetListOfKeys() ;
91 for (Int_t key = 0 ; key < listofkeys->GetEntries() ; key++) {
92 TNamed * obj = dynamic_cast<TNamed*>(listofkeys->At(key)) ;
94 Bool_t rv = obj->TestBit(AliQA::GetQABit()) ;
96 printf("%s QA bit set in %s/%s/%s\n",
98 AliQA::GetDetName(det),
99 AliQA::GetTaskName(AliQA::kSDIGITS).Data(),
105 dir = saveDir->cd(AliQA::GetTaskName(AliQA::kDIGITS)) ;
107 printf("%s Directory %s not found in %s\n", msgE, AliQA::GetTaskName(AliQA::kDIGITS).Data(), AliQA::GetQADataFileName(AliQA::GetDetName(det), run)) ;
109 TList * listofkeys = gDirectory->GetListOfKeys() ;
110 for (Int_t key = 0 ; key < listofkeys->GetEntries() ; key++) {
111 TNamed * obj = dynamic_cast<TNamed*>(listofkeys->At(key)) ;
113 Bool_t rv = obj->TestBit(AliQA::GetQABit()) ;
115 printf("%s QA bit set in %s/%s/%s\n",
117 AliQA::GetDetName(det),
118 AliQA::GetTaskName(AliQA::kDIGITS).Data(),
125 dir = saveDir->cd(AliQA::GetTaskName(AliQA::kRECPOINTS)) ;
127 printf("%s Directory %s not found in %s\n", msgE, AliQA::GetTaskName(AliQA::kRECPOINTS).Data(), AliQA::GetQADataFileName(AliQA::GetDetName(det), run)) ;
129 TList * listofkeys = gDirectory->GetListOfKeys() ;
130 for (Int_t key = 0 ; key < listofkeys->GetEntries() ; key++) {
131 TNamed * obj = dynamic_cast<TNamed*>(listofkeys->At(key)) ;
133 Bool_t rv = obj->TestBit(AliQA::GetQABit()) ;
135 printf("%s QA bit set in %s/%s/%s\n",
137 AliQA::GetDetName(det),
138 AliQA::GetTaskName(AliQA::kRECPOINTS).Data(),
145 dir = saveDir->cd(AliQA::GetTaskName(AliQA::kESDS)) ;
147 printf("%s Directory %s not found in %s\n", msgE, AliQA::GetTaskName(AliQA::kESDS).Data(), AliQA::GetQADataFileName(AliQA::GetDetName(det), run)) ;
149 TList * listofkeys = gDirectory->GetListOfKeys() ;
150 for (Int_t key = 0 ; key < listofkeys->GetEntries() ; key++) {
151 TNamed * obj = dynamic_cast<TNamed*>(listofkeys->At(key)) ;
153 Bool_t rv = obj->TestBit(AliQA::GetQABit()) ;
155 printf("%s QA bit set in %s/%s/%s\n",
157 AliQA::GetDetName(det),
158 AliQA::GetTaskName(AliQA::kESDS).Data(),
169 dataQAFile->Close() ;
173 inputQAFile->Close() ;