AliRoot Core  edcc906 (edcc906)
AliQAv1.h
Go to the documentation of this file.
1 #ifndef ALIQAV1_H
2 #define ALIQAV1_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 /* $Id: AliQAv1.h 31503 2009-03-16 11:01:16Z schutz $ */
7 
8 //
9 // Quality Assurance Object
10 //
11 
12 #include <TNamed.h>
13 #include <TMath.h>
14 class TFile ;
15 class TH1 ;
16 
17 #include "AliLog.h"
18 #include "AliRecoParam.h"
19 
20 class AliQAv1 : public TNamed {
21 public:
22 
26  enum ALITASK_t {
28  enum QABIT_t {
30  enum TASKINDEX_t {
33 
34  // Creators - destructors
35  AliQAv1(); // beware singleton, not to be used
36  AliQAv1(const Int_t qalength, ULong_t * qa, const Int_t eslength, Bool_t * es) ;
37  AliQAv1(const ALITASK_t tsk) ;
38  AliQAv1(const DETECTORINDEX_t det) ;
39  AliQAv1(const AliQAv1& qa) ;
40  AliQAv1& operator = (const AliQAv1& qa) ;
41  virtual ~AliQAv1();
42 
43  static AliQAv1 * Instance() ;
44  static AliQAv1 * Instance(const Int_t qalength, ULong_t * qa, const Int_t eslength, Bool_t * es) ;
45  static AliQAv1 * Instance(const DETECTORINDEX_t det) ;
46  static AliQAv1 * Instance(const ALITASK_t tsk) ;
47  static AliQAv1 * Instance(const TASKINDEX_t tsk) ;
48  Bool_t CheckFatal() const ;
49  static void Close() ;
50  static const char * GetAliTaskName(ALITASK_t tsk) ;
51  static TH1 * GetData(TObjArray** list, Int_t index, AliRecoParam::EventSpecie_t eventSpecie) ;
52  Bool_t * GetEventSpecies() { return fEventSpecies ; }
53  static const TString GetExpert() { return fgkExpert ; }
54  static UInt_t GetExpertBit() { return fgkExpertBit ; }
55  static UInt_t GetImageBit() { return fgkImageBit ; }
56  static const char * GetImageFileName() { return fgkImageFileName.Data() ; }
57  static const char * GetImageFileFormat() { return fImageFileFormat.Data() ; }
58  static const TString GetLabLocalFile() { return fgkLabLocalFile ; }
59  static const TString GetLabLocalOCDB() { return fgkLabLocalOCDB ; }
60  static const TString GetLabAliEnOCDB() { return fgkLabAliEnOCDB ; }
61  static DETECTORINDEX_t GetDetIndex(const char * name) ;
62  static const TString GetDetName(DETECTORINDEX_t det) { return fgDetNames[det] ; }
63  static const char * GetDetName(Int_t det) ;
64  static const TString GetGRPPath() { return fgGRPPath ; }
65  ULong_t * GetQA() { return fQA ; }
66  static UInt_t GetQABit() { return fgkQABit ; }
67  static TFile * GetQADataFile(const char * name, Int_t run) ;
68  static TFile * GetQADataFile(const char * fileName) ;
69  static const char * GetQADataFileName(const char * name, Int_t run)
70  {return Form("%s.%s.%d.root", name, fgQADataFileName.Data(), run) ; }
71  static const char * GetQADataFileName() { static TString nm; nm=fgQADataFileName.Data() ; return nm; }
72  static Int_t GetQADebugLevel() { return fgkQADebugLevel ; }
73  static const char * GetQAName() { return fgkQAName ; }
74  static const char * GetQACorrName() { return fgkQACorrNtName ; }
75  static UShort_t GetMaxQAObj() { return fgkMaxQAObjects ; }
76  static TFile * GetQAResultFile() ;
77  static const char * GetQAResultFileName() { static TString nm; nm=(fgQAResultDirName + fgQAResultFileName).Data() ; return nm.Data(); }
78  static const char * GetQARefDefaultStorage() { return fgkQARefOCDBDefault.Data() ; }
79  static const char * GetQARefFileName() { return fgQARefFileName ; }
80  static const char * GetQARefStorage() { return fgQARefDirName.Data() ; }
82  static const char * GetRefOCDBDirName() { return fgkRefOCDBDirName.Data() ; }
83  static const char * GetRefDataDirName() { return fgRefDataDirName.Data() ; }
84  //
85  static UInt_t GetClonedBit() { return fgkQAClonedBit; }
86  static UInt_t GetForbidCloningBit() { return fgkForbidCloningBit; }
87  static UInt_t GetOrigHistoKeptBit() { return fgkOrigHistoKeptBit; }
88  //
89  static TASKINDEX_t GetTaskIndex(const char * name) ;
90  static TString GetTaskName(UInt_t tsk) { return fgTaskNames[tsk] ; }
91  static const char * GetModeName(MODE_t mode) { return (mode == kSIMMODE || mode == kRECMODE || mode == kQAMODE) ? (fgModeNames[mode]).Data() : "" ; }
93  {Int_t ibit=0; while(es!=1<<ibit) ++ibit; return fEventSpecies[ibit];}
94  Bool_t IsEventSpecieSet(Int_t es) const { return fEventSpecies[es] ; }
95  Bool_t IsSet(DETECTORINDEX_t det, ALITASK_t tsk, AliRecoParam::EventSpecie_t es, QABIT_t bit) const ;
96  Bool_t IsSet(DETECTORINDEX_t det, ALITASK_t tsk, Int_t es, QABIT_t bit) const ;
99  Long64_t Merge(const TCollection * list) ;
100  static MODE_t Mode(TASKINDEX_t task) ;
101  void Set(QABIT_t bit, AliRecoParam::EventSpecie_t es) ;
102  void Set(QABIT_t bit, Int_t es) ;
104  {if(es==AliRecoParam::kDefault) return; Int_t ibit=0; while(es!=1<<ibit) ++ibit; fEventSpecies[ibit] = kTRUE ; }
106  {if(es==AliRecoParam::kDefault) return; Int_t ibit=0; while(es!=1<<ibit) ++ibit; fEventSpecies[ibit] = kFALSE ; }
108  static void SetQAResultDirName(const char * name) ;
109  static void SetQARefStorage(const char * name) ;
112  void Show(DETECTORINDEX_t det = kNULLDET) const ;
113  void ShowAll() const ;
116  void UnSet(QABIT_t bit, Int_t es) ;
117 
118 private:
119 
120  Bool_t CheckRange(DETECTORINDEX_t det) const ;
121  Bool_t CheckRange(ALITASK_t tsk) const ;
122  Bool_t CheckRange(QABIT_t bit) const ;
123  Bool_t CheckRange(AliRecoParam::EventSpecie_t es) const ;
124  const char * GetBitName(QABIT_t bit) const ;
126  void Finish() const ;
127  ULong_t Offset(ALITASK_t tsk) const ;
128  void ShowASCIIStatus(AliRecoParam::EventSpecie_t es, DETECTORINDEX_t det, ALITASK_t tsk, ULong_t status) const ;
130 
131  void ResetStatus(DETECTORINDEX_t det) ;
132  void Set(DETECTORINDEX_t det) { fDet = det ;}
133  void Set(ALITASK_t tsk) { fTask = tsk ; AliDebug(GetQADebugLevel(), Form("Ready to set QA status in %s", GetAliTaskName(tsk) )) ; }
137 
138  static AliQAv1 * fgQA ; // pointer to the instance of the singleton
139  Int_t fNdet ; // number of detectors
140  Int_t fNEventSpecies ; // number of Event Species (see AliRecoParam)
141  Int_t fLengthQA ; // Auxiliary length of fQA
142  ULong_t * fQA ; //[fLengthQA] the status word 4 bits for SIM, REC, ESD, ANA each
146  static TString fgDetNames[] ;
147  static TString fgGRPPath ;
148  static TFile * fgQADataFile ;
149  static TString fgQADataFileName ;
150  static TFile * fgQARefFile ;
151  static TString fgQARefDirName ;
152  static TString fgQARefFileName ;
153  static TFile * fgQAResultFile ;
154  static TString fgQAResultDirName ;
155  static TString fgQAResultFileName ;
156  static TString fgRTNames[] ;
157  static TString fgTaskNames[] ;
158  static TString fgModeNames[] ;
159  static const TString fgkExpert ;
160  static const UInt_t fgkExpertBit ;
161  static const UInt_t fgkImageBit ;
162  static const TString fgkLabLocalFile ;
163  static const TString fgkLabLocalOCDB ;
164  static const TString fgkLabAliEnOCDB ;
165  static const TString fgkRefFileName ;
166  static const UInt_t fgkQABit ;
167  static const Int_t fgkQADebugLevel ;
168  static const TString fgkQAName ;
169  static const TString fgkQACorrNtName ;
170  static const TString fgkRefOCDBDirName ;
171  static TString fgRefDataDirName ;
172  static const TString fgkQARefOCDBDefault ;
173  Bool_t * fEventSpecies ; //[fNEventSpecies] list of event species encountered in a run
174  static const TString fgkImageFileName ;
175  static const TString fImageFileFormat ;
176  static const UShort_t fgkMaxQAObjects ;
177  //
178  static const UInt_t fgkQAClonedBit ;
179  static const UInt_t fgkForbidCloningBit ;
180  static const UInt_t fgkOrigHistoKeptBit ;
181  ClassDef(AliQAv1,3) //ALICE Quality Assurance Object
182 };
183 #endif
static UShort_t GetMaxQAObj()
Definition: AliQAv1.h:75
static const char * GetEventSpecieName(EventSpecie_t es)
static AliQAv1 * fgQA
Definition: AliQAv1.h:138
static UInt_t GetImageBit()
Definition: AliQAv1.h:55
static TFile * fgQARefFile
the name of the file where the quality assurance maker store their results
Definition: AliQAv1.h:150
static const TString fgkQACorrNtName
name of QA object
Definition: AliQAv1.h:169
static const TString fgkRefFileName
label to identify a file as AliEn OCDB
Definition: AliQAv1.h:165
void SetStatus(DETECTORINDEX_t det, AliRecoParam::EventSpecie_t es, ULong_t status)
Definition: AliQAv1.h:134
static UInt_t GetExpertBit()
Definition: AliQAv1.h:54
Bool_t * fEventSpecies
default storage for QA in OCDB
Definition: AliQAv1.h:173
static UInt_t GetOrigHistoKeptBit()
Definition: AliQAv1.h:87
#define TObjArray
static const UInt_t fgkQABit
name of Reference File Name
Definition: AliQAv1.h:166
static const UInt_t fgkImageBit
TObject bit identifing the object as "expert".
Definition: AliQAv1.h:161
static TString fgDetNames[]
the current event specie
Definition: AliQAv1.h:146
void Set(DETECTORINDEX_t det)
Definition: AliQAv1.h:132
ULong_t * GetQA()
Definition: AliQAv1.h:65
static TFile * fgQAResultFile
file name where to find the reference data
Definition: AliQAv1.h:153
ALITASK_t
Definition: AliQAv1.h:26
static const TString fgkLabLocalOCDB
label to identify a file as local
Definition: AliQAv1.h:163
static const char * GetQARefFileName()
Definition: AliQAv1.h:79
DETECTORINDEX_t fDet
Definition: AliQAv1.h:143
QABIT_t
Definition: AliQAv1.h:28
static TFile * GetQAResultFile()
Definition: AliQAv1.cxx:456
Int_t fNEventSpecies
Definition: AliQAv1.h:140
QABIT_t GetQAStatusBit(AliRecoParam::EventSpecie_t es=AliRecoParam::kDefault, DETECTORINDEX_t det=kNULLDET, ALITASK_t tsk=kNULLTASK) const
Definition: AliQAv1.cxx:481
Bool_t CheckRange(DETECTORINDEX_t det) const
Definition: AliQAv1.cxx:233
void SetEventSpecie(AliRecoParam::EventSpecie_t es)
Definition: AliQAv1.h:103
ULong_t GetStatus(DETECTORINDEX_t det, AliRecoParam::EventSpecie_t es) const
Definition: AliQAv1.h:125
static const char * GetRefOCDBDirName()
Definition: AliQAv1.h:82
static const char * GetImageFileFormat()
Definition: AliQAv1.h:57
MODE_t
Definition: AliQAv1.h:32
static const UInt_t fgkForbidCloningBit
flag that the histrogram was cloned per trigger class
Definition: AliQAv1.h:179
static void SetQARefDataDirName(Int_t es)
Definition: AliQAv1.h:111
static const char * GetImageFileName()
Definition: AliQAv1.h:56
static void SetQAResultDirName(const char *name)
Definition: AliQAv1.cxx:793
static const TString fgkLabAliEnOCDB
label to identify a file as local OCDB
Definition: AliQAv1.h:164
static const char * GetQARefStorage()
Definition: AliQAv1.h:80
virtual ~AliQAv1()
Definition: AliQAv1.cxx:199
static TString fgQADataFileName
the output file where the quality assurance maker store their results
Definition: AliQAv1.h:149
Bool_t CheckFatal() const
Definition: AliQAv1.cxx:222
void ShowAll() const
Definition: AliQAv1.cxx:836
static TString fgQAResultFileName
the location of the output file where the QA results are stored
Definition: AliQAv1.h:155
static UInt_t GetForbidCloningBit()
Definition: AliQAv1.h:86
Int_t fLengthQA
Definition: AliQAv1.h:141
static void SetQARefStorage(const char *name)
Definition: AliQAv1.cxx:771
ULong_t Offset(ALITASK_t tsk) const
Definition: AliQAv1.cxx:698
TString fileName(const char *dir, int runNumber, const char *da, int i, const char *type)
void ShowASCIIStatus(AliRecoParam::EventSpecie_t es, DETECTORINDEX_t det, ALITASK_t tsk, ULong_t status) const
Definition: AliQAv1.cxx:876
Int_t fNdet
Definition: AliQAv1.h:139
AliQAv1 & operator=(const AliQAv1 &qa)
Definition: AliQAv1.cxx:122
static const char * GetQAResultFileName()
Definition: AliQAv1.h:77
static void Close()
Definition: AliQAv1.cxx:207
static DETECTORINDEX_t GetDetIndex(const char *name)
Definition: AliQAv1.cxx:348
void ShowStatus(DETECTORINDEX_t det, ALITASK_t tsk=kNULLTASK, AliRecoParam::EventSpecie_t es=AliRecoParam::kDefault) const
Definition: AliQAv1.cxx:851
static TH1 * GetData(TObjArray **list, Int_t index, AliRecoParam::EventSpecie_t eventSpecie)
Definition: AliQAv1.cxx:329
void Show(DETECTORINDEX_t det=kNULLDET) const
Definition: AliQAv1.cxx:824
static const UInt_t fgkOrigHistoKeptBit
flag that the histogram is forbiden to clone per trigger class
Definition: AliQAv1.h:180
static const TString fgkImageFileName
Definition: AliQAv1.h:174
ULong_t * fQA
Definition: AliQAv1.h:142
static const TString GetExpert()
Definition: AliQAv1.h:53
static UInt_t GetQABit()
Definition: AliQAv1.h:66
Long64_t Merge(const TCollection *list)
Definition: AliQAv1.cxx:673
static TString fgRTNames[]
the output file where the QA results are stored
Definition: AliQAv1.h:156
const char * GetBitName(QABIT_t bit) const
Definition: AliQAv1.cxx:321
static const TString GetLabLocalFile()
Definition: AliQAv1.h:58
Bool_t IsSetAny(DETECTORINDEX_t det, ALITASK_t tsk, AliRecoParam::EventSpecie_t es) const
Definition: AliQAv1.cxx:541
static TFile * GetQADataFile(const char *name, Int_t run)
Definition: AliQAv1.cxx:374
static void SetQADebug()
Definition: AliQAv1.h:107
void Reset(DETECTORINDEX_t det, ALITASK_t tsk, AliRecoParam::EventSpecie_t es)
Definition: AliQAv1.cxx:731
static const Int_t fgkQADebugLevel
bit in the QA data object which is set when Checker does not return 0
Definition: AliQAv1.h:167
static const TString GetDetName(DETECTORINDEX_t det)
Definition: AliQAv1.h:62
Bool_t IsEventSpecieSet(Int_t es) const
Definition: AliQAv1.h:94
static const char * GetAliTaskName(ALITASK_t tsk)
Definition: AliQAv1.cxx:292
static const TString fImageFileFormat
name of the file that contains all the QA images
Definition: AliQAv1.h:175
ALITASK_t fTask
the current detector (ITS, TPC, ....)
Definition: AliQAv1.h:144
static TString fgQARefFileName
name of directory where to find the reference data file
Definition: AliQAv1.h:152
void UnSetStatusBit(DETECTORINDEX_t det, ALITASK_t tsk, AliRecoParam::EventSpecie_t es, QABIT_t bit)
Definition: AliQAv1.cxx:902
static UInt_t GetClonedBit()
Definition: AliQAv1.h:85
static const char * GetRefDataDirName()
Definition: AliQAv1.h:83
#define AliDebug(logLevel, message)
Definition: AliLog.h:300
void SetStatusBit(DETECTORINDEX_t det, ALITASK_t tsk, AliRecoParam::EventSpecie_t es, QABIT_t bit)
Definition: AliQAv1.cxx:805
Bool_t * GetEventSpecies()
Definition: AliQAv1.h:52
static const UShort_t fgkMaxQAObjects
format of the file that contains all the QA images
Definition: AliQAv1.h:176
static void SetQARefDataDirName(AliRecoParam::EventSpecie_t es)
Definition: AliQAv1.h:110
static const char * GetModeName(MODE_t mode)
Definition: AliQAv1.h:91
Bool_t IsSet(DETECTORINDEX_t det, ALITASK_t tsk, AliRecoParam::EventSpecie_t es, QABIT_t bit) const
Definition: AliQAv1.cxx:524
static MODE_t Mode(TASKINDEX_t task)
Definition: AliQAv1.cxx:401
void Set(QABIT_t bit, AliRecoParam::EventSpecie_t es)
Definition: AliQAv1.cxx:763
static const TString GetLabLocalOCDB()
Definition: AliQAv1.h:59
static void SetGlobalDebugLevel(Int_t level)
Definition: AliLog.cxx:466
static const TString GetGRPPath()
Definition: AliQAv1.h:64
static TString fgQARefDirName
the output file where the quality assurance maker store their results
Definition: AliQAv1.h:151
static TString fgQAResultDirName
File where to find the QA result.
Definition: AliQAv1.h:154
DETECTORINDEX_t
Definition: AliQAv1.h:23
static TString fgRefDataDirName
name of Reference directory name in OCDB
Definition: AliQAv1.h:171
static const UInt_t fgkQAClonedBit
maximum number of QA objects allowed dor each task (Raws, digits,....)
Definition: AliQAv1.h:178
static const TString fgkExpert
list of mode names
Definition: AliQAv1.h:159
void Finish() const
TASKINDEX_t
Definition: AliQAv1.h:30
void UnSetEventSpecie(AliRecoParam::EventSpecie_t es)
Definition: AliQAv1.h:105
AliQAv1()
Definition: AliQAv1.cxx:88
void Set(ALITASK_t tsk)
Definition: AliQAv1.h:133
static const TString fgkRefOCDBDirName
name of QA Correlation Ntuple
Definition: AliQAv1.h:170
void ResetStatus(DETECTORINDEX_t det)
Definition: AliQAv1.cxx:748
Bool_t IsEventSpecieSet(AliRecoParam::EventSpecie_t es) const
Definition: AliQAv1.h:92
static const UInt_t fgkExpertBit
name for the expert directory
Definition: AliQAv1.h:160
static const TString fgkQAName
debug level used for QA verbosity
Definition: AliQAv1.h:168
static const TString GetLabAliEnOCDB()
Definition: AliQAv1.h:60
static const char * GetQAName()
Definition: AliQAv1.h:73
void UnSet(QABIT_t bit, AliRecoParam::EventSpecie_t es)
Definition: AliQAv1.cxx:894
static Int_t AConvert(EventSpecie_t es)
static TString fgGRPPath
list of detector names
Definition: AliQAv1.h:147
static Int_t GetQADebugLevel()
Definition: AliQAv1.h:72
static const char * GetQADataFileName()
Definition: AliQAv1.h:71
static TString fgTaskNames[]
list of Run Type names
Definition: AliQAv1.h:157
static const char * GetQARefDefaultStorage()
Definition: AliQAv1.h:78
static const char * GetQACorrName()
Definition: AliQAv1.h:74
static TString GetTaskName(UInt_t tsk)
Definition: AliQAv1.h:90
static const char * GetQADataFileName(const char *name, Int_t run)
Definition: AliQAv1.h:69
static const TString fgkLabLocalFile
TObject bit identifing the object to be plotted on the QA image.
Definition: AliQAv1.h:162
static const TString fgkQARefOCDBDefault
name of Reference directory name in OCDB for data
Definition: AliQAv1.h:172
static TString fgModeNames[]
list of tasks names
Definition: AliQAv1.h:158
static TFile * fgQADataFile
path of the GRP object in OCDB
Definition: AliQAv1.h:148
AliRecoParam::EventSpecie_t fEventSpecie
the current environment (SIM, REC, ESD, ANA)
Definition: AliQAv1.h:145
static AliQAv1 * Instance()
Definition: AliQAv1.cxx:585
static TASKINDEX_t GetTaskIndex(const char *name)
Definition: AliQAv1.cxx:499