]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG0/AliCorrectionMatrix3D.h
bug fixed that was considered also under/overflow bins in vertex axis
[u/mrichter/AliRoot.git] / PWG0 / AliCorrectionMatrix3D.h
index 7edadfec5b835f2e5630de6fb686829089e64290..a9d090c6edcb102cec9d8362771342728ba32930 100644 (file)
 // ------------------------------------------------------
 
 #include <AliCorrectionMatrix.h>
+#include <AliCorrectionMatrix2D.h>
 
 class TH3F;
+class TH2F;
+class TH1F;
+
 
 class AliCorrectionMatrix3D : public AliCorrectionMatrix
 {
@@ -19,21 +23,33 @@ public:
   AliCorrectionMatrix3D();
   AliCorrectionMatrix3D(const AliCorrectionMatrix3D& c);
   AliCorrectionMatrix3D(const Char_t* name, const Char_t* title,
-                    Int_t nBinX=10, Float_t Xmin=0., Float_t Xmax=10.,
-                    Int_t nBinY=10, Float_t Ymin=0., Float_t Ymax=10.,
-                    Int_t nBinZ=10, Float_t Zmin=0., Float_t Zmax=10.);
+                    Int_t nBinX, Float_t Xmin, Float_t Xmax,
+                    Int_t nBinY, Float_t Ymin, Float_t Ymax,
+                    Int_t nBinZ, Float_t Zmin, Float_t Zmax);
 
   AliCorrectionMatrix3D(const Char_t* name, const Char_t* title,
          Int_t nBinX, Float_t Xmin, Float_t Xmax,
          Int_t nBinY, Float_t Ymin, Float_t Ymax,
          Int_t nBinZ, const Float_t* zbins);
 
+  AliCorrectionMatrix3D(const Char_t* name, const Char_t* title, TH3F* hBinning);
   virtual ~AliCorrectionMatrix3D();
 
+  AliCorrectionMatrix3D& operator= (const AliCorrectionMatrix3D& c);
+
+  void CreateHists(Int_t nBinX, const Float_t* binLimitsX,
+                  Int_t nBinY, const Float_t* binLimitsY,
+                  Int_t nBinZ, const Float_t* binLimitsZ);
+
   TH3F* GetGeneratedHistogram();
   TH3F* GetMeasuredHistogram();
   TH3F* GetCorrectionHistogram();
 
+  AliCorrectionMatrix2D* Get2DCorrection(Char_t* opt, Float_t aMin, Float_t aMax);
+  TH2F* Get2DCorrectionHistogram(Char_t* opt, Float_t aMin, Float_t aMax) {return Get2DCorrection(opt,aMin,aMax)->GetCorrectionHistogram();}
+  TH1F* Get1DCorrectionHistogram(Char_t* opt, Float_t aMins1=0, Float_t aMax1=0, Float_t aMins2=0, Float_t aMax2=0);
+
   void FillMeas(Float_t ax, Float_t ay, Float_t az);
   void FillGene(Float_t ax, Float_t ay, Float_t az);
 
@@ -43,6 +59,10 @@ public:
 
   virtual void SaveHistograms();
 
+  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);
+  TH1F* PlotBinErrors(Float_t xmin, Float_t xmax, Float_t ymin, Float_t ymax, Float_t zmin, Float_t zmax);
+
+
 protected:
   ClassDef(AliCorrectionMatrix3D,1)
 };