ROOT7: an opportunity to simplify the file format?

Like in this post:

I am wondering whether we couldn’t take the opportunity of ROOT7 to change (a bit? radically?) the on-disk file format, especially the streamers, trees, branches and baskets.

This was also briefly mentioned in the coffee break(s) of the Annecy HEP Software Foundation workshop.

Having reimplemented a fair amount of the ROOT I/O layer in Go, I have a somewhat intimate knowledge (but still lacking!) of what goes under the wood when one does, in PyROOT:

>>> import ROOT
>>> f = ROOT.TFile.Open("foo.root")
>>> t = f.Get("tree")
>>> t.GetEntry(42)
>>> print(t.MyBranchData.SomeMethod())

During the HSF Analysis Ecosystem workshop (at Amsterdam), we also got an overview of what other people outside of HEP are doing wrt of files and storage:

Couldn’t we just adopt/adapt one of those? or, at the very least, simplify the on-disk data structures, their parsing and orchestration?

Hi Sebastien,

Partially, yes. We are at the discussion stage; we will ask for feedback on ideas and plans once we have them :slight_smile:

If there is something specific that’s on your mind don’t hesitate to point that out!

(One of the strong wishes from the experiments is that we make the file format forward compatible - i.e. basically not break it. Within that limitation we still have some freedom for opt-in changes.)

Axel.

(One of the strong wishes from the experiments is that we make the file format forward compatible - i.e. basically not break it. Within that limitation we still have some freedom for opt-in changes.)

well, that doesn’t leave too much wiggle room… :confused: