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,
simpleExample.cxx (457 Bytes)