11#ifndef ROOT_GRAPHUTILS
12#define ROOT_GRAPHUTILS
20#include <unordered_map>
38 const ROOT::Detail::RDF::RDefineBase *columnPtr,
39 std::unordered_map<
void *, std::shared_ptr<GraphNode>> &visitedMap);
41std::shared_ptr<GraphNode>
CreateFilterNode(
const ROOT::Detail::RDF::RFilterBase *filterPtr,
42 std::unordered_map<
void *, std::shared_ptr<GraphNode>> &visitedMap);
44std::shared_ptr<GraphNode>
CreateRangeNode(
const ROOT::Detail::RDF::RRangeBase *rangePtr,
45 std::unordered_map<
void *, std::shared_ptr<GraphNode>> &visitedMap);
62 std::unordered_map<void *, std::shared_ptr<GraphNode>>
fVisitedMap;
83 template <
typename Proxied>
The head node of a RDF computation graph.
std::string RepresentGraph(ROOT::RDF::RInterface< Proxied > &rInterface)
Starting from a Filter or Range, prints the branch it belongs to.
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(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.
A binder for user-defined columns, variations and aliases.
RDFDetail::RLoopManager * GetLoopManager() const
The public interface to the RDataFrame federation of classes.
const std::shared_ptr< Proxied > & GetProxiedPtr() const
Smart pointer for the return type of actions.
RDFDetail::RLoopManager * fLoopManager
Non-owning pointer to the RLoopManager at the root of this computation graph.
std::shared_ptr< RDFInternal::RActionBase > fActionPtr
Owning pointer to the action that will produce this result.
ROOT's RDataFrame offers a modern, high-level interface for analysis of data stored in TTree ,...
Special implementation of ROOT::RRangeCast for TCollection, including a check that the cast target ty...
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)