This tutorial illustrates how use the RDataFrame in combination with a RDataSource.
In this case we use a RRootDS. This data source allows to read a ROOT dataset from a RDataFrame in a different way, not based on the regular RDataFrame code. This allows to perform all sorts of consistency checks and illustrate the usage of the RDataSource in a didactic context.
void fill_tree(const char *treeName, const char *fileName)
{
auto i = 0.;
d.Define(
"b1", [&i]() {
return i++; }).Snapshot(treeName, fileName);
}
{
auto fileName = "df011_ROOTDataSources.root";
auto treeName = "myTree";
fill_tree(treeName, fileName);
auto h_s = d_s.Define("x", "1./(b1 + 1.)").Histo1D({"h_s", "h_s", 128, 0, .6}, "x");
auto h =
d.Define(
"x",
"1./(b1 + 1.)").Histo1D({
"h",
"h", 128, 0, .6},
"x");
c_s->SetLogy();
h_s->DrawClone();
return 0;
}
RDataSource defines an API that RDataFrame can use to read arbitrary data formats.
ROOT's RDataFrame offers a high level interface for analyses of data stored in TTrees,...
RDataFrame MakeRootDataFrame(std::string_view treeName, std::string_view fileNameGlob)
- Date
- September 2017
- Author
- Danilo Piparo
Definition in file df011_ROOTDataSource.C.