Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RDataFrame.hxx
Go to the documentation of this file.
1// Author: Enrico Guiraud, Danilo Piparo CERN 12/2016
2
3/*************************************************************************
4 * Copyright (C) 1995-2018, Rene Brun and Fons Rademakers. *
5 * All rights reserved. *
6 * *
7 * For the licensing terms see $ROOTSYS/LICENSE. *
8 * For the list of contributors see $ROOTSYS/README/CREDITS. *
9 *************************************************************************/
10
11/**
12 \defgroup dataframe Dataframe
13ROOT's RDataFrame allows to analyse data stored in TTrees with a high level interface.
14*/
15
16#ifndef ROOT_RDATAFRAME
17#define ROOT_RDATAFRAME
18
19#include "TROOT.h" // To allow ROOT::EnableImplicitMT without including ROOT.h
21#include "ROOT/RDF/Utils.hxx"
22#include <string_view>
23#include "RtypesCore.h"
24
25#include <initializer_list>
26#include <memory>
27#include <string>
28#include <vector>
29
30class TDirectory;
31class TTree;
32
34class RDatasetSpec;
35}
36
37namespace ROOT {
38namespace RDF {
39class RDataSource;
40}
41
43
44class RDataFrame : public ROOT::RDF::RInterface<RDFDetail::RLoopManager> {
45public:
47 RDataFrame(std::string_view treeName, std::string_view filenameglob, const ColumnNames_t &defaultColumns = {});
48 RDataFrame(std::string_view treename, const std::vector<std::string> &filenames,
49 const ColumnNames_t &defaultColumns = {});
50 RDataFrame(std::string_view treename, std::initializer_list<std::string> filenames,
51 const ColumnNames_t &defaultColumns = {}):
52 RDataFrame(treename, std::vector<std::string>(filenames), defaultColumns) {}
54 RDataFrame(TTree &tree, const ColumnNames_t &defaultColumns = {});
55 RDataFrame(ULong64_t numEntries);
56 RDataFrame(std::unique_ptr<ROOT::RDF::RDataSource>, const ColumnNames_t &defaultColumns = {});
58
59 // Rule of five
60
61 RDataFrame(const RDataFrame &) = default;
62 RDataFrame &operator=(const RDataFrame &) = default;
63 RDataFrame(RDataFrame &&) = default;
66};
67
68namespace RDF {
69namespace Experimental {
70
71////////////////////////////////////////////////////////////////////////////////////////////////
72/// \brief Factory method to create an RDataFrame from a JSON specification file.
73/// \param[in] jsonFile Path of the JSON file, which should follow the format described in
74/// https://github.com/root-project/root/issues/11624
75ROOT::RDataFrame FromSpec(const std::string &jsonFile);
76
77} // namespace Experimental
78} // namespace RDF
79
80} // ns ROOT
81
82/// Print a RDataFrame at the prompt
83namespace cling {
84std::string printValue(ROOT::RDataFrame *tdf);
85} // ns cling
86
87#endif // ROOT_RDATAFRAME
Basic types used by ROOT and required by TInterpreter.
unsigned long long ULong64_t
Portable unsigned long integer 8 bytes.
Definition RtypesCore.h:84
The dataset specification for RDataFrame.
RDataSource defines an API that RDataFrame can use to read arbitrary data formats.
The public interface to the RDataFrame federation of classes.
ROOT's RDataFrame offers a modern, high-level interface for analysis of data stored in TTree ,...
RDataFrame(std::string_view treename, std::initializer_list< std::string > filenames, const ColumnNames_t &defaultColumns={})
RDataFrame(std::string_view treeName, ::TDirectory *dirPtr, const ColumnNames_t &defaultColumns={})
RDataFrame(std::string_view treeName, std::string_view filenameglob, const ColumnNames_t &defaultColumns={})
Build the dataframe.
ROOT::RDF::ColumnNames_t ColumnNames_t
RDataFrame(RDataFrame &&)=default
RDataFrame(const RDataFrame &)=default
RDataFrame & operator=(const RDataFrame &)=default
RDataFrame & operator=(RDataFrame &&)=default
Describe directory structure in memory.
Definition TDirectory.h:45
A TTree represents a columnar dataset.
Definition TTree.h:89
ROOT::RDataFrame FromSpec(const std::string &jsonFile)
Factory method to create an RDataFrame from a JSON specification file.
std::vector< std::string > ColumnNames_t