New split libs
[u/mrichter/AliRoot.git] / MONITOR / AliMonitorHisto.h
1 #ifndef ALIMONITORHISTO_H
2 #define ALIMONITORHISTO_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 #include "AliMonitorPlot.h"
9 #include <TList.h>
10
11
12 class AliMonitorHisto : public AliMonitorPlot {
13 public:
14   enum ENorm {kNormNone, kNormEvents, kNormEntries, kNormIntegral};
15
16   AliMonitorHisto();
17   AliMonitorHisto(const AliMonitorHisto& histo);
18   AliMonitorHisto& operator =(const AliMonitorHisto& histo);
19   AliMonitorHisto(TH1* histo, ENorm norm = kNormIntegral);
20   virtual ~AliMonitorHisto();
21
22   static void     SetNHistosMax(Int_t nHistosMax) {fgNHistosMax = nHistosMax;};
23   static Int_t    GetNHistosMax() {return fgNHistosMax;};
24
25   virtual void    SetReference(TH1* ref);
26   virtual void    SetReference(AliMonitorPlot* ref);
27
28   void            Fill(Axis_t x);
29   void            Fill(Axis_t x, Axis_t y);
30   void            Fill(Axis_t x, Axis_t y, Stat_t w);
31   void            ScaleErrorBy(Double_t factor);
32
33   virtual void    Update();
34   virtual void    Update(TH1* histo);
35   virtual void    Add(AliMonitorPlot* plot);
36   virtual void    Reset();
37   virtual void    ResetList();
38
39 protected:
40   void            Scale(Int_t nEvents);
41   virtual Bool_t  ComparePlot();
42   virtual Bool_t  GetEvent(Int_t number = 1);
43   virtual Bool_t  GetSum(Int_t number);
44   virtual Bool_t  GetRun();
45   virtual void    DrawPlot();
46
47   TH1*            fHisto;        //! the histogram that is currently filled with data
48   TList           fHistoList;    // list of histograms of last fNHistos events
49   Int_t           fNHistos;      // number of buffered histograms
50   static Int_t    fgNHistosMax;  //! maximal number of buffered histograms
51   TH1*            fHistoRun;     // sum of histograms for the current run
52
53   TH1*            fHistoDraw;    //! the normalized histogram, used for comparison to a reference histogram
54   TH1*            fHistoRef;     //! the reference histogram for comparison
55   TH1*            fHistoCompare; //! the result of the comparison to the reference histogram, only bins with large deviation are set
56
57   ENorm           fNorm;         // type of normalization
58
59   ClassDef(AliMonitorHisto, 2)   // histogram for monitoring the quality of the recorded data
60 };
61  
62
63 #endif
64
65
66
67
68
69
70
71
72