16 using namespace ROOT::Detail::RDF;
18 RJittedFilter::RJittedFilter(RLoopManager *lm, std::string_view name)
19 : RFilterBase(lm, name, lm->GetNSlots(), RDFInternal::RBookedCustomColumns()) { }
21 void RJittedFilter::SetFilter(std::unique_ptr<RFilterBase> f)
23 fConcreteFilter = std::move(f);
26 void RJittedFilter::InitSlot(TTreeReader *r,
unsigned int slot)
28 R__ASSERT(fConcreteFilter !=
nullptr);
29 fConcreteFilter->InitSlot(r, slot);
32 bool RJittedFilter::CheckFilters(
unsigned int slot, Long64_t entry)
34 R__ASSERT(fConcreteFilter !=
nullptr);
35 return fConcreteFilter->CheckFilters(slot, entry);
38 void RJittedFilter::Report(ROOT::RDF::RCutFlowReport &cr)
const
40 R__ASSERT(fConcreteFilter !=
nullptr);
41 fConcreteFilter->Report(cr);
44 void RJittedFilter::PartialReport(ROOT::RDF::RCutFlowReport &cr)
const
46 R__ASSERT(fConcreteFilter !=
nullptr);
47 fConcreteFilter->PartialReport(cr);
50 void RJittedFilter::FillReport(ROOT::RDF::RCutFlowReport &cr)
const
52 R__ASSERT(fConcreteFilter !=
nullptr);
53 fConcreteFilter->FillReport(cr);
56 void RJittedFilter::IncrChildrenCount()
58 R__ASSERT(fConcreteFilter !=
nullptr);
59 fConcreteFilter->IncrChildrenCount();
62 void RJittedFilter::StopProcessing()
64 R__ASSERT(fConcreteFilter !=
nullptr);
65 fConcreteFilter->StopProcessing();
68 void RJittedFilter::ResetChildrenCount()
70 R__ASSERT(fConcreteFilter !=
nullptr);
71 fConcreteFilter->ResetChildrenCount();
74 void RJittedFilter::TriggerChildrenCount()
76 R__ASSERT(fConcreteFilter !=
nullptr);
77 fConcreteFilter->TriggerChildrenCount();
80 void RJittedFilter::ResetReportCount()
82 R__ASSERT(fConcreteFilter !=
nullptr);
83 fConcreteFilter->ResetReportCount();
86 void RJittedFilter::ClearValueReaders(
unsigned int slot)
88 R__ASSERT(fConcreteFilter !=
nullptr);
89 fConcreteFilter->ClearValueReaders(slot);
92 void RJittedFilter::ClearTask(
unsigned int slot)
94 R__ASSERT(fConcreteFilter !=
nullptr);
95 fConcreteFilter->ClearTask(slot);
98 void RJittedFilter::InitNode()
100 R__ASSERT(fConcreteFilter !=
nullptr);
101 fConcreteFilter->InitNode();
104 void RJittedFilter::AddFilterName(std::vector<std::string> &filters)
106 if (fConcreteFilter ==
nullptr) {
108 GetLoopManagerUnchecked()->Jit();
110 fConcreteFilter->AddFilterName(filters);
113 std::shared_ptr<RDFGraphDrawing::GraphNode> RJittedFilter::GetGraph()
115 if (fConcreteFilter !=
nullptr) {
117 return fConcreteFilter->GetGraph();
119 throw std::runtime_error(
"The Jitting should have been invoked before this method.");