Hi,
I am trying out the new RDataFrame and moving some of my current analysis code to use it.
However, in trying to implement this, I ran into a copy assignment issue. I am attaching a simple example to basically recreate what I am trying to do. And I am copying the error below:
Processing simpleExample.cxx...
In file included from input_line_10:1:
/Users/Haider/ATLAS/sw/H4lCouplingWorkspaces/simpleExample.cxx:12:20: error: object of type 'ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager, void>' cannot be assigned because its copy assignment operator is implicitly deleted
augDataSet = augDataSet.Define("newCol2", "newCol*2");
^
/Users/Haider/root_v16p14/build/etc/../include/ROOT/RDFInterface.hxx:130:16: note: explicitly defaulted function was implicitly deleted here
RInterface &operator=(const RInterface &) = default;
^
/Users/Haider/root_v16p14/build/etc/../include/ROOT/RDFInterface.hxx:110:35: note: copy assignment operator of 'RInterface<ROOT::Detail::RDF::RLoopManager, void>' is implicitly deleted because field 'fProxiedPtr' has no copy assignment operator
const std::shared_ptr<Proxied> fProxiedPtr; ///< Smart pointer to the graph node encapsulated by this RInterface.
So, I was wondering what would be ideal way to accomplish something like this with the new RDataFrame philosophy? I can think of a few ways of working around it, but they all feel like hacks rather than a proper way to do. Probably missing something super basic about new data structure.
I tried to look at examples and there the dataframe is sequentially build upon each other
Thanks for the help,
Haider
simpleExample.cxx (457 Bytes)