Go HEP release 0.1

It’s with great pleasure that we can announce that the Go-HEP release v0.1 is out:

What’s new

What’s new? Well, lots of things since it is our very first release.

But since the merge of the github.com/go-hep/xyz repositories into the mono-repository go-hep/hep and the introduction of the go-hep.org/x/hep/... vanity imports, quite a few things.

First: as we have tagged a release, Go-HEP is now citable. Thanks to Zenodo, we have a DOI:


Improved ROOT support

Support of ROOT files and reading their content dramatically improved:

  • read TH1x histograms
  • read TH2x histograms
  • read TGraph, TGraphErrors and TGraphAsymmErrors
  • read (flat) TTrees
  • scan/iterate/select content of TTrees
  • improved the root-ls command display
  • introduction of root-srv, a command to browse ROOT files’ content. One can also plot TH1x, TH2x, TGraph{,{,Asymm}Errors} and (flat) TTrees.
  • root-srv is also served on Google AppEngine: rootio-inspector.appspot.com. This allows to inspect ROOT files without having ROOT nor Go-HEP installed.


Improved fads & hbook

go-hep/hbook gained inter-operability with YODA (Yet more Objects for Data Analysis). hbook can now save hbook.H1D, hbook.H2D, … into YODA ASCII files and load hbook.H1D, … from YODA ASCII files.

Two new commands, yoda2rio and rio2yoda, were also introduced to allow converting YODA files to rio ones, and back.

This allowed to create a new command: fads-rivet-mc-generic. This command reproduces the default MonteCarlo analysis from Rivet: MC_GENERIC.cc. It was nice to see the results were the same :) (except that fads was twice faster.)


As always, the usual string of fixes, documentation improvements and other things were applied to the repository. Noteworthy, the sio package has seen some attention, preparing for a pure-Go lcio package for inter-operability with the LCIO C++ I/O library for the future linear collider.

Next steps

The plan is to provide support for reading of TTrees containing user classes. This implies being able to interact with the ROOT streamers that are stored in the TFiles. That would be a solid v0.2 release.

Release v0.3 (or v0.4) should also get the first iteration(s) on getting write support for ROOT files. On the non-ROOT front, future releases could perhaps integrate the rio storage with hbook/ntup.Ntuple so one could get a complete, pure-Go stack with data persistency and an analysis workstation (pawgo and its web-based equivalent.)

In the meantime, please give v0.1 a spin, file issues, send patches (via pull requests) and/or discuss anything Go-HEP related on the go-hep mailing list.