Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2026-04-07 08:08:31

0001 // HistogramUtils.cpp
0002 #include "CustomHistogramFit/HistogramUtils.h"
0003 #include <iostream>
0004 
0005 double HistogramUtils::GetMaxBinContentInRange(TH1* hist, double xMin, double xMax) {
0006   int binMin = hist->FindBin(xMin);
0007   int binMax = hist->FindBin(xMax);
0008   double maxContent = 0;
0009   for (int i = binMin; i <= binMax; ++i) {
0010     if (hist->GetBinContent(i) > maxContent) {
0011       /*std::cout << "x = " << hist->GetBinCenter(i) << ", "
0012         << "content = " << hist->GetBinContent(i) << std::endl;*/
0013       maxContent = hist->GetBinContent(i);
0014     }
0015   }
0016   return maxContent;
0017 }
0018 
0019 int HistogramUtils::FindFirstOccupiedBin(TH1 *hist, double threshold)
0020 {
0021   if (!hist)
0022   {
0023     std::cerr << "FindFirstNonZeroBin -> Histogram not found.\n";
0024     return -1;
0025   }
0026 
0027   int nBins = hist->GetNbinsX();
0028   for (int ibin = 1; ibin <= nBins; ibin++)
0029   {
0030     if (hist->GetBinContent(ibin) > threshold) {
0031       return ibin;
0032     }
0033   }
0034   std::cerr << "FindFirstNonZeroBin -> Empty histogram.\n";
0035   return -1;
0036 }