📚 go-hep - Awesome Go Library for Science and Data Analysis
A set of libraries and tools for performing High Energy Physics analyses with ease.
Detailed Description of go-hep
hep
hep
is a set of libraries and tools to perform High Energy Physics analyses with ease and Go
See go-hep.org for more informations.
Forum
Drop an email at ~sbinet/[email protected] or visit the web interface lists.sr.ht/~sbinet/go-hep to discuss about Go-HEP
or ask for help.
License
hep
is released under the BSD-3
license.
Documentation
Documentation for hep
is served by GoDoc.
Contributing
Guidelines for contributing to go-hep are available here: go-hep.org/contributing
Contributors
This project exists thanks to all the people who contribute.
Motivations
Writing analyses in HEP involves many steps and one needs a few tools to successfully carry out such an endeavour. But - at minima - one needs to be able to read (and possibly write) ROOT files to be able to interoperate with the rest of the HEP community or to insert one's work into an already existing analysis pipeline.
Go-HEP provides this necessary interoperability layer, in the Go programming language. This allows physicists to leverage the great concurrency primitives of Go, together with the surrounding tooling and software engineering ecosystem of Go, to implement physics analyses.
Content
Go-HEP currently sports the following packages:
- go-hep.org/x/hep/brio: a toolkit to generate serialization code
- go-hep.org/x/hep/fads: a fast detector simulation toolkit
- go-hep.org/x/hep/fastjet: a jet clustering algorithms package (WIP)
- go-hep.org/x/hep/fit: a fitting function toolkit (WIP)
- go-hep.org/x/hep/fmom: a 4-vectors library
- go-hep.org/x/hep/fwk: a concurrency-enabled framework
- go-hep.org/x/hep/groot: a pure Go package for ROOT I/O (WIP)
- go-hep.org/x/hep/hbook: histograms and n-tuples (WIP)
- go-hep.org/x/hep/hplot: interactive plotting (WIP)
- go-hep.org/x/hep/hepmc:
HepMC
in pure Go (EDM + I/O) - go-hep.org/x/hep/hepevt:
HEPEVT
bindings - go-hep.org/x/hep/heppdt:
HEP
particle data table - go-hep.org/x/hep/lcio: read/write support for
LCIO
event data model - go-hep.org/x/hep/lhef: Les Houches Event File format
- go-hep.org/x/hep/rio:
go-hep
record oriented I/O - go-hep.org/x/hep/sio: basic, low-level, serial I/O used by
LCIO
- go-hep.org/x/hep/slha:
SUSY
Les Houches Accord I/O - go-hep.org/x/hep/xrootd: XRootD client in pure Go
Installation
Go-HEP packages are installable via the go get
command:
$ go get go-hep.org/x/hep/fads
Just select the package you are interested in and go get
will take care of fetching, building and installing it, as well as its dependencies, recursively.