Hello,
I am trying to define a few columns that can be parametrized. I want to use a for loop so I don’t have to type out each column manually. However I get the following compilation error.
Processing looptest.C+...
Info in <TUnixSystem::ACLiC>: creating shared library /home/kkrizka/PlotHelpers/sysvalid/./looptest_C.so
In file included from input_line_12:9:
././looptest.C:36:11: error: object of type 'ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager, void>' cannot be assigned because its copy assignment operator is implicitly deleted
pidf=pidf.Define(ss_name.str(), ss_func.str());
^
/home/kkrizka/Sources/root/build-v6-14-08/include/ROOT/RDFInterface.hxx:130:16: note: explicitly defaulted function was implicitly deleted here
RInterface &operator=(const RInterface &) = default;
^
/home/kkrizka/Sources/root/build-v6-14-08/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.
^
Error in <ACLiC>: Dictionary generation failed!
I’ve attached a simple example that demonstrates this. looptest.C (1.2 KB)
The actual use case is to define several weights for systematics. They are stored in a std::vector and and I want to loop over them to add a few normalization factors.
Is reusing a dataframe variable possible? Any suggestions for how to handle this alternatively?
ROOT Version: 6.14/08
Platform: Linux
Compiler: GCC 8.2.0