added constructors
[u/mrichter/AliRoot.git] / PWG0 / AliCorrectionMatrix3D.h
1 #ifndef ALICORRECTIONMATRIX3D_H
2 #define ALICORRECTIONMATRIX3D_H
3
4 /* $Id$ */
5
6 // ------------------------------------------------------
7 //
8 // Class to handle 3d-corrections.
9 //
10 // ------------------------------------------------------
11
12 #include <AliCorrectionMatrix.h>
13
14 class TH3F;
15 class TH1F;
16
17 class AliCorrectionMatrix3D : public AliCorrectionMatrix
18 {
19 public:
20   AliCorrectionMatrix3D();
21   AliCorrectionMatrix3D(const AliCorrectionMatrix3D& c);
22   AliCorrectionMatrix3D(const Char_t* name, const Char_t* title,
23                      Int_t nBinX, Float_t Xmin, Float_t Xmax,
24                      Int_t nBinY, Float_t Ymin, Float_t Ymax,
25                      Int_t nBinZ, Float_t Zmin, Float_t Zmax);
26
27   AliCorrectionMatrix3D(const Char_t* name, const Char_t* title,
28          Int_t nBinX, Float_t Xmin, Float_t Xmax,
29          Int_t nBinY, Float_t Ymin, Float_t Ymax,
30          Int_t nBinZ, const Float_t* zbins);
31
32   AliCorrectionMatrix3D(const Char_t* name, const Char_t* title,
33          Int_t nBinX, const Float_t* xbins,
34          Int_t nBinY, Float_t Ymin, Float_t Ymax,
35          Int_t nBinZ, const Float_t* zbins);
36
37   AliCorrectionMatrix3D(const Char_t* name, const Char_t* title,
38          Int_t nBinX, const Float_t* xbins,
39          Int_t nBinY, const Float_t* ybins,
40          Int_t nBinZ, const Float_t* zbins);
41
42   void CreateHists(Int_t nBinX, const Float_t* binLimitsX,
43          Int_t nBinY, const Float_t* binLimitsY,
44          Int_t nBinZ, const Float_t* binLimitsZ);
45
46   virtual ~AliCorrectionMatrix3D();
47
48   AliCorrectionMatrix3D& operator= (const AliCorrectionMatrix3D& c);
49
50   TH3F* GetGeneratedHistogram();
51   TH3F* GetMeasuredHistogram();
52   TH3F* GetCorrectionHistogram();
53
54   void FillMeas(Float_t ax, Float_t ay, Float_t az);
55   void FillGene(Float_t ax, Float_t ay, Float_t az);
56
57   Float_t GetCorrection(Float_t ax, Float_t ay, Float_t az) const;
58
59   void RemoveEdges(Float_t cut=2, Int_t nBinsXedge = 0, Int_t nBinsYedge = 0, Int_t nBinsZedge = 0);
60
61   virtual void SaveHistograms();
62
63   Int_t CheckEmptyBins(Float_t xmin, Float_t xmax, Float_t ymin, Float_t ymax, Float_t zmin, Float_t zmax, Bool_t quiet = kFALSE);
64   TH1F* PlotBinErrors(Float_t xmin, Float_t xmax, Float_t ymin, Float_t ymax, Float_t zmin, Float_t zmax);
65
66
67 protected:
68   ClassDef(AliCorrectionMatrix3D,1)
69 };
70
71 #endif
72