Hi Marcel,
well done switching ROOT versions, v6.12 is a lot of time in RDF years
If you can, you should use v6.16 (available on lxplus7 as /cvmfs/sft.cern.ch/lcg/views/LCG_95/x86_64-centos7-gcc8-dbg/setup.sh) as there is also an important gap in performance, features and bugfixes in RDF between v6.14 and v6.16.
Now, about your specific issue: indeed it seems RDF (both v6.14 and v6.16) is not able to operate on your value branch, which contains a TH2. The technical reason is that we added some extra features since v6.12 which do not support TBranchObjects.
I opened a jira ticket, you can keep track of the progress on the issue there (and you should ping us there if you see no progress in the next 3-4 weeks, and this is a blocker for you).
Hi,
it seems that the problems with TBranchObjectsgo deeper than RDF. Here’s a PR that seems to fix the RDF-related issues, but I can’t give a time estimate for a fix to the deeper problems.
Is it an option to move away from TBranchObjects and use e.g. TBranchElements instead?
For the urgency of this in general: We don’t really use RDataFrame currently, this is just for my personal experiments and I thought about using it in future versions of our tools. So not urgent, but if we can’t handle TH1/TH2 objects and do non-trivial operations on them (fitting?), we can’t use it for what I planned.
For TBranchElements: I don’t know much about the details here. I wrote the file using the most naive code I could come up with. If you can suggest a better way to write a TTree of histograms, I’d be interested.
The code I used to write the tree is [1], I do the round-trip via JSON and SQLite mostly because I had that format anyways and could not find an easy way to write a TTree of objects in Python…
Hi,
for some reason passing splitlevel 0 produces a TBranchObject instead of a TBranchElement – I’m not sure if it’s a bug or a feature, I’ll investigate:
I just re-generated the root file without that last 0 (I think I stole that from the CMSSW code that originally wrote the data), and things look a lot better. Now using 6.16/00, I get the same output as with 6.12 before.
Now I need to actually make some plots to see if things work correctly…
For reading the SQLite data directly: That was the original plan, but for the beginning, the ROOT file is a lot smaller and is also readable with older ROOT versions, while FromJSON is another rather recent feature. I might give that a try at some point.