]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/STEER/AliQACheckerBase.h
4afb4ec0060cc566539eb3062c07ebbdfb4e259f
[u/mrichter/AliRoot.git] / STEER / 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 "AliQAv1.h"
19 class TCanvas ; 
20 class TFile ; 
21 class TH1 ; 
22 class TObjArray ; 
23 class TDirectory ; 
24 class TNtupleD ;
25 class AliDetectorRecoParam ; 
26 class TList ; 
27
28 // --- Standard library ---
29
30 // --- AliRoot header files ---
31
32 class AliQACheckerBase: public TNamed {
33
34 public:
35   AliQACheckerBase(const char * name = "", const char * title = "") ;          // ctor
36   AliQACheckerBase(const AliQACheckerBase& qac) ;   
37   AliQACheckerBase& operator = (const AliQACheckerBase& qac) ;
38   virtual ~AliQACheckerBase() ; // dtor
39  
40   void           DeleteImages() ;  
41   TList *        GetExternParamlist() { return fExternParamList ;}
42   TCanvas **     GetImage() { return fImage ; }
43   TCanvas *      GetImage(AliRecoParam::EventSpecie_t es) { return fImage[AliRecoParam::AConvert(es)] ; }
44   virtual void   Init(const AliQAv1::DETECTORINDEX_t det)   { AliQAv1::Instance(det) ; }
45   virtual void   MakeImage( TObjArray ** list, AliQAv1::TASKINDEX_t task, AliQAv1::MODE_t mode) ; 
46   void           PrintExternParam() ; 
47   void           Run(AliQAv1::ALITASK_t tsk, const AliDetectorRecoParam * recoParam = NULL); 
48   void           Run(AliQAv1::ALITASK_t tsk, TObjArray ** list, const AliDetectorRecoParam * recoParam = NULL); 
49   void           Run(AliQAv1::ALITASK_t /*tsk*/, TNtupleD ** /*nt*/, const AliDetectorRecoParam * /*recoParam*/) {;} 
50   void           SetExternParamlist(TList * list) { fExternParamList = list ;}
51   void           SetHiLo(Float_t * hiValue, Float_t * lowValue) ; 
52   void           SetPrintImage(Bool_t opt = kTRUE) { fPrintImage = opt ; }
53
54 protected:
55   virtual void Check(Double_t *rv, AliQAv1::ALITASK_t, TObjArray ** list, const AliDetectorRecoParam * recoParam=0) ; 
56
57   Double_t     DiffC(const TH1 * href, const TH1 * hin) const ;   
58   Double_t     DiffK(const TH1 * href, const TH1 * hin) const ;   
59   void         Finish() const ; 
60   void         GetRefSubDir(const char * det, const char * task, TDirectory *& dirFile, TObjArray **& dirOCDB) ;
61   virtual void SetQA(AliQAv1::ALITASK_t index, Double_t * value) const ;        
62
63   TDirectory  * fDataSubDir     ; //! directory for the current task directory in the current detector directory in the data file
64   TDirectory  * fRefSubDir      ; //! directory for the current task directory in the current detector directory in the reference file
65   TObjArray   ** fRefOCDBSubDir ; //! Entry in OCDB for the current detector 
66   Float_t     * fLowTestValue   ; // array of lower bounds for INFO, WARNING, ERROR, FATAL   
67   Float_t     * fUpTestValue    ; // array of upper bounds for INFO, WARNING, ERROR, FATAL   
68   TCanvas **    fImage          ; //[AliRecoParam::kNSpecies] 
69   Bool_t        fPrintImage     ; //! flag to print the images or not
70   TList       * fExternParamList; //List of external parameters (TParameter<double>)  
71
72 private:
73    void PrivateCheck(Double_t * rv, AliQAv1::ALITASK_t index, const AliDetectorRecoParam * recoParam) ;
74
75   ClassDef(AliQACheckerBase,3)  // description 
76
77 };
78
79 #endif // AliQUALASSCHECKERBASE_H