bool | addGraph(TGraph* graph1, const TGraph* graph2) |
bool | addGraph(TGraph2D* graph1, const TGraph2D* graph2) |
bool | addGraph(TNamed* graph1, const TNamed* graph2) |
bool | addHistogram(TH1* histo1, const TH1* histo2, TQCounter* scale, double corr12 = 0., bool includeScaleUncertainty = false) |
bool | addHistogram(TH1* histo1, const TH1* histo2, double scale = 1., double scaleUncertainty = 0., double corr12 = 0., bool includeScaleUncertainty = true) |
bool | addHistogramAsError(TH1* hist, const TH1* errorhist, bool isRelative = false) |
bool | addHistogramInQuadrature(TH1* histo1, const TH1* histo2, double factor = 1) |
bool | addHistogramInQuadrature(TH1* histo1, double val, double factor = 1) |
bool | addHistogramWithoutError(TH1* histo1, const TH1* histo2, double scale = 1.) |
int | addPCA(TPrincipal* orig, TPrincipal* add) |
TCanvas* | applyATLASstyle(TH1* histo, const TString& label = "Internal", double relPosX = 0.10000000000000001, double relPosY = 0.10000000000000001, double yResize = 1., const TString& xTitle = "none", const TString& yTitle = "none", bool square = false) |
TCanvas* | applyATLASstyle(TGraph* graph, const TString& label = "Internal", double relPosX = 0.10000000000000001, double relPosY = 0.10000000000000001, double yResize = 1., const TString& xTitle = "none", const TString& yTitle = "none", bool square = false) |
TCanvas* | applyATLASstyle(TMultiGraph* graph, const TString& label = "Internal", double relPosX = 0.10000000000000001, double relPosY = 0.10000000000000001, double yResize = 1., const TString& xTitle = "none", const TString& yTitle = "none", bool square = false) |
bool | applyPoissonErrors(TH1* histo) |
TH1* | applySlopeToHistogram(TH1* input, double slope) |
int | applyStyle(TH1* histo, TQTaggable* tags, const TString& styleScheme = "", bool allowRecursion = true) |
bool | areEqual(TH1* first, TH1* second, bool includeUnderflowOverflow = true, bool compareErrors = false, double tolerance = 0.01) |
bool | areEqualRel(double val1, double val2, double rel) |
TStyle* | ATLASstyle() |
double | calculateBinLineDistSquare(TH2* hist, double a, double b, int i, int j) |
bool | checkConsistency(const TH1* histo1, const TH1* histo2, bool verbose = false) |
double | clearBinsAboveX(TH1* hist, double xMax) |
double | clearBinsAboveX(TH2* hist, double xMax) |
double | clearBinsAboveY(TH2* hist, double yMax) |
double | clearBinsBelowX(TH1* hist, double xMin) |
double | clearBinsBelowX(TH2* hist, double xMin) |
double | clearBinsBelowY(TH2* hist, double yMin) |
TH1* | convertFromText(TString input) |
TMatrixD* | convertHistogramToMatrix(TH2* hist) |
TMatrixDSym* | convertHistogramToSymMatrix(TH2* hist, double relThreshold = 1.0000000000000001E-9, double absThreshold = 1.0000000000000001E-9) |
TMatrixDSym* | convertHistogramToSymMatrix(TH2* hist, const vector<TString>& ordering, double relThreshold = 1.0000000000000001E-9, double absThreshold = 1.0000000000000001E-9) |
TH1* | convertTo1D(const TH2* histo, bool alongX = true, bool includeUnderflowsX = true, bool includeOverflowsX = true, bool includeUnderflowsY = true, bool includeOverflowsY = true) |
TString | convertToText(const TH1* histo, int detailLevel) |
bool | copyAxisStyle(const TH1* source, TH1* target) |
bool | copyAxisStyle(const TAxis* source, TAxis* target) |
bool | copyBinLabels(const TH1* source, TH1* target) |
bool | copyBinLabels(const TAxis* source, TAxis* target) |
TNamed* | copyGraph(const TNamed* histo, const TString& newName = "") |
void | copyGraphAxisTitles(TNamed* copy, const TNamed* graph) |
TH1* | copyHistogram(const TH1* histo, const TString& newName = "") |
bool | copyStyle(TH1* dest, const TH1* src) |
bool | copyStyle(TGraph* dest, const TH1* src) |
bool | copyStyle(TGraph* dest, const TGraph* src) |
bool | copyStyle(TGraph2D* dest, const TGraph2D* src) |
bool | copyStyle(TNamed* dest, const TNamed* src) |
TH1* | countersToHistogram(TList* counters) |
TH1* | counterToHistogram(TQCounter* counter) |
int | countHoles(TH2* hist) |
TH1* | createEnvelopingHistogram(TCollection* histos) |
TH1* | createEnvelopingHistogram(const vector<TH1*>& histos) |
TNamed* | createGraph(const TString& definition, bool printErrMsg = false) |
TNamed* | createGraph(TString definition, TString& errMsg) |
TH1* | createHistogram(TQTaggable* values, const TString& prefix) |
TH2* | createHistogram(const TGraph2D* graph, int precision) |
TH1* | createHistogram(const TString& definition, bool printErrMsg = false) |
TH1* | createHistogram(TString definition, TString& errMsg) |
TH2* | createHistogram(const TGraph2D* g, int nbinsx, int nbinsy) |
bool | cropLine(TH1* hist, TLine* l) |
TH1* | cutAndZoomHistogram(TH1* histo, int cutBinLowX, int cutBinHighX, int cutBinLowY = -1, int cutBinHighY = -1, int zoomBinLowX = -1, int zoomBinHighX = -1, int zoomBinLowY = -1, int zoomBinHighY = -1) |
TH1* | cutHistogram(TH1* histo, int xBinLow, int xBinHigh, int yBinLow = -1, int yBinHigh = -1, bool keepInUVX = false, bool keepInOVX = false, bool keepInUVY = false, bool keepInOVY = false) |
bool | divideHistogramWithoutError(TH1* histo1, const TH1* histo2) |
bool | drawHistograms(TList* histograms, TString drawOption = "", TString extOptions = "") |
int | dumpData(TPrincipal* p, int cutoff = 100) |
int | edge(TH1* hist, double cutoff = std::numeric_limits<double>::epsilon()) |
int | edge(TH2* hist, double cutoff = std::numeric_limits<double>::epsilon()) |
int | ensureAbsMinimumBinContent(TH1* histo, double min = 9.9999999999999998E-13) |
bool | ensureAbsMinimumContent(double& content, double min = 9.9999999999999998E-13) |
int | ensureMinimumBinContent(TH1* histo, double min = 9.9999999999999998E-13, bool ignoreNegative = false, bool flipToPositive = false, bool assignUncertainty = false) |
int | ensureMinimumBinError(TH1* histo, double averageWeight) |
bool | ensureMinimumContent(double& content, double& uncertainty, double min = 9.9999999999999998E-13, bool ignoreNegative = false, bool flipToPositive = false, bool assignUncertainty = false) |
bool | envelopeLower(TH1* hist, TH1* otherhist) |
bool | envelopeUpper(TH1* hist, TH1* otherhist) |
int | estimateSize(const TH1* histo) |
double | evaluateGraph(const TGraph* g, double x, int mode = 0) |
bool | extractBinning(TQTaggable* p, int& index, int& nBins, double& min, double& max, vector<double>& edges, TString& errMsg) |
bool | extractRange(TQTaggable* p, int& index, double& min, double& max, TString& errMsg) |
bool | extractStyle(const TH1* histo, TQTaggable* tags, const TString& styleScheme = "") |
bool | extractStyle(const TGraph* graph, TQTaggable* tags, const TString& styleScheme = "") |
TH1* | extraOverflowBins(TH1*& histo, bool underflow = true, bool overflow = true, bool remap = false) |
int | fillHoles2DAverage(TH2* hist, double threshold, bool allowUnderflowOverflow = false, int dx = 1, int dy = 1, int minSources = 1) |
int | fillHoles2DMax(TH2* hist, double threshold, bool allowUnderflowOverflow = false, int dx = 1, int dy = 1, int minSources = 1) |
double | findIntersection(const TGraph* a, const TGraph* b, int mode = 0, double left = -std::numeric_limits<double>::quiet_NaN(), double right = std::numeric_limits<double>::quiet_NaN(), double epsilon = std::numeric_limits<double>::epsilon()) |
int | fixHoles1D(TH1* hist, double threshold) |
const TAxis* | getAxis(const TNamed* obj, int idx) |
TAxis* | getAxis_nonconst(TNamed* obj, int idx) |
double | getAxisXmax(const TH1* hist) |
double | getAxisXmax(const TGraph* graph) |
double | getAxisXmin(const TH1* hist) |
double | getAxisXmin(const TGraph* graph) |
double | getAxisYmax(const TH1* hist) |
double | getAxisYmin(const TH1* hist) |
vector<int> | getBinBorders(const TH1* histo, const vector<double>& lowEdges) |
vector<int> | getBinBorders(const TAxis* histo, const vector<double>& lowEdges) |
vector<int> | getBinBordersFlat(TH1* histo, int nBins, bool includeOverflows) |
vector<int> | getBinBordersFlat2D(TH2* histo, int nBins, bool remapX, bool includeOverflows, bool remapSlices = true) |
vector<double> | getBinLowEdges(const TH1* histo, const vector<int>& binBorders) |
vector<double> | getBinLowEdges(const TAxis* histo, const vector<int>& binBorders) |
TString | getBinningDefinition(const TAxis* axis) |
vector<int> | getBinsSortedByRatio(TH1* sig, TH1* bkg, double epsilon = 9.9999999999999998E-13) |
double | getChi2(TH1* histo1, TH1* histo2) |
double | getContourArea(const TGraph* g) |
double | getContourJump(const TGraph* g) |
vector<TList*> | getContourList(TH2* hist, const vector<double>& thresholds) |
TH1* | getCutEfficiencyHisto(TH1* histo, TString options = "") |
TString | getDetailsAsString(const TNamed* obj, int option = 1) |
TString | getDetailsAsString(const TH1* histo, int option = 1) |
TString | getDetailsAsString(const TAxis* axis, int option = 1) |
TString | getDetailsAsString(const TGraph* g, int option = 1) |
TString | getDetailsAsString(const TGraph2D* g, int option = 1) |
TString | getDetailsAsString(const TPrincipal* p, int option = 1) |
int | getDimension(const TH1* histo) |
TH1* | getEfficiencyHistogram(TH1* numerator, TH1* denominator) |
void | getFilteredRange(TCollection* histograms, double xmin, double xmax, double minContent, double maxContent, double& lower, double& upper, double logMin) |
double | getFOM(TQHistogramUtils::FOM fom, double b, double berr, double s, double serr) |
TH1* | getFOMHistogram(TQHistogramUtils::FOM fom, TH1* sig, TH1* bkg, double cutoff = 0, const vector<TH1*>& bkgSystHistos = std::vector<TH1 *>{}) |
TH1* | getFOMScan(TQHistogramUtils::FOM fom, TH1* sig, TH1* bkg, bool fromleft, double cutoff, bool verbose, const vector<TH1*>& bkgSystHistos = std::vector<TH1 *>{}) |
TString | getFOMTitleLaTeX(TQHistogramUtils::FOM fom) |
TString | getFOMTitleROOT(TQHistogramUtils::FOM fom) |
TGraphAsymmErrors* | getGraph(const TH1* histo) |
TGraphAsymmErrors* | getGraph(const TH1* nom, TObjArray* sys) |
TString | getGraphDefinition(const TNamed* graph) |
double | getHistogramBinContentFromFile(const TString& fname, const TString& hname, const TString binlabel) |
double | getHistogramBinContentFromFile(const TString& fname, const TString& hname, int) |
TString | getHistogramContents(const TH1* histo) |
TString | getHistogramDefinition(const TH1* histo) |
double | getHistogramMaximum(size_t n,...) |
double | getHistogramMinimum(size_t n,...) |
double | getHistogramXmax(size_t n,...) |
double | getHistogramXmin(size_t n,...) |
double | getHistogramYmax(size_t n,...) |
double | getHistogramYmin(size_t n,...) |
double | getIntegral(const TH1* histo, bool userUnderOverflow = true) |
double | getIntegralAndError(const TH1* histo, double& error, bool useUnderflowOverflow = true) |
double | getIntegralError(const TH1* histo) |
TH1* | getLineDistSquares(TH2* hist, double a, double b, bool useUnderflowOverflow = false) |
double | getMax(const TCollection* c, bool includeUnderflowOverflow = true, double maxMax = std::numeric_limits<double>::infinity()) |
double | getMax(const TH1* histo, bool includeError = false, bool includeUnderflowOverflow = true, double maxMax = std::numeric_limits<double>::infinity()) |
bool | getMaxArea2D(const TH2* histo, double frac, int& maxX, int& maxY, int& maxX_low, int& maxX_high, int& maxY_low, int& maxY_high) |
int | getMaxBin(const TH1* histo, bool includeError = false, bool includeUnderflowOverflow = true, double maxMax = std::numeric_limits<double>::infinity()) |
double | getMaximumBinValue(TH1* hist, double xmin, double xmax, bool includeErrors = false, double minContent = -std::numeric_limits<double>::infinity(), double maxContent = std::numeric_limits<double>::infinity()) |
double | getMaximumBinValue(TCollection* hist, double xmin, double xmax, bool includeErrors = false, double minContent = -std::numeric_limits<double>::infinity(), double maxContent = std::numeric_limits<double>::infinity()) |
double | getMin(const TCollection* c, bool includeUnderflowOverflow = true, double minMin = -std::numeric_limits<double>::infinity()) |
double | getMin(const TH1* histo, bool includeError = false, bool includeUnderflowOverflow = true, double minMin = -std::numeric_limits<double>::infinity()) |
int | getMinBin(const TH1* histo, bool includeError = false, bool includeUnderflowOverflow = true, double minMin = -std::numeric_limits<double>::infinity()) |
double | getMinBinArea(TH2* hist) |
double | getMinBinWidth(TAxis* a) |
double | getMinimumBinValue(TH1* hist, double xmin, double xmax, bool includeErrors = false, double minContent = -std::numeric_limits<double>::infinity(), double maxContent = std::numeric_limits<double>::infinity()) |
double | getMinimumBinValue(TCollection* hist, double xmin, double xmax, bool includeErrors = false, double minContent = -std::numeric_limits<double>::infinity(), double maxContent = std::numeric_limits<double>::infinity()) |
bool | getMinMax(const TH1* histo, double& min, double& max, bool includeError = false, bool includeUnderflowOverflow = true, double minMin = -std::numeric_limits<double>::infinity(), double maxMax = std::numeric_limits<double>::infinity()) |
bool | getMinMaxBin(const TH1* histo, int& minBin, int& maxBin, bool includeError = false, bool includeUnderflowOverflow = true, double minMin = -std::numeric_limits<double>::infinity(), double maxMax = std::numeric_limits<double>::infinity()) |
int | getNBins(const TH1* histo, bool includeUnderflowOverflow = true) |
int | getNbinsGlobal(const TH1* hist, bool ignoreLabels = false) |
int | getNDips(TH1* histo) |
vector<int> | getOptimizedBinBorders(TH1* hsig, TH1* hbkg, double minSignal = 10, double minBkg = 10, double maxBkgUnc = 0.20000000000000001, bool significanceAgnostic = false, double maxSignal = 30, double estimatedMaxSignInBin = 6, bool verbose = false, double maxSigUnc = 0.5, double minBinWidth = -1, bool mergeBins = true) |
double | getPoisson(double b, double s) |
double | getPoissonError(double b, double s, double db, double ds) |
double | getPoissonWithError(double b, double db, double s) |
double | getPoissonWithErrorError(double b, double s, double db, double ds) |
TH1* | getProjection(TH1* histo, bool onX, int binLow = -1, int binHigh = -1) |
TList* | getProjectionHistograms(TH2* histo, bool projectOnX, bool normalize = false) |
TList* | getProjectionHistogramsX(TH2* histo, bool normalize = false) |
TList* | getProjectionHistogramsY(TH2* histo, bool normalize = false) |
TH1* | getProjectionX(TH1* histo, int binLow = -1, int binHigh = -1) |
TH1* | getProjectionY(TH1* histo, int binLow = -1, int binHigh = -1) |
TH1* | getRebinned(const TH1* histo, const vector<int>& binBorders, bool doRemap = false, bool keepOverFlowUnderFlowSeparate = false) |
TH1* | getRebinned(const TH1* histo, const vector<double>& lowEdges, bool doRemap = false, bool keepOverFlowUnderFlowSeparate = false) |
TH1* | getRebinned(const TH1* histo, const vector<int>& binBordersX, const vector<int>& binBordersY, bool doRemap = false, bool keepOverFlowUnderFlowSeparate = false) |
TH1* | getRebinned(const TH1* histo, const vector<double>& lowEdgesX, const vector<double>& lowEdgesY, bool doRemap = false, bool keepOverFlowUnderFlowSeparate = false) |
TH1* | getRebinned(const TH1* histo, const vector<int>& binBorders, const vector<double>& lowEdges, bool doRemap = false, bool keepOverFlowUnderFlowSeparate = false) |
TH1* | getRebinnedFlat(TH1* histo, int nBins) |
TH1* | getRelativeVariationHistogram(TH1* variation, TH1* nominal, double epsilon = 0.) |
TH1* | getRemapped(TH1* histo, const vector<double>& newBinBorders) |
TH2* | getRemapped2D(TH2* histo, const vector<int>& binBorders, bool remapX = true) |
TH1* | getRemappedFlat(TH1* histo, int nBins) |
TH2* | getRemappedFlat2D(TH2* histo, int nBins, bool remapX = true) |
TH1* | getReweightedHistogram(TH2* histo_input, TH1* histo_weights, bool projectOnX) |
TH1* | getReweightedHistogramX(TH2* histo_input, TH1* histo_weights) |
TH1* | getReweightedHistogramY(TH2* histo_input, TH1* histo_weights) |
TGraphAsymmErrors* | getROCGraph(TH1* h_bkg, TH1* h_sig, bool lowerBound) |
void | getSgnfAndErr(double b, double bErr, double s, double sErr, double& sgnf, double& sgnfErr, TString sgnfName, TString* sgnfTitle = 0) |
double | getSignificance(double b, double s, TString sgnfName, double berr, TString* sgnfTitle = 0) |
TH1* | getSignificanceHisto(TH1* histo_bkg, TH1* histo_sig, TString options = "") |
int | getSizePerBin(const TH1* histo) |
TObjArray* | getSlices(const TH2* input, bool alongX = true) |
TH1* | getSlopeHistogram(TH1* input, double slope) |
TH1* | getSmoothedManually(const TH1* histo, const vector<double>& lowEdges, bool keepOverFlowUnderFlowSeparate = true) |
TH1* | getSmoothedManually(const TH1* histo, const vector<int>& binBorders, bool keepOverFlowUnderFlowSeparate = true) |
TH1* | getSmoothedVariation(const TH1* h_nom, TH1* h_var, const vector<int>& binBorders, bool keepOverFlowUnderFlowSeparate = true) |
double | getSoverB(double b, double s) |
double | getSoverSqrtB(double b, double s) |
TH1* | getSoverSqrtB(TH1* sig, TH1* bkg) |
TH1* | getSoverSqrtBScan(TH1* signal, TH1* bkg, bool fromleft, double cutoff = 0.050000000000000003, bool verbose = false) |
double | getSoverSqrtSplusB(double b, double s) |
double | getSummedBinByBinSignificance(TH1* histo_bkg, TH1* histo_sig, TString options = "sgnf:poisson") |
TH1* | getSystematics(TH1* h_nominal, TList* singleVars, TList* pairVars = 0) |
TH1* | getUncertaintyHistogram(TH1* hist) |
void | getUnFilteredRange(TCollection* histograms, double xmin, double xmax, double minContent, double maxContent, double& lower, double& upper) |
vector<double> | getUniformBinEdges(int nBins, double min, double max) |
bool | hasBinLabels(const TH1* h) |
bool | hasBinLabels(const TAxis* a) |
bool | hasGreaterMaximumThan(TH1* hist1, TH1* hist2) |
bool | hasUniformBinning(const TH1* hist) |
bool | hasUniformBinning(const TAxis* axis) |
bool | haveEqualShapeRel(TH1* h1, TH1* h2, double rel) |
vector<TString> | histoBinsToCutStrings(TH1* hist, const TString& varexpr, TString cutname = "", const TString& basecutname = "") |
TQCounter* | histogramToCounter(TH1* histo) |
TH1* | includeOverflowBins(TH1* histo, bool underflow = true, bool overflow = true) |
bool | includeSystematics(TH1* histo, TH1* systematics) |
void | interpolateGraph(TGraph* g, size_t increasePoints, const char* option = "S") |
TH1* | invertShift(TH1* var, TH1* nom) |
TH1* | invertShiftWithoutError(TH1* var, TH1* nom) |
bool | isAlphanumeric(const TAxis* ax) |
bool | isCloseToOneRel(double val, double rel) |
bool | isEmpty(const TH1* hist, double threshold, double mean = 0) |
bool | isGreaterThan(TH1* hist1, TH1* hist2) |
bool | isUnderflowOverflowBin(TH1* hist, int bin) |
TLine* | makeBisectorLine(TH1* hist, double angle = 45, double xUnit = -1, double yUnit = -1, double xOrig = 0, double yOrig = 0) |
TMultiGraph* | makeMultiColorGraph(const vector<double>& vecX, const vector<double>& vecY, const vector<short>& vecColors) |
bool | multiplyHistogramWithoutError(TH1* histo1, const TH1* histo2) |
TH1* | normalize(TH1* histo, double normalizeTo = 1., bool includeUnderOverflow = true) |
TH1* | normalize(TH1* histo, const TH1* normalizeToHisto, bool includeUnderOverflow = true) |
TH1* | pcmpObsVsExp(TH1* hObs, TH1* hExp, bool ignoreExpUnc = false) |
TH1* | power(TH1* histo, double exp) |
void | print(THStack* s, TString options = "") |
void | printHistogramASCII(TH1* hist, const TString& tags = "") |
void | printHistogramASCII(TH1* hist, TQTaggable& tags) |
void | printHistogramASCII(ostream&, TH1* hist, const TString& tags) |
void | printHistogramASCII(ostream&, TH1* hist, TQTaggable& tags) |
int | purgePeaks1D(TH1* hist, double threshold, int mode = 1) |
double | pValuePoisson(unsigned int nObs, double nExp) |
double | pValuePoissonError(unsigned int nObs, double E = 1, double V = 1) |
double | pValueToSignificance(double p, bool excess = true) |
TQHistogramUtils::FOM | readFOM(TString fom) |
bool | rebin(TH1*& hist, const vector<double>& boundaries, bool doRemap = false) |
bool | rebin(TH1*& hist, const vector<int>& boundaries, bool doRemap = false) |
bool | rebin(TH1*& hist, const vector<double>& boundariesX, const vector<double>& boundariesY, bool doRemap = false) |
bool | rebin(TH1*& hist, const vector<int>& boundariesX, const vector<int>& boundariesY, bool doRemap = false) |
bool | rebin(TH1* hist, int rebinX, int rebinY, int rebinZ, bool doRemap = false) |
void | remap(TAxis* ax, double min = 0, double max = 1) |
void | remapAndRelabel(TAxis* ax) |
TH2* | removeBins(TH2* in, const vector<TString>& blackList) |
TH2* | removeBins(TH2* in, TString blackList) |
void | reorder(TH1* hist, const vector<int>& bins) |
void | reorderBins(TH2* hist, const vector<TString>& ordering) |
bool | replaceBins(TH1* histo1, TH1* histo2, vector<int> bins) |
void | rerollGauss(TH1* hist, double zvalue = 1) |
void | rerollPoisson(TH1* hist, int seed = 0) |
bool | resetBinErrors(TH1* histo) |
TH1* | rotationProfile(TH2* hist, double xUnit = -1, double yUnit = -1, int nStep = 36, double xOrig = 0, double yOrig = 0) |
TH2* | rotationXtranslationProfile(TH2* hist, double xUnit = -1, double yUnit = -1, int nStepAngle = 36, int nStepOffset = -1, double yOrig = 0, double x0 = std::numeric_limits<double>::quiet_NaN()) |
TH2* | rotationYtranslationProfile(TH2* hist, double xUnit = -1, double yUnit = -1, int nStepAngle = 36, int nStepOffset = -1, double xOrig = 0, double y0 = std::numeric_limits<double>::quiet_NaN()) |
void | scaleErrors(TH1* hist, double scale) |
bool | scaleHistogram(TH1* histo1, TQCounter* scale, bool includeScaleUncertainty = false) |
bool | scaleHistogram(TH1* histo1, double scale = 1., double scaleUncertainty = 0., bool includeScaleUncertainty = true) |
TGraph* | scatterPlot(const TString& name, vector<double>& vec1, vector<double>& vec2, const TString& labelX = "x", const TString& labelY = "y") |
TGraph* | scatterPlot(const TString& name, double* vec1, double* vec2, int vLength, const TString& labelX = "x", const TString& labelY = "y") |
bool | setHistogramContents(TH1* histo, const TString& contents) |
void | setRelativeUncertainties(TH1* hist, double relunc, bool addToInitialValue) |
void | setSliceX(TH2* hist2d, TH1* hist, double value) |
void | setSliceY(TH2* hist2d, TH1* hist, double value) |
TH1* | sumHistograms(TCollection* histos) |
TH1* | sumHistograms(const vector<TH1*>& histos) |
TH1* | sumHistogramsInQuadrature(const vector<TH1*>& histograms) |
double | sumLineDistSquares(TH2* hist, double a, double b, bool useUnderflowOverflow = false) |
TH1* | sumOfSquares(const vector<TH1*>& histograms) |
TH1* | symmetrizeFromTwo(const TH1* var1, const TH1* var2, TH1* nom) |
bool | transferRelativeErrors(TH1* sourceHist, TH1* targetHist) |
bool | transferRelativeErrors(TQCounter* sourceHist, TQCounter* targetHist) |
void | unifyMinMax(TCollection* histograms, double vetoFraction = 0.90000000000000002) |
void | unifyMinMax(TH1* h1, TH1* h2, double vetoFraction = 0.90000000000000002) |
void | unifyMinMax(TH1* h1, TH1* h2, TH1* h3, double vetoFraction = 0.90000000000000002) |
TH1* | unrollHistogram(const TH2* input, bool firstX = true, bool includeUnderflowOverflow = false, bool addLabels = false) |
return true if the histogram is empty, false otherwise
Returns a string representing the definition of the histogram following a syntax compatible with TQHistogramUtils::createGraph(...). An empty string is returned in case an invalid histogram is passed.
Returns a string representing the definition of the histogram following a syntax compatible with TQHistogramUtils::createHistogram(...) and being similar to the constructor of the corresponding histogram class. An empty string is returned in case an invalid histogram is passed.
set the histogram contents from a string
return true if all axes of a histogram have uniform binning, false otherwise
return true if an axis has uniform binning, false otherwise
Returns a string representing a definition of the binning on axis <axis>. For uniformly binned axes the format is "<n>, <left>, <right>" where <n> refers to the number of bins, <left> to the lower edge of the first bin and <right> to the upper edge of the last bin. For non-uniformly binned axis the format is "{<e1>, ..., <en>, <eX>}" where <ei> refers to the lower bin edge of bin i and <eX> to the upper bin edge of the last bin. The format is compatible with TQHistogramUtils::createHistogram(...) An empty string is returned in case an invalid histogram is passed.
retrieve the list of contours corresponding to the given contour levels
Creates a new instance of a histogram (TH1F, TH1D, ...) from a definition string that uses a similar syntax as the constructor of the corresponding histogram class. Currently, TH1F, TH1D, TH2F, TH2D, TH3F, and TH3D are supported. Examples: - a TH1F with 5 bins between 0. and 1. createHistogram("TH1F('histo', 'title', 5, 0, 1)") - similarly, but specifying the bin edges explicitly createHistogram("TH1F('histo', 'title', {0, 0.2, 0.4, 0.6, 0.8, 1})") - a TH2D with 10 times 10 bins between -5 ... 5 and -1 ... 1, respectively createHistogram("TH2F('histo', 'title', 10, -5., 5., 10, -1., 1.)") - a TH2D with 3 times 3 bins between -5 ... 5 and variable bins between -1 ... 1, respectively createHistogram("TH2F('histo', 'title', 3, -5., 5., {-1., -0.8, 0.1, 1.})")
Returns a pointer to a vector of doubles listing bin edges of <nBins> bins between <min> and <max>. The resulting vector will have <nBins> + 1 entries (the user is responsible for deleting the returned vector). A null pointer is returned in case <nBins> is smaller than one or <max> is not larger than <min>.
parameter name of number of bins (or array of bin edges)
parameter names of min and max in axis
retrieve details of a TGraph as a string
retrieve details of a TGraph2D as a string
Returns a string summarizing properties of the histogram passed as argument <histo>. The optional parameter <option> allows to control the degree of detail of the resulting string (<option> is 1 by default): - <option> == 0 prints the number of bins on each axis - <option> == 1 additionally prints the sum of weights an the corresponding uncertainty (from root of sum of squares of weights) - <option> == 2 additionally prints the ranges and binning of axes - <option> == 3 additionally prints the units on axes - <option> == 4 additionally prints the plotting style
Returns a string summarizing properties of the axis passed as argument <axis>. The optional parameter <option> allows to control the degree of detail of the resulting string (<option> is 1 by default): - <option> == 1 prints the number of bins on axis - <option> == 2 additionally prints the ranges and binning of axis - <option> == 3 additionally prints the units on axis
Counts and returns the number of dips (bins without entries surrounded by bins with non-zero entries) in input histogram <histo>. -1 is returned in case an invalid input histogram is provided. Please note: currently, only one and two dimensional histograms are supported.
Scans the 2D input histogram <histo> for the maximum bin as well as the area around the maximum bin where the bin content exceeds <frac> times the maximum and returns true in case of success or false otherwise. The coordinates of the maximum bin are stored in <maxX> and <maxY> while the span of the maximum area is stored in <maxX_low>, <maxX_high>, <maxY_low>, and <maxY_high>. stop if input histogram is invalid or not a 2D histogram
create an array of low edges of a histogram
create an array of low edges of an axis
create the array of bin borders
create the array of bin borders
return a remapped version of a histogram with the given bin borders
return a remapped version of a 2D histogram with the given bin borders
obtain a version of a 1D histogram remapped to a flat distribution
obtain a version of a 1D histogram rebinned to a flat distribution
obtain a version of a 2D histogram remapped to a flat distribution
obtain a new set of boundaries that remap a given histogram to a flat distribution
obtain a new set of boundaries that remap a given histogram to a flat distribution
obtain a new set of boundaries that optimize the significance between hsig and hbkg following the conditions provided Parameters: minSignal: minimum signal in bin to set bin border maxSignal: signal threshold to set early bin border (no effect with significanceAgnostic = true) minBkg: minimum bkg in bin to set bin border maxBkgUnc: maximum relative uncertainty on bkg to set bin border significanceAgnostic: If true, the bin boundaries are entirely specified with minSignal, minBkg, maxBkgUnc and the optional estimatedMaxSignInBin estimatedMaxSignInBin: optional ballpark estimate for significance of most signal sensitive bin to judge range of unsignificant part of distribution mergeBins: merge the first two bins
convert a 2D histogram to a 1D histogram by unrolling it
Creates a one-dimensional projection from a two-dimensional histogram onto any of its axes and returns a pointer to the projected histogram or a NULL pointer in case of failure. The histogram <histo> is projected onto its X axis if <onX> == true and onto its Y axis if <onX> == false. Optionally, the projection range on the axis that is projected out can be chosen via <binLow> and <binHigh> which refer to the first and the last bin to be considered, respectively. The projection range reaches to the minimum (including underflow bin) and/or the maximum (including the overflow bin) if <binLow> and/or <binHigh> are less than zero (both are -1 by default). The projection histogram adopts both style options as well as the association to a TDirectory from the source histogram (ensuring unique names in case of an association to a TDirectory).
Creates a one-dimensional projection from a two-dimensional histogram onto its X axis and returns a pointer to the projected histogram or a NULL pointer in case of failure. Please refer to the documentation of TQHistogramUtils::getProjection(...) for additional information. [Please note: this is wrapper to TQHistogramUtils::getProjection(..., true, ...)]
Creates a one-dimensional projection from a two-dimensional histogram onto its Y axis and returns a pointer to the projected histogram or a NULL pointer in case of failure. Please refer to the documentation of TQHistogramUtils::getProjection(...) for additional information. [Please note: this is wrapper to TQHistogramUtils::getProjection(..., false, ...)]
Sets the bin errors for each bin of histogram histo to square-root of bin contents and returns false in case of an invalid histogram or if there are bins with negative entries or true otherwise. For bins with negative bin content the bin error is set to zero.
copy axis titles from one graph to the other
a variant of copyHistogram that works on TGraphs instead
Creates an independent copy of the input histogram <histo> and returns a pointer to the copy or a NULL pointer in case of failure. Please note: currently, only instances of TH1F, TH1D, TH2F, TH2D, TH3F, and TH3D are supported. Optionally, a new name for the copy can be specified via <newName>. Otherwise, the copied histogram will adopt the name of the input histogram. In any case it will adopt its potential association to an instance of TDirectory (ensuring a unique name).
copy bin labels from axes of one histogram to the corresponding axes of the other returns false if no valid arguments are given or source and target histograms/axes are incompatible (different dimensionality / different number of bins)
copy bin labels from one axis to another. Returns false if arguments are invalid or axes are incompatible
copy axis style settings from axes of one histogram to the corresponding axes of the other returns false if no valid arguments are given or source and target histograms/axes are incompatible (different dimensionality / different number of bins)
add two histograms in quadrature bin = sqrt ( bin^2(histo1) + factor * bin^2(histo2) ) replaces contents of histo1
add a histogram in quadrature to the error of the other histogram binerror = sqrt ( binerror^2(hist) + bin^2(errorhist) ) replaces contents of hist
add a value to a histogram in quadrature bin = sqrt ( bin^2(histo1) + factor * value^2) ) replaces contents of histo1
creates a new histogram with contents equal to the sum of squared bin contents of the input histograms (a*a + b*b + ...). returns nullptr if list of input histograms is empty. Note: for sum in quadrature (i.e. sqrt(a*a + b*b + ...)) use TQHistogramUtils::sumHistogramsInQuadrature !
creates a new histogram with contents equal to the bin-by-bin quadrature sum (sqrt(a*a+b*b+...)) of the input histograms. Note: for sum of squared bin contents (i.e. a*a + b*b + ..., without sqrt() ) use TQHistogramUtils::sumOfSquares !
replace the bin contents and errors of histo1 by the ones from histo2 in the given bins
draw a list of histograms
Returns the total number of bins of the input histogram <histo> including over- and underflow bins as well as all dimensions of the histogram or 0 in case of failure. That is, for a 10x10 bins 2D histogram 144 = (10+2)*(10+2) is returned.
Check if two histograms have consistent binning
creates a std::vector of TString that represent cut definitions according to the histogram bins the cutname should contain a %d placeholder which will be replaced by the cut (bin) index if the cutname does not contain such a placeholder, "_%d" will be appended if no cutname is given, the histogram name will be used if a non-empty basecutname is given, it will be included in the cut definition strings underflow and overflow bins will automatically be included as first and last vector element
Returns the error on the Poisson significance according to <b> expected background events and <s> expected signal events. Returns 0 if any term becomes invalid Poisson significance = TMath::Sqrt(2. * ((s + b) * TMath::Log(1. + s / b) - s)) The error is propagated from errors in b and s according to the most general formula for independent error propagation.
Returns the significance corresponding to a Poisson-Poisson model with asymptotic formula. Returns 0 if any term becomes invalid Poisson-Poisson asymptotic significance = TMath::Sqrt(2. *( (s+b) * TMath::Log((s+b)*(b+db*db)/(b*b+(s+b)*db*db) ) - b*b/(db*db) * TMath::Log(1. + (db*db*s)/( b*(b+db*db))) ) ) See slide 9 https://indico.cern.ch/event/768968/contributions/3195413/attachments/1743878/2822499/statsCommitteeAtlasWeeklyOct2018.pdf
Returns the error on the Poisson significance according to <b> expected background events and <s> expected signal events. Returns 0 if any term becomes invalid Poisson significance = TMath::Sqrt(2. *( (s+b) * TMath::Log((s+b)*(b+db*db)/(b*b+(s+b)*db*db) ) - b*b/(db*db) * TMath::Log(1. + (db*db*s)/( b*(b+db*db))) ) ) The error is propagated from errors in b and s according to the most general formula for independent error propagation.
Returns <s> over square-root of <b> or zero in case <s> is negative or <b> is not larger than zero.
Returns <s> over square-root of <b> or zero in case <s> is negative or <b> is not larger than zero.
Returns <s> over <b> or zero in case <s> is negative or <b> is not larger than zero.
calculate the significance given a certain string identifier supported versions are: poission, soversqrtb, soversqrtsplusb, soverb
return true if two histograms are completely equal false otherwise
calculate the significance given a certain string identifier supported versions are: poission, soversqrtb, soversqrtsplusb, soverb
Calculate the efficiency of a cut on the distribution given by the histogram histo.
stop if the input histograms are invalid/inconsitent
add significances in bins quadratically
Return the integral of a histogram
computes the ratio of the two given histograms. Errors are recalculated assuming that events in the numerator histogram are also present in the denominator, i.e., that the selection of events/entries in the numerator represents a true subset of those in the denominator. If the calculation of the resulting uncertainty fails at some point NULL is returned.
computes the (bin-by-bin) ratio of <variation>/<nominal>. Statistical uncertainties are calculated/propagated using only the uncertainty of the variation. If the bin content of the nominal or variation histogram is zero for some bin the uncertainty of the corresponding ratio bin is set to infinity. If at least one of the input histograms is invalid or the histograms are incompatible, according to TQHistogramUtils::checkConsistency, NULL is returned.
Return the error of the integral of a histogram including under- and over- flow bins
Return the integral and its error of a histogram including under- and over- flow bins
Normalize this histogram to a given integral value
Normalize this histogram to the integral value of another histogram
set the contents of a histogram to reflect a certain slope
include overflow and/or underflow bins in a histogram
add overflow and/or underflow bins as extra bins to a histogram
unify the minima and maxima of a list of histograms
unify the minima and maxima of three histograms
unify the minima and maxima of two histograms
find the minimum and maximum bins of a histogram
find the minimum and maximum coordinates of a histogram
find the minimum bin of a histogram
find the maximum bin of a histogram
find the minimum coordinate of a histogram
find the maximum coordinate of a histogram
extract the style from a histogram and save it to a TQTaggable object
extract the style from a histogram and save it to a TQTaggable object
apply the style given by a TQTaggable object to a histogram
Copies the style settings (fill color, fill style, line color, line style, line width, marker size, marker color, marker style) from the source histogram <h_src> to the destionation histogram <h_dest> and returns true in case of success or false in case of failure.
Copies the style settings (fill color, fill style, line color, line style, line width, marker size, marker color, marker style) from the source histogram <h_src> to the destionation graph <h_dest> and returns true in case of success or false in case of failure.
Copies the style settings (fill color, fill style, line color, line style, line width, marker size, marker color, marker style) from the source graph <g_src> to the destionation graph <g_dest> and returns true in case of success or false in case of failure.
Copies the style settings (fill color, fill style, line color, line style, line width, marker size, marker color, marker style) from the source graph <g_src> to the destionation graph <g_dest> and returns true in case of success or false in case of failure.
Returns true if the input value <val> is compatible with one with a relative deviation smaller than <rel> and false otherwise. The return value is invariant under the transformation <val> --> 1/<val>.
Returns true if the two input values <val1> and <val2> are compatible with a relative deviation smaller than <rel> and false otherwise. If either of the input values is zero or one is positive while the other is negative false is returned. The return value is invariant under exchange of <val1> and <val2>.
check if two histograms have a relatively equal shape by calling areEqualRel on every bin
Takes a value content and ensure that it is greater or equal to min. Returns true if the content or uncertainty have changed, false otherwise. The variables content and uncertainty are call-by-reference. All additional options only play a role if content is negative: If (assignUncertainty) and (content < 0), then it is ensured that the new uncertainty is greater or equal to -content. If (ignoreNegative) and (content < 0), content is not changed. If (not ignoreNegative) and (flipToPositive) and (content < 0), then the absolute value of content is taken.
Ensure that a histogram has a certain minimum content in every bin For the other options, see ensureMinimumContent(...)
Build upon ensureMinimumContent. When this is called the Absolute content is compared with the MinBinContent. If the AbsContent is lower than the MinBincontent and the Content was negative. The new content is -MinBinContent If the AbsContent is lower than the MinBincontent and the Content was positive. The new content is +MinBinContent Bins equal to zero are regarded as positive.
Ensure that a histogram has a certain minimum content in every bin For the other options, see ensureMinimumContent(...)
Consider Poi(k|nExp) and compute the p-value which corresponds to the observation of nObs counts. When nObs > nExp there is an excess of observed events and p-value = P(n>=nObs|nExp) = \sum_{n=nObs}^{\infty} Poi(n|nExp) = 1 - \sum_{n=0}^{nObs-1} Poi(n|nExp) = 1 - e^{-nExp} \sum_{n=0}^{nObs-1} nExp^n / n! Otherwise (nObs <= nExp) there is a deficit and p-value = P(n<=nObs|nExp) = \sum_{n=0}^{nObs} Poi(n|nExp) = e^{-nExp} \sum_{n=0}^{nObs} nExp^n / n!
Consider Poi(k|nExp) and compute the p-value which corresponds to
the observation of nObs counts, in the case of uncertain nExp whose
variance is provided.
The prior for nExp is a Gamma density which matches the expectation
and variance provided as input. The marginal model is provided by
the Poisson-Gamma mixture, which is used to compute the p-value.
Gamma density: the parameters are
* a = shape param [dimensionless]
* b = rate param [dimension: inverse of x]
nExp ~ Ga(x|a,b) = [b^a/Gamma(a)] x^{a-1} exp(-bx)
One has E[x] = a/b and V[x] = a/b^2 hence
* b = E/V
* a = E*b
The integral of Poi(n|x) Ga(x|a,b) over x gives the (marginal)
probability of observing n counts as
b^a [Gamma(n+a) / Gamma(a)]
P(n|a,b) = -----------------------------
n! (1+b)^{n+a}
When nObs > nExp there is an excess of observed events and
p-value = P(n>=nObs) = \sum_{n=nObs}^{\infty} P(n)
= 1 - \sum_{n=0}^{nObs-1} P(n)
Otherwise (nObs <= nExp) there is a deficit and
p-value = P(n<=nObs) = \sum_{n=0}^{nObs} P(n)
To compute the sum, we use the following recurrent relation:
P(n=0) = [b/(1+b)]^a
P(n=1) = [b/(1+b)]^a a/(1+b) = P(n=0) a/(1+b)
P(n=2) = [b/(1+b)]^a a/(1+b) (a+1)/[2(1+b)] = P(n=1) (a+1)/[2(1+b)]
... ...
P(n=k) = P(n=k-1) (a+k-1) / [k(1+b)]
and to avoid rounding errors, we work with logarithms.
if (nObs<0) {
std::cerr << "ERROR in pValuePoissonError(): the number of observed events cannot be negative" << std::endl;
return 0;
}
Convert a p-value into a right-tail normal significance, i.e. into the number of Gaussian standard deviations which correspond to it.
set the uncertainties of a histogram to the relative unceratinty value given
obtain a TGraph scatter plot from two lists of numbers
obtain a TGraph scatter plot from two lists of numbers
creates multiple TGraphs combined into a TMultiGraph. vecColors idicates the color of each point (according to the usual ROOT colors) and is hence required to have the same number of elements as the coordinates of the points (vecX, vecY). For each color present in vecColors one TGraph is created and added to the TMultiGraph.
Find the largest error of a plot
Fit even points with insane errors on a plot
find the minimum bin value of the given histogram in the given x-range ignoring bins smaller or equal to minContent and larger or equal to maxContent
find the minimum bin value of a list of histograms
find the maximum bin value of the given histogram in the given x-range ignoring bins smaller or equal to minContent and larger or equal to maxContent
find the maximum bin value of a list of histograms
find the total maximum of a set of histograms the first argument is the number of histograms to consider an arbitrary number of subsequent histogram pointers can be passed
find the total minimum of a set of histograms the first argument is the number of histograms to consider an arbitrary number of subsequent histogram pointers can be passed
find x axis maximum of a set of histograms the first argument is the number of histograms to consider an arbitrary number of subsequent histogram pointers can be passed
find the x axis minimum of a set of histograms the first argument is the number of histograms to consider an arbitrary number of subsequent histogram pointers can be passed
find the y axis maximum of a set of histograms the first argument is the number of histograms to consider an arbitrary number of subsequent histogram pointers can be passed
find the y axis minimum of a set of histograms the first argument is the number of histograms to consider an arbitrary number of subsequent histogram pointers can be passed
read in a signal and background histogram and give back a vector of bins starting with the lowest value of sig/bkg and ending with highest only supports 1dim histograms at the moment
edges a one-dimensional histogram adjusts the axis to hide marginal bins with a bin content below the cutoff
edges a two-dimensional histogram adjusts the axis to hide marginal bins with a bin content below the cutoff
read in a histogram and vector with the places of the bins and reorder the bins accordingly
Returns histogram that is varied from nominal with the possibility to smooth the variation by deriving the relative variations in merged histogram bins as specified by binBorders.
remap the axis of a histogram to a given range (without actually changing the binning)
remap the axis of a histogram to a given range (without actually changing the binning)
get the absolute maximum of a collection of histograms
get the absolute minimum of a collection of histograms
interpolate a graph to a specific point mode encodes the interpolation method: 0: linear 1: exponential (linear for logscale)
find the point where two graphs intersect
calculate area of the graph contour (polygon) in the x/y plane will only yield an accurate result if the graph is a regular polygon without any intersecting lines
calculate distance between first and last point of graph in the x/y plane
interpolate a graph, increasing the number of points by the given factor
add two objects of type TPrincipal will add the contents of the second argument to the first one the second one will stay unchanged
retrieve an info-string for some TPrincipal object
retrieve an info-string for some TPrincipal object
print the entire data contents of a TPrincipal object to the console
retrieve an integrated s/sqrt(b) histogram, scanning from left or right
calculate a figure of merit from the source numbers
return a title string identifying a figure of merit
return a title string identifying a figure of merit
retrieve a significance histogram (bin-by-bin mode)
retrieve an integrated FOM histogram, scanning from left or right
calculate the sum of squared distances between some line and all histogram entries in a 2D histogram
calculate the squared distance between some line and a given bin in a 2D histogram line is defined by slope b and y-axis offset a
generate distribution of squared distances between some line and all histogram entries in a 2D histogram line is defined by slope b and y-axis offset a
produces the 'rotation profile' of a histogram in the following sense given a line with angle alpha, what is the sum of squared distances of all histogram entries with respect to the given line? the returned histogram holds the dependency of the inverse of this sum as a function of the angle alpha since the definition of the angle depends on the relative scaling of the two axis, units must be given for both dimensions.
produces the 'rotation-translation profile' of a histogram in the following sense given a line with angle alpha and a vertical offset y, what is the sum of squared distances of all histogram entries with respect to the given line? the returned histogram holds the dependency of the inverse of this sum as a function of the angle alpha and the offset y since the definition of the angle depends on the relative scaling of the two axis, units must be given for both dimensions.
produces the 'rotation-translation profile' of a histogram in the following sense given a line with angle alpha and a horizontal offset x, what is the sum of squared distances of all histogram entries with respect to the given line? the returned histogram holds the dependency of the inverse of this sum as a function of the angle alpha and the offset x since the definition of the angle depends on the relative scaling of the two axis, units must be given for both dimensions.
create a TLine with a given angle (in xUnit and yUnit coordinates, axis coordinates if not given) measured from origin at xOrig and yOrig will be cropped to the size fo the histogram
crop a line so that it does not exceed the drawing area of the histogram this function will swap the line orientation such that x1<x2
clear all histogram bins beyond xMax (for 2D-histograms)
clear all histogram bins below xMin (for 2D-histograms)
clear all histogram bins beyond yMax (for 2D-histograms)
clear all histogram bins below yMin (for 2D-histograms)
print a histogram to the console (ascii-art)
print a histogram to a stream (ascii-art)
print a histogram to a stream (ascii-art)
copied from official ATLAS style scripts returns a TStyle* object according to the ATLAS style guidelines can then be enabled via gROOT->SetStyle("ATLAS"); followed by either calling TH1::UseCurrentStyle() on each histogram or gROOT->ForceStyle();
Turns a simple histogram into a plot following ATLAS style guidelines. This is mostly intended for quick plotting and interactive use
unroll a two-dimensional histogram, concatenating the slices to a single one-dimensional histogram
returns true if each bin of hist1 has a larger or equal value than the corresponding bin of hist2
Turns a TGraph based scatter plot into a plot following ATLAS style guidelines. This is mostly intended for quick plotting and interactive use
Turns a TGraph based scatter plot into a plot following ATLAS style guidelines. This is mostly intended for quick plotting and interactive use
reroll a histogram, i.e. replace every bin content with a new number randomly selected from a gaussian distribution where mean and width are given by bin content and bin error of the histogram. zvalue can be used to scale up or down the width of the gaussian.
reroll a histogram, i.e. replace every bin content with a new number randomly selected from a poisson distribution where the mean is given by bin content of the histogram.
envelope a histogram by another one, taking the bin-by-bin maximum
envelope a histogram by another one, taking the bin-by-bin minimum
convert a 2d histogram into a matrix
convert a 2d histogram into a matrix
fix holes (empty bins below threshold) in a 1D histogram this function uses simple linear interpolation/extrapolation from the 2 adjacent bins underflow/overflow bins are ignored
set the relative errors of targetHist to the ones of sourceHist
set the relative errors of target counter to the ones of source counter
sums up histograms in input collection and returns the summed histogram if no histogram (instance of TH1) is found a nullptr is returned. if histograms are found to be inconsistent a nullptr is returned.
sums up histograms in input collection and returns the summed histogram if no histogram (instance of TH1) is found a nullptr is returned. if histograms are found to be inconsistent a nullptr is returned.