]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDdEdxBaseUtils.cxx
* The calib hist binning is changed to log binning
[u/mrichter/AliRoot.git] / TRD / AliTRDdEdxBaseUtils.cxx
index 085fedf0e0c08e0cee84b4e3dad33331b916e2f0..8021a0fadf909e6a993396f6c9c8eb4264bbaec6 100644 (file)
@@ -66,6 +66,29 @@ Double_t AliTRDdEdxBaseUtils::fgQScale = 45;
 //===================================================================================
 //                                   Math and Histogram
 //===================================================================================
+void AliTRDdEdxBaseUtils::BinLogX(TAxis *axis) 
+{
+  //
+  // Method for the correct logarithmic binning of histograms
+  // copied and modified from AliTPCcalibBase
+
+  const Int_t bins = axis->GetNbins();
+
+  const Double_t from = axis->GetXmin();
+  const Double_t to = axis->GetXmax();
+  if (from<EPSILON) return;
+  Double_t *new_bins = new Double_t[bins + 1];
+
+  new_bins[0] = from;
+  const Double_t factor = pow(to/from, 1./bins);
+
+  for (int i = 1; i <= bins; i++) {
+   new_bins[i] = factor * new_bins[i-1];
+  }
+  axis->Set(bins, new_bins);
+  delete [] new_bins;
+}
+
 void AliTRDdEdxBaseUtils::GetCDFCuts(const TH1D *hh, const Int_t ncut, Double_t cuts[], const Double_t cdfs[], const Double_t thres)
 {
   //