19#include "HistogramAccumulator.hh"
20#include "HistogramDef.hh"
21#include "HistogramDef1D.hh"
22#include "HistogramDef2D.hh"
23#include "HistogramDef3D.hh"
24#include "HistogramDef4D.hh"
25#include "HistogramFactory.hh"
26#include "PerEntryHistogram.hh"
27#include "RBDSException.hh"
30#include "TDirectory.h"
35#include "BDSBH4DBase.hh"
54 selection(definition->selection),
59 int nDimensions = definition->nDimensions;
60 TH1* baseHist =
nullptr;
61 std::string histName = definition->histName;
62 std::string baseName = histName +
"_base";
63 std::string tempName = histName +
"Temp";
64 command = definition->variable +
" >> " + tempName;
74 temp =
dynamic_cast<TH1D*
>(baseHist->Clone(tempName.c_str()));
81 temp =
dynamic_cast<TH2D*
>(baseHist->Clone(tempName.c_str()));
88 temp =
dynamic_cast<TH3D*
>(baseHist->Clone(tempName.c_str()));
104 temp->SetTitle(tempName.c_str());
110PerEntryHistogram::~PerEntryHistogram()
147 {
return result->Integral();}
Base class for the 4D histogram classes.
Class to accumulate and merge histograms in different ways.
virtual TH1 * Terminate()
virtual void Accumulate(TH1 *newValue)
Specification for 1D histogram.
Specification for 2D histogram.
Specification for 3D Histogram.
Specification for 4D Histogram.
Common specification for a histogram.
Class to manufacture histograms.
TH3D * CreateHistogram3D(const HistogramDef3D *d, const std::string &overRideName="", const std::string &overRideTitle="")
Create 3D histogram.
TH2D * CreateHistogram2D(const HistogramDef2D *d, const std::string &overRideName="", const std::string &overRideTitle="")
Create 2D histogram.
BDSBH4DBase * CreateHistogram4D(const HistogramDef4D *d, const std::string &overRideName="", const std::string &overRideTitle="")
Create 4D histogram.
TH1D * CreateHistogram1D(const HistogramDef1D *d, const std::string &overRideName="", const std::string &overRideTitle="")
Create 1D histogram.
Holder for information to calculate per entry histograms.
TChain * chain
Cache of chain pointer that provides data.
virtual void Terminate()
Terminate the accumulator and save the result to the result member variable.
double Integral() const
Get the Integral() from the result member histogram if it exists, otherwise 0.
PerEntryHistogram()
Public constructor only for compatibility with ROOT - not intended for use.
virtual void Write(TDirectory *dir=nullptr)
std::string selection
Selection command.
virtual void AccumulateCurrentEntry(long int entryNumber)
TH1 * result
Final result with errors as the error on the mean.
TH1 * temp
Histogram for temporary 1 event data.
std::string command
Draw command.
General exception with possible name of object and message.