|
template<typename F > |
enable_ifn_string_t< F, Node * > | Define (const std::string &name, F f, const ColumnNames_t &columns={}) |
| Define a new variable on this node. More...
|
|
Node * | Define (const std::string &name, const std::string &expression) |
| Define a new variable on this node. More...
|
|
Node * | Define (const std::string &name, const std::string &expression, const ColumnNames_t &columns) |
| Define a new variable on this node. More...
|
|
template<std::size_t N, typename F , typename Ret_t = typename ROOT::TTraits::CallableTraits<F>::ret_type> |
std::enable_if_t< N==std::tuple_size< Ret_t >::value, Node > * | Define (const std::array< std::string, N > &names, F f, const ColumnNames_t &columns) |
| Define several new variables on this node in a single statement. More...
|
|
template<typename F > |
std::enable_if_t< std::is_convertible< typename ROOT::TTraits::CallableTraits< F >::ret_type, std::tuple< bool, float > >::value, Node * > | Filter (F f, const ColumnNames_t &columns={}, const std::string &name="", const std::string &cutflowName="", WeightStrategy strategy=WeightStrategy::Default) |
| Create a filter on this node. More...
|
|
template<typename F > |
std::enable_if_t< std::is_convertible< typename ROOT::TTraits::CallableTraits< F >::ret_type, bool >::value, Node * > | Filter (F f, const ColumnNames_t &columns={}, const std::string &name="", const std::string &cutflowName="", const std::string &weight="", WeightStrategy strategy=WeightStrategy::Default) |
| Create a filter on this node. More...
|
|
Node * | Filter (const std::string &expression, const std::string &name="", const std::string &cutflowName="", const std::string &weight="", WeightStrategy strategy=WeightStrategy::Default) |
| Create a filter on this node. More...
|
|
template<typename F , typename W > |
std::enable_if_t<!std::is_convertible< F, std::string >::value &&!std::is_convertible< W, std::string >::value, Node * > | Filter (F f, const ColumnNames_t &columns, const std::string &name, const std::string &cutflowName, W w, const ColumnNames_t &weightColumns={}, WeightStrategy strategy=WeightStrategy::Default) |
| Create a filter on this node. More...
|
|
template<typename W > |
enable_ifn_string_t< W, Node * > | Filter (const std::string &expression, const std::string &name, const std::string &cutflowName, W w, const ColumnNames_t &weightColumns={}, WeightStrategy strategy=WeightStrategy::Default) |
| Create a filter on this node. More...
|
|
auto | children () |
| Allow access to iterate over the child nodes. More...
|
|
auto | children () const |
| Allow (const) access to iterate over the child nodes. More...
|
|
Detail & | detail () |
| Get the node details. More...
|
|
const Detail & | detail () const |
| (Const) get the node details More...
|
|
Node * | parent () |
| Get the parent of this node. More...
|
|
const Node * | parent () const |
| (const) get the parent of this node More...
|
|
bool | isRoot () const |
| Is the node the root? More...
|
|
void | run (ULong64_t printEvery) |
| Trigger the run. More...
|
|
void | run (ULong64_t printEvery, ULong64_t total) |
| Trigger the run. More...
|
|
template<typename Monitor > |
void | run (Monitor monitor) |
| Trigger the run. More...
|
|
template<typename F > |
enable_ifn_string_t< F, NodeBase * > | Define (const std::string &name, F f, const ColumnNames_t &columns={}) |
| Define a new variable on this node. More...
|
|
NodeBase * | Define (const std::string &name, const std::string &expression) |
| Define a new variable on this node. More...
|
|
NodeBase * | Define (const std::string &name, const std::string &expression, const ColumnNames_t &columns) |
| Define a new variable on this node. More...
|
|
template<std::size_t N, typename F , typename Ret_t = typename ROOT::TTraits::CallableTraits<F>::ret_type> |
std::enable_if_t< N==std::tuple_size< Ret_t >::value, NodeBase * > | Define (const std::array< std::string, N > &names, F f, const ColumnNames_t &columns) |
| Define several new variables on this node in a single statement. More...
|
|
const std::string & | getWeight () const |
| Get the name of the weight branch. More...
|
|
template<typename T > |
SysResultPtr< T > | Fill (const T &model, const ColumnNames_t &columns, const std::string &weight="", WeightStrategy strategy=WeightStrategy::Default) |
| Fill an object on each event. More...
|
|
template<typename AccFun , typename MergeFun , typename ArgTypes = typename ROOT::TTraits::CallableTraits<AccFun>::arg_types, typename U = ROOT::TTraits::TakeFirstParameter_t<ArgTypes>> |
SysResultPtr< U > | Aggregate (AccFun aggregator, MergeFun merger, const std::string &columnName, const U &aggIdentity) |
| Execute a user-defined accumulation function. More...
|
|
template<typename AccFun , typename MergeFun , typename ArgTypes = typename ROOT::TTraits::CallableTraits<AccFun>::arg_types, typename U = ROOT::TTraits::TakeFirstParameter_t<ArgTypes>> |
SysResultPtr< U > | Aggregate (AccFun aggregator, MergeFun merger, const std::string &columnName) |
| Execute a user-defined accumulation function. More...
|
|
SysResultPtr< ULong64_t > | Count () |
| Count the number of entries processed by this node. More...
|
|
template<typename... TrArgs, typename T , typename... Args> |
std::map< std::string, T > | Act (std::function< T(RNode &, TrArgs...)> f, const ColumnNames_t &columns, Args &&...args) |
| Transmit a systematically varied action to the underlying ROOT::RNodes. More...
|
|
template<typename F , typename... Args, typename T = typename ROOT::TTraits::CallableTraits<F>::ret_type> |
std::enable_if_t<!is_std_function< F >::value, std::map< std::string, T > > | Act (F &&f, const ColumnNames_t &columns, Args &&...args) |
| Transmit a systematically varied action to the underlying ROOT::RNodes. More...
|
|
template<typename T , typename... TrArgs, typename... Args> |
std::map< std::string, T > | Act (T(RNode::*f)(TrArgs...), const ColumnNames_t &columns, Args &&...args) |
| Transmit a systematically varied action to the underlying ROOT::RNodes. More...
|
|
template<typename... TrArgs, typename T , typename... Args, typename U = typename T::Value_t> |
SysResultPtr< U > | ActResult (std::function< T(RNode &, TrArgs...)> f, const ColumnNames_t &columns, Args &&...args) |
| Specialised version of Node::Act for functions returning a ROOT::RDF::RResultPtr. More...
|
|
template<typename F , typename... Args, typename T = typename ROOT::TTraits::CallableTraits<F>::ret_type, typename U = typename T::Value_t> |
std::enable_if_t<!is_std_function< F >::value, SysResultPtr< U > > | ActResult (F &&f, const ColumnNames_t &columns, Args &&...args) |
| Specialised version of Node::Act for functions returning a ROOT::RDF::RResultPtr. More...
|
|
template<typename T , typename... TrArgs, typename... Args, typename U = typename T::Value_t> |
SysResultPtr< U > | ActResult (T(RNode::*f)(TrArgs...), const ColumnNames_t &columns, Args &&...args) |
| Specialised version of Node::Act for functions returning a ROOT::RDF::RResultPtr. More...
|
|
const std::string & | name () const |
| Get the name. More...
|
|
const std::string & | cutflowName () const |
| Get the name in a cutflow. More...
|
|
bool | isAnonymous () const |
| Is this anonymous? More...
|
|
bool | isMC () const |
| Was 'MC' mode activated? More...
|
|
const std::map< std::string, RNode > & | rnodes () const |
| Get the RNode objects. More...
|
|
std::map< std::string, RNode > & | rnodes () |
| Get the RNode objects. More...
|
|
const IBranchNamer & | namer () const |
| The namer. More...
|
|
auto | objects () |
| Iterate over the objects defined on this. More...
|
|
auto | objects () const |
| (Const) iterate over all the objects defined on this More...
|
|
|
template<std::size_t I, std::size_t N, typename... Elements> |
std::enable_if_t< I!=0, void > | unwindDefine (const std::array< std::string, N > &names, const std::string &fullName, const std::tuple< Elements... > *) |
| Base case for unwinding multiple define calls. More...
|
|
template<std::size_t I, std::size_t N, typename... Elements> |
std::enable_if_t< I==0, void > | unwindDefine (const std::array< std::string, N > &names, const std::string &fullName, const std::tuple< Elements... > *) |
| Unwind multiple define calls. More...
|
|
template<typename F > |
enable_ifn_string_t< F, std::map< std::string, RNode > > | makeChildRNodes (F f, const ColumnNames_t &columns={}, const std::string &cutflowName="") |
| Create child RNodes to be used for a filter from this node. More...
|
|
std::map< std::string, RNode > | makeChildRNodes (const std::string &expression, const std::string &cutflowName="") |
| Create child RNodes to be used for a filter from this node. More...
|
|
std::map< std::string, RNode > | makeChildRNodes (const std::string &expression, const ColumnNames_t &columns, const std::string &cutflowName="") |
| Create child RNodes to be used for a filter from this node. More...
|
|
| NodeBase (const RNode &rnode, std::unique_ptr< IBranchNamer > &&namer, bool isMC, const std::string &name="ROOT", const std::string &cutflowName="Number of events", const std::string &weight="", WeightStrategy strategy=WeightStrategy::Default) |
| Create the root node of the tree. More...
|
|
template<typename W > |
| NodeBase (const RNode &rnode, std::unique_ptr< IBranchNamer > &&namer, bool isMC, const std::string &name, const std::string &cutflowName, W w, const ColumnNames_t &columns, WeightStrategy strategy=WeightStrategy::Default) |
| Create the root node of the tree. More...
|
|
| NodeBase (NodeBase &parent, std::map< std::string, RNode > &&rnodes, const std::string &name, const std::string &cutflowName, const std::string &weight, WeightStrategy strategy=WeightStrategy::Default) |
| Create a child node. More...
|
|
template<typename W > |
| NodeBase (NodeBase &parent, std::map< std::string, RNode > &&rnodes, const std::string &name, const std::string &cutflowName, W w, const ColumnNames_t &columns, WeightStrategy strategy=WeightStrategy::Default) |
| Create a child node. More...
|
|
template<typename F > |
enable_ifn_string_t< F, std::string > | setWeight (F f, const ColumnNames_t &columns, NodeBase *parent, WeightStrategy strategy) |
| Set the weight on this node. More...
|
|
std::string | setWeight (const std::string &expression, NodeBase *parent, WeightStrategy strategy) |
| Set the weight on this node. More...
|
|
std::string | nameWeight () |
| Internal function to name the weight branch. More...
|
|
std::map< std::string, RNode > | m_rnodes |
| The RNode objects, keyed by systematic. More...
|
|
std::unique_ptr< IBranchNamer > | m_namer |
| The branch namer. More...
|
|
NamerInitialiser | m_namerInit |
| Helper struct to force early initialisation of the namer. More...
|
|
bool | m_isMC |
| Whether or not 'MC' mode was activated. More...
|
|
std::string | m_name |
| The Node's name. More...
|
|
std::string | m_cutflowName |
| The name in the cutflow. More...
|
|
RNode * | m_rootRNode = nullptr |
| Keep a pointer to the ROOT RNode of the whole chain. More...
|
|
std::string | m_weight |
| The weight on this node. More...
|
|
std::vector< SysResultPtr< TObject > > | m_objects |
| Any TObject pointers declared on this. More...
|
|
template<typename Detail>
class RDFAnalysis::Node< Detail >
Class to represent a single step in the analysis process.
- Template Parameters
-
Detail | Class to contain any extra information attached to the node. |
For the purposes of this package an analysis is modeled as a tree structure, each selection forming a new node in the tree. Multiple selections can be defined from a single node, forming a branch in the tree at that point. Each node can have attached TObjects (created using the Fill function and accessed using the NodeBase::objects function) as well as additional objects that can be accessed using the details function.
The tree structure can be navigated through using the parent and children functions.