Update for Ds
[u/mrichter/AliRoot.git] / PWG0 / AliCorrectionMatrix.h
1 #ifndef ALICORRECTIONMATRIX_H
2 #define ALICORRECTIONMATRIX_H
3
4 /* $Id$ */
5
6 // ------------------------------------------------------
7 //
8 // Class to handle corrections.
9 //
10 // ------------------------------------------------------
11 //
12 // TODO:
13 //
14 // - add options in draw method
15 //
16
17 #include <TNamed.h>
18
19 class TH1;
20
21 class AliCorrectionMatrix : public TNamed
22 {
23 protected: // do not create this baseclass
24   AliCorrectionMatrix();
25   AliCorrectionMatrix(const Char_t* name, const Char_t* title);
26   AliCorrectionMatrix(const AliCorrectionMatrix& c);
27   virtual ~AliCorrectionMatrix();
28   AliCorrectionMatrix& operator=(const AliCorrectionMatrix& corrMatrix);
29
30 public:
31   virtual void Copy(TObject& c) const;
32   virtual Long64_t Merge(TCollection* list);
33
34   TH1* GetGeneratedHistogram() { return fhGene; }
35   TH1* GetMeasuredHistogram()  { return fhMeas; }
36   TH1* GetCorrectionHistogram() { return fhCorr; }
37
38   void SetGeneratedHistogram(TH1* agene) { fhGene = agene; }
39   void SetMeasuredHistogram(TH1* ameas)  { fhMeas = ameas; }
40   void SetCorrectionHistogram(TH1* acorr) { fhCorr = acorr; }
41
42   void Divide();
43   void Multiply();
44   void SetCorrectionToUnity();
45   void ResetErrorsOnCorrections();
46   void Scale(Double_t factor);
47
48   void Add(AliCorrectionMatrix* aMatrixToAdd, Float_t c=1);
49
50   void SetAxisTitles(const Char_t* titleX="", const Char_t* titleY="", const Char_t* titleZ="");
51
52   virtual Bool_t LoadHistograms(const Char_t* dir = 0);
53   virtual void SaveHistograms();
54
55   virtual void DrawHistograms(const Char_t* canvasName = 0);
56
57   virtual void ReduceInformation();
58
59   virtual void Reset(Option_t* option = "");
60
61 protected:
62   TH1*    fhMeas;  // histogram of measured particles (or tracks)
63   TH1*    fhGene;  // histogram of generated particles
64
65   TH1*    fhCorr;  // correction histogram (ratio generated/measured)
66
67   ClassDef(AliCorrectionMatrix,1)
68 };
69
70 #endif
71