Process collections in RDataFrame with the help of RVec.
This tutorial shows the potential of the VecOps approach for treating collections stored in datasets, a situation very common in HEP data analysis.
{
auto unifGen = [](
double) {
return gRandom->Uniform(-1.0, 1.0); };
auto vGen = [&](
int len) {
std::transform(
v.begin(),
v.end(),
v.begin(), unifGen);
};
auto d0 =
d.Define(
"len", []() {
return (
int)
gRandom->Uniform(0, 16); })
auto d1 = d0.Define("r", "sqrt(x*x + y*y)");
auto ring_h = d1.Define("rInFig", "r > .5 && r < 1 && x*y < 0")
.Define("yFig", "y[rInFig]")
.Define("xFig", "x[rInFig]")
.Histo2D({"fig", "Two quarters of a ring", 64, -1.1, 1.1, 64, -1.1, 1.1}, "xFig", "yFig");
ring_h->DrawCopy("Colz");
return 0;
}
RInterface< Proxied, DS_t > Define(std::string_view name, F expression, const ColumnNames_t &columns={})
Define a new column.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
R__EXTERN TRandom * gRandom
ROOT's RDataFrame offers a modern, high-level interface for analysis of data stored in TTree ,...
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
ROOT::VecOps::RVec< double > RVecD
- Date
- February 2018
- Author
- Danilo Piparo (CERN)
Definition in file df016_vecOps.C.