25 {
27
28 if (def.
type.starts_with(
"TH1")) {
30 return new CumulativeHistogramFiller1D(def, std::move(histogramProvider));
34 return new VecHistogramFiller1D(def, std::move(histogramProvider));
35 } else {
36 return new HistogramFiller1D(def, std::move(histogramProvider));
37 }
38 }
else if (def.
type.starts_with(
"TH2")) {
41 } else {
43 }
44 }
else if (def.
type ==
"TProfile") {
47 } else {
49 }
50 }
else if (def.
type ==
"TProfile2D") {
53 } else {
54 return new HistogramFiller2DProfile(def, std::move(histogramProvider));
55 }
56 }
else if (def.
type ==
"TEfficiency") {
57 return new HistogramFillerEfficiency(def, std::move(histogramProvider));
58 }
else if (def.
type ==
"TTree") {
59 return new HistogramFillerTree(def, std::move(histogramProvider));
60 }
61
62 return nullptr;
63}
std::shared_ptr< IHistogramProvider > createHistogramProvider(const HistogramDef &def)
HistogramFillerRebinableAxis< HistogramFillerRebinable2DX, Axis::Y > HistogramFillerRebinable2D
Rebinable 2D histogram (both axes)
HistogramFillerRebinableAxis< HistogramFiller2DProfile, Axis::X > HistogramFiller2DProfileRebinable
TProfile2D filler with rebinable x-axis.
HistogramFillerRebinableAxis< HistogramFiller1D, Axis::X > HistogramFillerRebinable1D
Rebinable 1D histogram.
HistogramFiller2DGeneric< TProfile > HistogramFillerProfile
TProfile filler.
HistogramFillerRebinableAxis< HistogramFillerProfile, Axis::X > HistogramFillerProfileRebinable
TProfile filler with rebinable x-axis.
HistogramFiller2DGeneric< TH2 > HistogramFiller2D
std::string type
class name
bool kVec
add content to each bin from each element of a vector
bool kCumulative
fill bin of monitored object's value, and every bin below it
bool kRebinAxes
increase the axis range without adding new bins
bool kAddBinsDynamically
add new bins outside the existing range
bool kVecUO
add content to each bin from vector, including overflow/underflow