Home | News | Documentation | Download

ROOT files writer with a non-C++ related producer


#1

hi there,

I am starting to add write features to my Go-based ROOT interoperability package.

Eventually, I may/might be completely compatible with all the ROOT features but, at the moment I am far, far away from it.
What would you advise so that files that are produced with go-hep/rootio are still recognized as ROOT files but could still be also recognized as being originated from go-hep/rootio ?

Fundamentally, a ROOT file starts with "root" and a version number:
https://github.com/root-project/root/blob/master/io/io/src/TFile.cxx#L54

Should I tinker a bit with those? where could I put a "produced with go-hep/rootio version 0.5" payload ?


#2

Should I tinker a bit with those?

I would not as, hopefully :), the files are ‘just’ a subset of what can be produced with the C++ library.

Also due to the fast merging of TTrees, you can (will) end up with a files produced by ROOT which contains baskets created by go-hep/rootio. And marking done at the TKey/TBasket level would also disappear during a fast cloning …

One of the thing that are preserved during a fast cloning is the list of StreamerInfo, however a marker there would end up ‘only’ telling us that the file contains ‘some’ baskets written with go-hep/rootio …

Cheers,
Philippe.