11#ifndef ROOT_GRAPHUTILS
12#define ROOT_GRAPHUTILS
20#include <unordered_map>
35namespace GraphDrawing {
39 std::unordered_map<
void *, std::shared_ptr<GraphNode>> &
visitedMap);
42 std::unordered_map<
void *, std::shared_ptr<GraphNode>> &
visitedMap);
45 std::unordered_map<
void *, std::shared_ptr<GraphNode>> &
visitedMap);
62 std::unordered_map<void *, std::shared_ptr<GraphNode>>
fVisitedMap;
83 template <
typename Proxied,
typename DataSource>
The head node of a RDF computation graph.
std::string FromGraphLeafToDot(const GraphNode &leaf) const
Starting from any leaf (Action, Filter, Range) it draws the dot representation of the branch.
std::string RepresentGraph(ROOT::RDataFrame &rDataFrame)
Starting from the root node, prints the entire graph.
std::string RepresentGraph(ROOT::RDF::RInterface< Proxied, DataSource > &rInterface)
Starting from a Filter or Range, prints the branch it belongs to.
std::string RepresentGraph(const ROOT::RDF::RResultPtr< T > &resultPtr)
Starting from an action, prints the branch it belongs to.
std::string FromGraphActionsToDot(std::vector< std::shared_ptr< GraphNode > > leaves) const
Starting by an array of leaves, it draws the entire graph.
std::unordered_map< void *, std::shared_ptr< GraphNode > > fVisitedMap
Map to keep track of visited nodes when constructing the computation graph (SaveGraph)
Class used to create the operation graph to be printed in the dot representation.
The public interface to the RDataFrame federation of classes.
Smart pointer for the return type of actions.
ROOT's RDataFrame offers a modern, high-level interface for analysis of data stored in TTree ,...
std::shared_ptr< GraphNode > CreateFilterNode(const ROOT::Detail::RDF::RFilterBase *filterPtr, std::unordered_map< void *, std::shared_ptr< GraphNode > > &visitedMap)
std::shared_ptr< GraphNode > CreateRangeNode(const ROOT::Detail::RDF::RRangeBase *rangePtr, std::unordered_map< void *, std::shared_ptr< GraphNode > > &visitedMap)
std::shared_ptr< GraphNode > CreateDefineNode(const std::string &columnName, const ROOT::Detail::RDF::RDefineBase *columnPtr, std::unordered_map< void *, std::shared_ptr< GraphNode > > &visitedMap)
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...