14#ifndef ROOT_RNTupleDrawVisitor
15#define ROOT_RNTupleDrawVisitor
42 template <
typename ViewT>
45 fHist = std::make_unique<TH1F>(
"hdraw",
fTitle.c_str(), 100, 0, 0);
46 fHist->SetDirectory(
nullptr);
56 for (
auto i : view.GetFieldRange()) {
85 std::map<std::string, std::uint64_t> values;
90 for (
auto i : view.GetFieldRange()) {
91 std::string
v = view(i);
93 auto iter = values.find(
v);
94 if (iter != values.end())
96 else if (values.size() >= 50)
103 fHist = std::make_unique<TH1F>(
"h",
fTitle.c_str(), 3, 0, 3);
104 fHist->SetDirectory(
nullptr);
108 for (
auto &
entry : values)
110 fHist->LabelsDeflate();
138 if (
const auto f32 =
field.As32Bit()) {
140 }
else if (
const auto f64 =
field.As64Bit()) {
Abstract base class for classes implementing the visitor design pattern.
RNTupleDrawVisitor(std::shared_ptr< ROOT::RNTupleReader > ntplReader, const std::string &title)
void VisitDoubleField(const ROOT::RField< double > &field) final
void VisitStringField(const ROOT::RField< std::string > &field) final
void VisitUInt32Field(const ROOT::RIntegralField< std::uint32_t > &field) final
void VisitField(const ROOT::RFieldBase &) final
void VisitInt64Field(const ROOT::RIntegralField< std::int64_t > &field) final
void FillHistogramImpl(ViewT &view)
void VisitInt8Field(const ROOT::RIntegralField< std::int8_t > &field) final
void FillStringHistogram(const ROOT::RField< std::string > &field)
void VisitUInt8Field(const ROOT::RIntegralField< std::uint8_t > &field) final
void VisitInt32Field(const ROOT::RIntegralField< std::int32_t > &field) final
void VisitInt16Field(const ROOT::RIntegralField< std::int16_t > &field) final
void VisitCharField(const ROOT::RField< char > &field) final
std::unique_ptr< TH1 > fHist
void VisitUInt64Field(const ROOT::RIntegralField< std::uint64_t > &field) final
void VisitUInt16Field(const ROOT::RIntegralField< std::uint16_t > &field) final
void VisitBoolField(const ROOT::RField< bool > &field) final
void VisitCardinalityField(const ROOT::RCardinalityField &field) final
void VisitFloatField(const ROOT::RField< float > &field) final
std::shared_ptr< ROOT::RNTupleReader > fNtplReader
void FillHistogram(const ROOT::RIntegralField< T > &field)
void TestHistBuffer()
Test collected entries if it looks like integer values and one can use better binning.
void FillHistogram(const ROOT::RField< T > &field)
An artificial field that transforms an RNTuple column that contains the offset of collections into co...
A field translates read and write calls from/to underlying columns to/from tree values.
Classes with dictionaries that can be inspected by TClass.
TH1 is the base class of all histogram classes in ROOT.
Namespace for new ROOT classes and functions.