Project
Loading...
Searching...
No Matches
BoostHistogramUtils.h File Reference
#include <cmath>
#include <numeric>
#include <algorithm>
#include <vector>
#include <array>
#include <TH1.h>
#include <TH2.h>
#include <TFile.h>
#include "Framework/Logger.h"
#include "Rtypes.h"
#include "TLinearFitter.h"
#include "TVectorD.h"
#include "TF1.h"
#include "Foption.h"
#include "HFitInterface.h"
#include "TFitResultPtr.h"
#include "TFitResult.h"
#include "Fit/Fitter.h"
#include "Fit/BinData.h"
#include "Math/WrappedMultiTF1.h"
#include "MathUtils/detail/StatAccumulator.h"
#include <boost/histogram.hpp>
#include <boost/histogram/histogram.hpp>
#include <boost/format.hpp>
#include <boost/histogram/axis.hpp>
#include <boost/histogram/make_histogram.hpp>
#include <boost/histogram/accumulators/mean.hpp>

Go to the source code of this file.

Classes

class  o2::utils::BinCenterView< AxisIterator >
 Axis iterator over bin centers. More...
 
class  o2::utils::BinUpperView< AxisIterator >
 Axis iterator over bin upper edges. More...
 
class  o2::utils::BinLowerView< AxisIterator >
 Axis iterator over bin lower edges. More...
 
class  o2::utils::fitResult< T, nparams >
 

Namespaces

namespace  o2
 a couple of static helper functions to create timestamp values for CCDB queries or override obsolete objects
 
namespace  o2::utils
 

Typedefs

using boostHisto2d = boost::histogram::histogram< std::tuple< boost::histogram::axis::regular< double, boost::use_default, boost::use_default, boost::use_default >, boost::histogram::axis::regular< double, boost::use_default, boost::use_default, boost::use_default > >, boost::histogram::unlimited_storage< std::allocator< char > > >
 
using boostHisto1d = boost::histogram::histogram< std::tuple< boost::histogram::axis::regular< double, boost::use_default, boost::use_default, boost::use_default > > >
 
using boostHisto2d_VarAxis = boost::histogram::histogram< std::tuple< boost::histogram::axis::variable< double, boost::use_default, boost::use_default, std::allocator< double > >, boost::histogram::axis::variable< double, boost::use_default, boost::use_default, std::allocator< double > > > >
 
using boostHisto1d_VarAxis = boost::histogram::histogram< std::tuple< boost::histogram::axis::variable< double, boost::use_default, boost::use_default, boost::use_default > > >
 

Enumerations

enum class  o2::utils::FitGausError_t {
  o2::utils::FIT_ERROR_MAX , o2::utils::FIT_ERROR_MIN , o2::utils::FIT_ERROR_ENTRIES , o2::utils::FIT_ERROR_KTOL_MEAN ,
  o2::utils::FIT_ERROR_KTOL_SIGMA , o2::utils::FIT_ERROR_KTOL_RMS
}
 Error code for invalid result in the fitGaus process. More...
 

Functions

template<typename AxisIterator >
BinCenterView< AxisIterator > o2::utils::operator+ (BinCenterView< AxisIterator > lhs, int n)
 
template<typename AxisIterator >
BinUpperView< AxisIterator > o2::utils::operator+ (BinUpperView< AxisIterator > lhs, int n)
 
template<typename AxisIterator >
BinLowerView< AxisIterator > o2::utils::operator+ (BinLowerView< AxisIterator > lhs, int n)
 
std::string o2::utils::createErrorMessageFitGaus (o2::utils::FitGausError_t errorcode)
 Printing an error message when then fit returns an invalid result.
 
template<typename T , typename Iterator , typename BinCenterView >
std::vector< double > o2::utils::fitGaus (Iterator first, Iterator last, BinCenterView axisfirst, const bool ignoreUnderOverflowBin=true)
 Function to fit histogram to a gaussian using iterators.
 
template<typename valuetype , typename... axes>
std::vector< double > o2::utils::fitBoostHistoWithGaus (boost::histogram::histogram< axes... > &hist)
 
template<typename Hist >
Hist o2::utils::boosthistoFromRoot_1D (TH1D *inHist1D)
 Convert a 1D root histogram to a Boost histogram.
 
template<typename Hist >
Hist o2::utils::boostHistoFromRoot_2D (TH2D *inHist2D)
 Convert a 2D root histogram to a Boost histogram.
 
template<typename... axes>
double o2::utils::getMeanBoost1D (boost::histogram::histogram< axes... > &inHist1D, const double rangeLow=0, const double rangeHigh=0)
 Get the mean of a 1D boost histogram.
 
template<typename... axes>
double o2::utils::getVarianceBoost1D (boost::histogram::histogram< axes... > &inHist1D, double mean=-999999, const double rangeLow=0, const double rangeHigh=0, const double weight=1)
 Get the variance of a 1D boost histogram.
 
template<class BoostHist >
TH1F o2::utils::TH1FFromBoost (BoostHist hist, const char *name="hist")
 Convert a 2D boost histogram to a root histogram.
 
template<class BoostHist >
TH2F o2::utils::TH2FFromBoost (BoostHist hist, const char *name="hist")
 Convert a 2D boost histogram to a root histogram.
 
template<typename... axes>
auto o2::utils::ProjectBoostHistoX (const boost::histogram::histogram< axes... > &hist2d, const int binLow, const int binHigh)
 Function to project 2d boost histogram onto x-axis.
 
template<typename... axes>
auto o2::utils::ProjectBoostHistoXFast (const boost::histogram::histogram< axes... > &hist2d, const int binLow, const int binHigh)
 Function to project 2d boost histogram onto x-axis.
 
template<typename... axes>
auto o2::utils::ReduceBoostHistoFastSlice (const boost::histogram::histogram< axes... > &hist2d, int binXLow, int binXHigh, int binYLow, int binYHigh, bool includeOverflowUnderflow)
 Function to project 2d boost histogram onto x-axis.
 
template<typename... axes>
auto o2::utils::ReduceBoostHistoFastSlice1D (boost::histogram::histogram< axes... > &hist1d, int binXLow, int binXHigh, bool includeOverflowUnderflow)
 
template<typename... axes>
auto o2::utils::ReduceBoostHistoFastSliceByValue (boost::histogram::histogram< axes... > &hist2d, double xLow, double xHigh, double yLow, double yHigh, bool includeOverflowUnderflow)
 Function to project 2d boost histogram onto x-axis.
 
template<typename... axes>
double o2::utils::getIntegralBoostHist (boost::histogram::histogram< axes... > &hist, double min, double max)
 Function to integrate 1d boost histogram in specified range.
 

Detailed Description

Typedef Documentation

◆ boostHisto1d

using boostHisto1d = boost::histogram::histogram<std::tuple<boost::histogram::axis::regular<double, boost::use_default, boost::use_default, boost::use_default> >>

Definition at line 48 of file BoostHistogramUtils.h.

◆ boostHisto1d_VarAxis

using boostHisto1d_VarAxis = boost::histogram::histogram<std::tuple<boost::histogram::axis::variable<double, boost::use_default, boost::use_default, boost::use_default> >>

Definition at line 51 of file BoostHistogramUtils.h.

◆ boostHisto2d

using boostHisto2d = boost::histogram::histogram<std::tuple<boost::histogram::axis::regular<double, boost::use_default, boost::use_default, boost::use_default>, boost::histogram::axis::regular<double, boost::use_default, boost::use_default, boost::use_default> >, boost::histogram::unlimited_storage<std::allocator<char> >>

Definition at line 47 of file BoostHistogramUtils.h.

◆ boostHisto2d_VarAxis

using boostHisto2d_VarAxis = boost::histogram::histogram<std::tuple<boost::histogram::axis::variable<double, boost::use_default, boost::use_default, std::allocator<double> >, boost::histogram::axis::variable<double, boost::use_default, boost::use_default, std::allocator<double> >> >

Definition at line 50 of file BoostHistogramUtils.h.