]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG0/AliCorrectionMatrix3D.h
changed binning: accepts events in z +- 30cm and eta +- 3
[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 #include <AliCorrectionMatrix2D.h>
14
15 class TH3F;
16 class TH2F;
17 class TH1F;
18
19
20 class AliCorrectionMatrix3D : public AliCorrectionMatrix
21 {
22 public:
23   AliCorrectionMatrix3D();
24   AliCorrectionMatrix3D(const AliCorrectionMatrix3D& c);
25   AliCorrectionMatrix3D(const Char_t* name, const Char_t* title,
26                      Int_t nBinX, Float_t Xmin, Float_t Xmax,
27                      Int_t nBinY, Float_t Ymin, Float_t Ymax,
28                      Int_t nBinZ, Float_t Zmin, Float_t Zmax);
29
30   AliCorrectionMatrix3D(const Char_t* name, const Char_t* title,
31          Int_t nBinX, Float_t Xmin, Float_t Xmax,
32          Int_t nBinY, Float_t Ymin, Float_t Ymax,
33          Int_t nBinZ, const Float_t* zbins);
34
35   AliCorrectionMatrix3D(const Char_t* name, const Char_t* title, TH3F* hBinning);
36  
37   virtual ~AliCorrectionMatrix3D();
38
39   AliCorrectionMatrix3D& operator= (const AliCorrectionMatrix3D& c);
40
41   void CreateHists(Int_t nBinX, const Float_t* binLimitsX,
42                    Int_t nBinY, const Float_t* binLimitsY,
43                    Int_t nBinZ, const Float_t* binLimitsZ);
44
45   TH3F* GetGeneratedHistogram();
46   TH3F* GetMeasuredHistogram();
47   TH3F* GetCorrectionHistogram();
48
49   AliCorrectionMatrix2D* Get2DCorrection(Char_t* opt, Float_t aMin, Float_t aMax);
50   TH2F* Get2DCorrectionHistogram(Char_t* opt, Float_t aMin, Float_t aMax) {return Get2DCorrection(opt,aMin,aMax)->GetCorrectionHistogram();}
51   TH1F* Get1DCorrectionHistogram(Char_t* opt, Float_t aMins1=0, Float_t aMax1=0, Float_t aMins2=0, Float_t aMax2=0);
52
53   void FillMeas(Float_t ax, Float_t ay, Float_t az);
54   void FillGene(Float_t ax, Float_t ay, Float_t az);
55
56   Float_t GetCorrection(Float_t ax, Float_t ay, Float_t az) const;
57
58   void RemoveEdges(Float_t cut=2, Int_t nBinsXedge = 0, Int_t nBinsYedge = 0, Int_t nBinsZedge = 0);
59
60   virtual void SaveHistograms();
61
62   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);
63   TH1F* PlotBinErrors(Float_t xmin, Float_t xmax, Float_t ymin, Float_t ymax, Float_t zmin, Float_t zmax);
64
65
66 protected:
67   ClassDef(AliCorrectionMatrix3D,1)
68 };
69
70 #endif
71