correct previous non intended commit, but leaving some new things
[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 TText ;
25 class TObjArray;
26 class TPaveText ;
27
28 // --- Standard library ---
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     kNtotLG,kNtotHG,kSigHG,kSigLG,
41     kPedLG,kPedHG,
42     k2DRatioAmp,kRatioDist, kLEDMonRatio, kLEDMonRatioDist,
43     // then TRU info
44     kNsmodTRU,
45     kSigTRU,kNtotTRU,
46     kNL0TRU, kTimeL0TRU,
47                 kNL0FirstTRU, kTimeL0FirstTRU,
48     // and also LED Mon info
49     kNsmodLGLEDMon,kNsmodHGLEDMon,kTimeLGLEDMon,kTimeHGLEDMon,
50     kSigLGLEDMon,kSigHGLEDMon,kNtotLGLEDMon,kNtotHGLEDMon,
51     kPedLGLEDMon,kPedHGLEDMon,
52                 //and STU info
53                 kAmpL1, kGL1, kJL1,
54                 kGL1V0, kJL1V0, kSTUTRU  
55   } ;
56         //Histograms for RecPoints  control
57         enum HRPType_t {kRecPE,kRecPM,kRecPDigM};
58         
59         //Histograms for ESDs  control
60         enum HESDType_t {kESDCaloClusE,kESDCaloClusM,kESDCaloCellA,kESDCaloCellM} ;
61
62   AliEMCALQAChecker() ;        // ctor
63   virtual ~AliEMCALQAChecker() ; // dtor
64         
65   virtual void   Init(const AliQAv1::DETECTORINDEX_t det) ; 
66
67 protected:
68                 
69   virtual void Check( Double_t * test, AliQAv1::ALITASK_t index, TObjArray ** list,  const AliDetectorRecoParam * /*recoParam*/) ;
70   //virtual void SetQA(AliQAv1::ALITASK_t index, Double_t * value) const ;      
71         
72   void CheckRaws(Double_t* test, TObjArray ** list);
73   void CheckRecPoints(Double_t* /*test*/, TObjArray** /*list*/) const {;}
74   void CheckESD(Double_t* /*test*/, TObjArray** /*list*/) const {;}
75         void CleanListOfFunctions(TList *list);
76   TH1* GetHisto(TObjArray* list, const char* hname, Int_t specie) const;
77   Double_t MarkHisto(TH1& histo, Double_t value) const;
78         
79         
80 private:
81   AliEMCALQAChecker(const AliEMCALQAChecker& qac);
82   AliEMCALQAChecker& operator = (const AliEMCALQAChecker& qac) ;
83         //TH1F * htemp; //a tempory histrogram for getting the mean and sigma
84         //Double_t fMean; //mean value 
85         //Double_t fWidth; //sigma of the distribution
86   static const Int_t fgknSM = 12;    //! number of current SM
87 //  TLine **     fLine       ; //! line to distinguish the different SM
88 //  TLine **     fHref       ; //! Line marking the average value for each SM
89   TText **    fTextSM        ; //! Text info for each SM
90   TLine *     fLineCol       ; //! line to distinguish the different SM side: A side and C side
91   TLine *     fLineRow[5]       ; //! line to distinguish the different SM sectors (0-5) 
92   TPaveText * fText          ;  //! Information text for the quality of each SM
93         TPaveText * fTextL1[3];       //! Information text for the quality of L1 plots (3 plots in total)
94   ClassDef(AliEMCALQAChecker,4)  // description 
95
96 };
97
98 #endif // AliEMCALQAChecker_H