]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG0/AliCorrectionMatrix.cxx
put in default object which covers the full run range
[u/mrichter/AliRoot.git] / PWG0 / AliCorrectionMatrix.cxx
index 2407b4f260daf49c965ba3cb480492f599ac0341..7cf9901d7cb201ccc8e769196928805ced3072f2 100644 (file)
@@ -160,8 +160,10 @@ void AliCorrectionMatrix::Divide()
   // divides generated by measured to get the correction
   //
 
-  if (!fhMeas || !fhGene || !fhCorr)
+  if (!fhMeas || !fhGene || !fhCorr) {
+    AliDebug(AliLog::kError, "measured or generated histograms not available");
     return;
+  }
 
   fhCorr->Divide(fhGene, fhMeas, 1, 1, "B");
 
@@ -351,8 +353,36 @@ void AliCorrectionMatrix::SetCorrectionToUnity()
   if (!fhCorr)
     return;
 
-  for (Int_t x=1; x<=fhCorr->GetNbinsX(); ++x)
-    for (Int_t y=1; y<=fhCorr->GetNbinsY(); ++y)
-      for (Int_t z=1; z<=fhCorr->GetNbinsZ(); ++z)
+  for (Int_t x=0; x<=fhCorr->GetNbinsX()+1; ++x)
+    for (Int_t y=0; y<=fhCorr->GetNbinsY()+1; ++y)
+      for (Int_t z=0; z<=fhCorr->GetNbinsZ()+1; ++z)
+      {
         fhCorr->SetBinContent(x, y, z, 1);
+        fhCorr->SetBinError(x, y, z, 0);
+      }
+}
+
+//____________________________________________________________________
+void AliCorrectionMatrix::Scale(Double_t factor)
+{
+  // scales the generated and measured histogram with the given factor
+
+  Printf("Scaling histograms with %f", factor);
+
+  fhMeas->Scale(factor);
+  fhGene->Scale(factor);
+}
+
+//____________________________________________________________________
+void AliCorrectionMatrix::ResetErrorsOnCorrections()
+{
+  // set the errors on the correction matrix to 0
+
+  if (!fhCorr)
+    return;
+
+  for (Int_t x=0; x<=fhCorr->GetNbinsX()+1; ++x)
+    for (Int_t y=0; y<=fhCorr->GetNbinsY()+1; ++y)
+      for (Int_t z=0; z<=fhCorr->GetNbinsZ()+1; ++z)
+        fhCorr->SetBinError(x, y, z, 0);
 }