]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG0/AliCorrectionMatrix2D.cxx
small updates
[u/mrichter/AliRoot.git] / PWG0 / AliCorrectionMatrix2D.cxx
index 6878e719ca8c71fc93ae41165fe1ccded342b5c7..be0bc76b93f5ecb9362cf7d69486e7e64b6cdeaa 100644 (file)
@@ -8,6 +8,7 @@
 //
 
 #include <TH2F.h>
+#include <TMath.h>
 
 #include <AliLog.h>
 
@@ -114,7 +115,7 @@ TH2* AliCorrectionMatrix2D::GetMeasuredHistogram() const
 }
 
 //____________________________________________________________________
-TH1* AliCorrectionMatrix2D::Get1DCorrectionHistogram(Char_t* opt, Float_t min, Float_t max)
+TH1* AliCorrectionMatrix2D::Get1DCorrectionHistogram(const Char_t* opt, Float_t min, Float_t max, Bool_t binomialErrors)
 {
   //
   // integrate the correction over one variable 
@@ -158,15 +159,24 @@ TH1* AliCorrectionMatrix2D::Get1DCorrectionHistogram(Char_t* opt, Float_t min, F
     return 0;
   }
 
-  gene1D->Sumw2();
-
+  if (!binomialErrors)
+  {
+    // set the errors on gene manually, and clear the ones on meas.
+    gene1D->Sumw2();
+    for (Int_t bin=0; bin <= gene1D->GetNbinsX()+1; bin++)
+    {
+      gene1D->SetBinError(bin, TMath::Sqrt(gene1D->GetBinContent(bin)));
+      meas1D->SetBinError(bin, 0);
+    }
+  }
+  
   gene1D->SetName(Form("corr_1D_%s",fName.Data()));
   gene1D->SetTitle(Form("corr_1D_%s",fName.Data()));
  
   TH1* divided = (TH1*) gene1D->Clone(Form("corr_1D_%s",fName.Data()));
   divided->Reset();
-  divided->Divide(gene1D, meas1D, 1, 1, "B");
+  
+  divided->Divide(gene1D, meas1D, 1, 1, (binomialErrors) ? "B" : "");
 
   Printf("%p %p", gene1D, meas1D);