18void fill_tree(
const char *treeName,
const char *fileName)
21 d.Define(
"px", []() {
return gRandom->Gaus(); })
23 .
Define(
"pz", [](
double px,
double py) {
return sqrt(px * px +
py *
py); }, {
"px",
"py"})
30 auto fileName =
"df003_profiles.root";
31 auto treeName =
"myTree";
32 fill_tree(treeName, fileName);
38 auto hprof1d =
d.Profile1D({
"hprof1d",
"Profile of py versus px", 64, -4, 4},
"px",
"py");
40 d.Profile2D({
"hprof2d",
"Profile of pz versus px and py", 40, -4, 4, 40, -4, 4, 0, 20},
"px",
"py",
"pz");
43 auto c1 =
new TCanvas(
"c1",
"Profile histogram example", 200, 10, 700, 500);
45 auto c2 =
new TCanvas(
"c2",
"Profile2D histogram example", 200, 10, 700, 500);
46 hprof2d->DrawClone(
"BOX");
RInterface< Proxied, DS_t > Define(std::string_view name, F expression, const ColumnNames_t &columns={})
Define a new column.
R__EXTERN TRandom * gRandom
ROOT's RDataFrame offers a modern, high-level interface for analysis of data stored in TTree ,...
VecExpr< UnaryOp< Sqrt< T >, VecExpr< A, T, D >, T >, T, D > sqrt(const VecExpr< A, T, D > &rhs)
RResultPtr< RInterface< RLoopManager > > Snapshot(std::string_view treename, std::string_view filename, const ColumnNames_t &columnList, const RSnapshotOptions &options=RSnapshotOptions())
Save selected columns to disk, in a new TTree treename in file filename.