Introducing event specie in QA (Yves)
[u/mrichter/AliRoot.git] / STEER / AliQACheckerBase.h
1 #ifndef ALIQACHECKERBASE_H
2 #define ALIQACHECKERBASE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6
7 /* $Id$ */
8
9 //
10 //  Base class for detectors quality assurance checkers 
11 //  Compares Data made by QADataMakers with reference data
12 //  Y. Schutz CERN August 2007
13 //
14
15
16 // --- ROOT system ---
17 #include <TNamed.h>
18 #include "AliQA.h"
19 class TFile ; 
20 class TH1 ; 
21 class TObjArray ; 
22 class TDirectory ; 
23 class TNtupleD ;
24
25 // --- Standard library ---
26
27 // --- AliRoot header files ---
28
29 class AliQACheckerBase: public TNamed {
30
31 public:
32   AliQACheckerBase(const char * name = "", const char * title = "") ;          // ctor
33   AliQACheckerBase(const AliQACheckerBase& qac) ;   
34   AliQACheckerBase& operator = (const AliQACheckerBase& qac) ;
35   virtual ~AliQACheckerBase() ; // dtor
36
37   virtual void   Init(const AliQA::DETECTORINDEX_t det)   { AliQA::Instance(det) ; }
38   void           Run(AliQA::ALITASK_t tsk, TObjArray ** list = NULL); 
39   void           Run(AliQA::ALITASK_t /*tsk*/, TNtupleD ** /*nt*/) {;} 
40   void           SetHiLo(Float_t * hiValue, Float_t * lowValue) ; 
41   void           SetRefandData(TDirectory * ref, TObjArray ** refOCDB, TDirectory * data=NULL) { fRefSubDir = ref ;  fRefOCDBSubDir = refOCDB, fDataSubDir = data ; }
42
43 protected:
44   virtual      Double_t * Check(AliQA::ALITASK_t index) ;
45   virtual      Double_t * Check(AliQA::ALITASK_t, TObjArray **) ; 
46
47   Double_t     DiffC(const TH1 * href, const TH1 * hin) const ;   
48   Double_t     DiffK(const TH1 * href, const TH1 * hin) const ;   
49   void         Finish() const ; 
50   virtual void SetQA(AliQA::ALITASK_t index, Double_t * value) const ;  
51
52   TDirectory  * fDataSubDir     ; //! directory for the current task directory in the current detector directory in the data file
53   TDirectory  * fRefSubDir      ; //! directory for the current task directory in the current detector directory in the reference file
54   TObjArray   ** fRefOCDBSubDir ; //! Entry in OCDB for the current detector 
55   Float_t     * fLowTestValue   ; // array of lower bounds for INFO, WARNING, ERROR, FATAL   
56   Float_t     * fUpTestValue    ; // array of upper bounds for INFO, WARNING, ERROR, FATAL   
57
58   ClassDef(AliQACheckerBase,1)  // description 
59
60 };
61
62 #endif // AliQUALASSCHECKERBASE_H