Changes required in QA for the amoreQAshifter agent; change units of titles from...
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALQAChecker.h
1 #ifndef ALIEMCALQACHECKER_H
2 #define ALIEMCALQACHECKER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6
7 /*
8   Checks the quality assurance. 
9   By comparing with reference data
10
11   Based on PHOS code written by
12   Y. Schutz CERN July 2007
13   
14   Implemented by Yaxian Mao (CERN Oct. 2009)
15 */
16
17
18 // --- ROOT system ---
19 class TFile ; 
20 class TH1F ; 
21 class TH1I ; 
22 class TH1 ;
23 class TLine ;
24 class TPaveText ;
25 class TObjArray;
26
27 // --- Standard library ---
28
29 // --- AliRoot header files ---
30 #include "AliQACheckerBase.h"
31 class AliEMCALLoader ; 
32
33 class AliEMCALQAChecker: public AliQACheckerBase {
34
35 public:
36         //Histograms for Raw data control
37         enum HRawType_t { 
38                 // first normal Low Gain and High Gain info
39     kNsmodLG,kNsmodHG,kTimeLG,kTimeHG,
40     kSigLG,kSigHG,kNtotLG,kNtotHG,kTowerHG,kTowerLG,
41                 kPedLG,kPedHG,
42                 kPedRMSLG,kPedRMSHG,
43                 // then TRU info
44                 kNsmodTRU,kTimeTRU,
45                 kSigTRU,kNtotTRU,
46                 kPedTRU,kPedRMSTRU,
47                 // and also LED Mon info
48                 kNsmodLGLEDMon,kNsmodHGLEDMon,kTimeLGLEDMon,kTimeHGLEDMon,
49                 kSigLGLEDMon,kSigHGLEDMon,kNtotLGLEDMon,kNtotHGLEDMon,
50                 kPedLGLEDMon,kPedHGLEDMon,
51                 kPedRMSLGLEDMon,kPedRMSHGLEDMon
52         } ;
53         
54         //Histograms for RecPoints  control
55         enum HRPType_t {kRecPE,kRecPM,kRecPDigM};
56         
57         //Histograms for ESDs  control
58         enum HESDType_t {kESDCaloClusE,kESDCaloClusM,kESDCaloCellA,kESDCaloCellM} ;
59
60   AliEMCALQAChecker() ;        // ctor
61   AliEMCALQAChecker(const AliEMCALQAChecker& qac);
62   AliEMCALQAChecker& operator = (const AliEMCALQAChecker& qac) ;
63   virtual ~AliEMCALQAChecker() ; // dtor
64         
65   virtual void   Init(const AliQAv1::DETECTORINDEX_t det) ; 
66
67 protected:
68                 
69         virtual Double_t * Check(AliQAv1::ALITASK_t index, TObjArray ** list,  AliDetectorRecoParam * /*recoParam*/) ;
70         //virtual void SetQA(AliQAv1::ALITASK_t index, Double_t * value) const ;        
71         
72         Double_t * CheckRaws(TObjArray ** list);
73         Double_t * CheckRecPoints(TObjArray** /*list*/){return NULL;}
74         Double_t * CheckESD(TObjArray** /*list*/){return NULL;}
75         TH1* GetHisto(TObjArray* list, const char* hname, Int_t specie) const;
76         Double_t MarkHisto(TH1& histo, Double_t value) const;
77         
78         
79 private:
80         //TH1F * htemp; //a tempory histrogram for getting the mean and sigma
81         //Double_t fMean; //mean value 
82         //Double_t fWidth; //sigma of the distribution
83   static const Int_t fknSM = 4;    //! number of current SM
84   TLine **     fLine       ; //! line to distinguish the different SM
85   TLine **     fHref       ; //! Line marking the average value for each SM
86   TPaveText *  fText  ;      //! Information text for the quality of each SM
87
88   
89   ClassDef(AliEMCALQAChecker,2)  // description 
90
91 };
92
93 #endif // AliEMCALQAChecker_H