29 fFiles.emplace_back(fileName);
37 for (
Int_t i = 0; i < naxes; ++i) {
42 "Could not find histogram %s in file %s",
61 if (i < 0 || i >=
static_cast<Int_t>(
fAxes.size())) {
83 "Could not find histogram %s in file %s",
92 "Histogram %s from file %s is inconsistent with the histogram from file %s",
107 }
else if (ndim == 2) {
109 }
else if (ndim == 3) {
120 static_cast<TH1*
>(h_merged)->
Add(
static_cast<TH1*
>(
h));
148 f->GetObject(
fName.c_str(), hs);
160 for (
Int_t i = 0; i < naxes; ++i) {
177 const Int_t naxes =
h.GetNdimensions();
178 const Int_t naxes2 = axes.size();
180 if (naxes != naxes2) {
184 for (
Int_t i = 0; i < naxes; ++i) {
185 const TAxis* ax1 =
h.GetAxis(i);
186 const TAxis* ax2 = axes[i];
203 if (h2Array->
fN != fN) {
206 for (
int ibin = 0; ibin < fN; ++ibin) {
225 Int_t dim[1] = {xDim};
233 Int_t dim[2] = {xDim, yDim};
241 Int_t dim[3] = {xDim, yDim, zDim};
Array of doubles (64 bits per element).
Double_t GetAt(Int_t i) const override
Class to manage histogram axis.
const TArrayD * GetXbins() const
void Copy(TObject &axis) const override
Copy axis structure to another axis.
TDirectory::TContext keeps track and restore the current directory.
A ROOT file is composed of a header, followed by consecutive data records (TKey instances) with a wel...
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
Create / open a file.
TH1 is the base class of all histogram classes in ROOT.
Service class for 2-D histogram classes.
The 3-D histogram classes derived from the 1-D histogram classes.
Multidimensional histogram base.
TH1D * Projection(Int_t xDim, Option_t *option="") const
Project all bins into a 1-dimensional histogram, keeping only axis "xDim".
Int_t GetNdimensions() const
THnBase * ProjectionND(Int_t ndim, const Int_t *dim, Option_t *option="") const
TAxis * GetAxis(Int_t dim) const
TAxis * GetAxis(Int_t i) const
Get an axis from the histogram.
std::vector< TAxis * > fAxes
the list of histogram axes
THnBase * ReadHistogram(const char *fileName) const
Retrieve a histogram from a file.
void SetupAxes(THnBase &hs) const
Copy the properties of all axes to a histogram.
THnBase * ProjectionND(Int_t ndim, const Int_t *dim, Option_t *option="") const
See THnBase::Projection for the intended behavior.
TObject * ProjectionAny(Int_t ndim, const Int_t *dim, Option_t *option="") const
Projects all histograms in the chain.
static bool CheckConsistency(const THnBase &h, const std::vector< TAxis * > &axes)
Ensure a histogram has axes similar to the ones we expect.
void AddFile(const char *fileName)
Add a new file to this chain.
TH1 * Projection(Int_t xDim, Option_t *option="") const
See THnBase::Projection for the intended behavior.
std::string fName
name of the histogram
std::vector< std::string > fFiles
a list of files to extract the histogram from
Mother of all ROOT objects.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
Bool_t AreEqualRel(Double_t af, Double_t bf, Double_t relPrec)
Comparing floating points.
TMatrixT< Element > & Add(TMatrixT< Element > &target, Element scalar, const TMatrixT< Element > &source)
Modify addition: target += scalar * source.