Basic SaveGraph usage.
This tutorial shows how to use the SaveGraph action. SaveGraph inspects the sequence of RDataFrame actions.
import ROOT
rd2 = rd1.Define("Root_def1", "1") \
.Filter("Root_def1 < 2", "Main_Filter") \
.Define("Root_def2", "1")
branch1 = rd2.Define("Branch_1_def", "1")
branch2 = rd2.Define("Branch_2_def", "1")
branch1_1 = branch1.Filter("Branch_1_def < 2", "Filter_1") \
.Define("Branch_1_1_def", "1") \
.Filter("1 == Branch_1_1_def % 2", "Filter_1_1") \
.Mean("Branch_1_1_def");
branch1_2 = branch1.Define("Branch_1_2_def", "1") \
.Filter("Branch_1_2_def < 2", "Filter_1_2") \
.Count()
branch2_1 = branch2.Filter("Branch_2_def < 2", "Filter_2") \
.Define("Branch_2_1_def", "1") \
.Define("Branch_2_2_def", "1") \
.Filter("1 == Branch_2_1_def % 2", "Filter_2_1") \
.Max("Branch_2_1_def")
branch2_2 = branch2.Count()
ROOT's RDataFrame offers a modern, high-level interface for analysis of data stored in TTree ,...
std::string SaveGraph(NodeType node)
Create a graphviz representation of the dataframe computation graph, return it as a string.
digraph {
8 [label="Mean", style="filled", fillcolor="#e47c7e", shape="box"];
6 [label="Filter_1_1", style="filled", fillcolor="#0f9d58", shape="hexagon"];
7 [label="Define\nBranch_1_1_def", style="filled", fillcolor="#4285f4", shape="ellipse"];
3 [label="Filter_1", style="filled", fillcolor="#0f9d58", shape="hexagon"];
4 [label="Define\nBranch_1_def", style="filled", fillcolor="#4285f4", shape="ellipse"];
5 [label="Define\nRoot_def2", style="filled", fillcolor="#4285f4", shape="ellipse"];
1 [label="Main_Filter", style="filled", fillcolor="#0f9d58", shape="hexagon"];
2 [label="Define\nRoot_def1", style="filled", fillcolor="#4285f4", shape="ellipse"];
0 [label="Empty source\nEntries: 2", style="filled", fillcolor="#f4b400", shape="ellipse"];
6 -> 8;
7 -> 6;
3 -> 7;
4 -> 3;
5 -> 4;
1 -> 5;
2 -> 1;
0 -> 2;
}
- Date
- January 2022
- Author
- Ivan Kabadzhov (CERN)
Definition in file df034_SaveGraph.py.