Go HEP release 0.5

Release v0.5 has seen some interesting work.



  • Go-HEP has migrated all its Gonum imports to use "gonum.org/v1/gonum/{mat,stat,...}", instead of the old "github.com/gonum/{mat64,stat,...}"
  • Go-HEP has also migrated all its use of gonum/plot from "github.com/gonum/plot/..." to the new "gonum.org/v1/plot/..."
  • Go-1.6’s support has been dropped from the Travis-CI matrix
  • Go-1.9’s support has been added to the Travis-CI matrix


The rootio package has seen most of the work: performance improvements for reading ROOT files, a new root2npy command and the beginning of the work to provide write support.

The performances of rootio have been assessed for the ACAT conference. The talk has all the details and can be read here. In a nutshell, rootio is now “just” 2 times slower than C++ ROOT to read files, and uses less than 10 times the VMem of C++ ROOT. More work to match the read speed of C++ ROOT is of course needed but we think we know how to recoup most of performance delta.

cmd/root2npy is a simple command to quickly convert a ROOT file containing a TTree into a NumPy array data file format.

cmd/root-srv has been updated to support https (thanks Michaƫl Ughetto).

cmd/root2yoda is a simple command to quickly convert a ROOT file containing histograms and profiles into a YODA file.

hbook & csvutil

csvutil/csvdriver has been improved to correctly handle CSV headers. You need to tell the driver that the CSV file contains a header describing the columns of the CSV file, but once that’s done, you can use the correct columns’ names in your SQL queries.

hbook/ntup/ntcsv is a new package that leverages the new feature of csvdriver to easily create hbook/ntup.Ntuple values from a CSV file, with the correct columns’ names.


Initial support for automatically computing the Hessian matrix has been added. If the user does not provide a Hess function, Gonum’s diff/fd.Hessian will be used


More of the GSoC work for the faster jet clustering has been integrated. Thanks Bastian Wieck.


With release v0.5, Go-HEP gained its first external user: eicio, “an exploratory project testing ideas about forward-looking IO solutions to suit the needs of the Electron Ion Collider (EIC) community." Welcome eicio!