Hep Versions Save

hep is the mono repository holding all of go-hep.org/x/hep packages and tools

v0.34.1

5 months ago

What's Changed

Full Changelog: https://github.com/go-hep/hep/compare/v0.34.0...v0.34.1

v0.34.0

8 months ago

DOI

Release v0.34.0 is out of the oven.

This release contains no major API breakage, but all around improvements and bug fixes.

hplot

  • hplot/vgop: a new package to implement JSON serialization of gonum/plot canvases
p := hplot.New()
// ...
err := hplot.Save(p, 10*vg.Centimeter, 20*vg.Centimeter, "plot.json")
  • hplot is now using gonum/[email protected] which has the necessary infrastructure to get nicer timeseries axes. See the provided examples (here) for the hplot.Ticks type.

  • hplot has gained some basic capability to display the legend (a color palette with numbers) of a 2D plot. See the provided example.

  • added a convenience forward function for gonum/plot/plotter.NewLinePoints (as hplot.NewLinePoints)

groot

  • added support for ROOT 6.28/04
  • groot/rjson: a new package to implement JSROOT-compatible JSON serialization of groot's histogram types (rhist.H{1,2}x)
h, err := f.Get("h1d")
raw, err := rjson.Marshal(h)

See the complete example here.

  • groot/rtree is now able to read trees created by Geant4 in multithreaded mode (see here for more details).
  • added support for the "new" TLeafG branch.

Changelog

  • 6e9be99e all: bump [email protected], x/{crypto,exp,image,text,tools}@latest
  • 970796df hplot{,vgop}: add support for Save("foo.json")
  • e1cbaa61 hplot/vgop: first import
  • 301b96c6 groot/rjson: first import
  • d280b3c9 groot: implement RSlicer for TH{1,2}x
  • 8795baec groot/rbytes: introduce RSlicer interface
  • 8631271d cmd/root2arrow: use latest arrow-cat for tests
  • 1d490da0 cmd/root2npy: use internal/diff
  • 0e69116b groot: add tests for TLeafG
  • 85fd5fd9 groot: add support for TLeafG
  • 7cb2fac8 groot: bump to ROOT 6.28/04
  • 548d277c groot/rtree: handle parallel-merged TBaskets
  • 404ed51c ci: bump [email protected]
  • d41b03d0 hplot: add NewLinePoints forward
  • b6113fad hplot: add timeseries examples with epok
  • 948b0093 hplot: add automatic legend creation to H2D
  • d26c986b hplot: add support for legend to Figure
  • 02946662 hplot: forward plot.Legend
  • d0eea6ab fwk: bump to gonuts/[email protected]
  • fa91d5d0 all: bump [email protected], [email protected]
  • 233c6a47 all: bump Go-1.21, drop Go-1.19
  • d85e15f7 groot/cmd/root-gen-streamer: use an in-memory buffer for generation
  • c00ff1a0 hplot: update examples
  • 8c9cc408 hplot: update embedmd invocation
  • 673ab4c5 ci: improve mk-release to setup symlinks

v0.33.0

1 year ago

DOI

Release v0.33.0 is out of the oven.

This release contains no major API breakage, but all around improvements and bug fixes.

cmd

  • cmd/hepmc2root: is a new command to automatically convert HepMC2 ASCII files to flat n-tuples ROOT files.
$> hepmc2root -h
hepmc2root converts a HepMC2 ASCII file into a ROOT file and (flat) tree.

Usage: hepmc2root [OPTIONS] hepmc.ascii

Example:

$> hepmc2root ./hepmc.ascii
$> hepmc2root -o out.root -t mytree ./hepmc.ascii

Options:
  -o string
    	path to output ROOT file name (default "out.root")
  -t string
    	name of the output tree (default "tree")

hplot

hplot has been migrated to the new Gio API, and needs Gonum/[email protected].

Slight differences are to be expected in the rendering of plots. With the new Gio version we are using, you may need development headers for Vulkan on Linux. See the installation instructions of Gio for more details: Gio Installation

  • fix a bug in hplot.TiledPlot.Plot(i, j int) where the *hplot.Plot returned by Plot(i,j) was actually the conjugate of what the documentation specified. Now, Plot(i,j) returns the plot as documented.

sliceop

  • introduce a generic sliceop.Resize that can reuse []T capacity
  • introduce generic versions of sliceop.Take and sliceop.Find

Changelog

Full Changelog: https://github.com/go-hep/hep/compare/v0.32.1...v0.33.0

v0.32.1

1 year ago

What's Changed

Full Changelog: https://github.com/go-hep/hep/compare/v0.32.0...v0.32.1

v0.32.0

1 year ago

DOI

Release v0.32.0 is out of the oven.

This release contains no major API breakage, but all around improvements and bug fixes.

This release drops support for Go-1.17 (and earlier) and is the first release with the introduction of a few generics-based APIs.

Thanks to Olivier Mengué (@dolmen) there were a couple of house cleaning changes that have been applied (as part of the CERN+Google Hackathon). Thanks again Olivier.

There has been some work on RNTuple front, but nothing that can be released yet.

brio

General clean-ups by Olivier M.

fwk

General clean-ups by Olivier M.

groot

  • riofs: add generic Get[T] to retrieve ROOT objects
  • riofs: export in-memory read-only RMemFile ROOT file

hbook

General clean-ups by Olivier M.

lhef

General clean-ups by Oliver M. Olivier also reduced the amount of memory allocations in lhef.NewDecoder.

sliceop

  • introduce sliceop and generics-based functions that mimick what sliceop/f64s did
  • implement sliceop/f64s in terms of sliceop

Changelog

  • c8c6fbf9 fmom: update for new gonum.org/v1/[email protected]/r3 API
  • 3e7183c9 all: update [email protected], [email protected], [email protected], [email protected], [email protected] and go/x
  • 535619c2 ci: add Go-1.19
  • c6ebf251 all: use git.sr.ht/~sbinet/[email protected] fork
  • 770e2dc1 all: bump x/[email protected]
  • ece275b1 groot: fix go:generate portability for root-gen-type
  • 0c1ce510 brio-gen: cleanup files produced by test on test success
  • 8c3e3fa2 ci: bump actions/{setup-go,cache,checkout}/v3
  • fafbeb67 all: bump [email protected]
  • ff19fc7b groot: document interop model with ROOT/C++
  • 0eeae227 groot/rmeta: regnerate stringer
  • f9b43650 groot/{cmd/root-gen-type,rdict}: add support for generating RVec types
  • dc2dcf63 groot/{rcmd,rdict}: add support for reading ROOT::VecOps::RVec<T>
  • fd8c2dc4 cmd/lhef2hepmc: improve warning message and display event number
  • f979a1cb all: apply gofmt-1.19 formating rules
  • 2d8ce49a fwk/internal/fwktest: apply staticcheck cosmetic change
  • f81a84e5 fwk: gofmt
  • f596c97c fwk: manual fix of the last reference of pkg testdata
  • d4ec96b7 fwk: fix references to pkg testdata
  • c04eef86 fwk: rename pkg ./testdata to ./internal/fwktest
  • 07f22fc6 sliceop: use errors.New for constant errors
  • 40700b82 hbook: regenerate files produced by brio-gen
  • 25b579b8 hbook: fix go:generate to not require to install brio-gen
  • 7fe81f63 brio-gen: fix generated code to follow the Go standard
  • 3396f5f1 brio-gen: add .gitignore for temporary files produced by tests
  • 19923699 lhef: reduce allocs on event decoding
  • 9c5c5662 lhef: more Decoder tests
  • cbb49350 lhef: reduce allocs in NewDecoder
  • 163d127b lhef: use errors.New instead of fmt.Errorf for constants
  • 020835d7 cmd/root2yoda: removes unreacheable statement
  • cf9adbb1 ci: use codecov-action@v2
  • 474d07ad groot/riofs: export in-memory read-only RMemFile ROOT file
  • bb8ad3d4 groot/{cmd/root-gen-type,riofs}: add testdata for base+derived classes
  • c52e43d3 groot/rdict: correctly handle generation of marshaling for base classes
  • 7f90bc7e all: bump x/crypto, x/exp and x/sys
  • 4f927c35 sliceop: improve performances of Take
  • c2ec83ed sliceop{,/f64s}: introduce generics sliceop
  • 582dce6c groot/riofs: add generic Get[T] to retrieve ROOT objects
  • ccbaeb33 all: apply staticcheck fixes
  • e93f8a17 ci: use staticcheck instead of golangci-lint
  • 7a3ff60c ci: reduce git-checkout depth
  • ddf2dc75 all: drop Go-1.17

What's Changed

New Contributors

Full Changelog: https://github.com/go-hep/hep/compare/v0.31.0...v0.32.0

v0.31.1

2 years ago

Full Changelog: https://github.com/go-hep/hep/compare/v0.31.0...v0.31.1

  • c31af820 groot/{cmd/root-gen-type,riofs}: add testdata for base+derived classes
  • 8883629d groot/rdict: correctly handle generation of marshaling for base classes

v0.31.0

2 years ago

DOI

Release v0.31.0 is out of the oven.

This release contains no major API breakage, but all around improvements and bug fixes.

This release drops support for Go-1.16 (and earlier).

groot

  • bump to ROOT-6.26/00
  • implement a riofs Reader over HTTP(s), instead of downloading the whole file locally
  • improve performances of rcmd.Dump(tree)
  • add support for TMultiGraph
  • add support for TDatime
  • add support for TGraphMultiErrors
  • add support for TProfile{,2D}
  • add support for TEfficiency
  • add support for TConfidenceLevel, TLimit{,DataSource}
  • add support for TF1 and TFormula
  • add support for reading std::vector<T, myalloc<T>>
  • introduced a new package groot/rnpy, to ease ROOT/NumPy conversions (like groot/rarrow does for Arrow)
  • improve memory usage of root2npy, by materializing into memory only one column at a time
  • streamline C++ templates parsing for STL containers (vector,deque,map,unordered_{,multi}{map,set}, pair, ...)

xrootd

  • improve the read performances 10-fold, using a finer-grained lock to protect session IDs

AOB

That's all for today. Last release we said there would probably be some work on the RNTuple front. We didn't lie, but this didn't happen in the form we thought it would. A surprise is in the works... stay tuned.

Next cycle will probably see some work on the RNTuple front, and that work appear in main.

Changelog

  • b02724a1 all: bump x/crypto
  • 6c359638 all: drop old +build foo stanza, use //go:build
  • 24817699 all: bump klauspost/[email protected] and pierrec/[email protected]
  • 59c6c675 all: bump gonum/[email protected], gonum/[email protected]
  • c6f7c48c all: drop Go-1.16, add Go-1.18
  • 7909cd7d groot/internal/httpio: add a pool of http.Request
  • 0e0b9931 groot/riofs/plugin/http: first stab at a caching+concurrent http-reader
  • 53a256f5 groot/internal/httpio: first import
  • e6d5f90c groot: bump to ROOT-6.26/00
  • 6f88941b xrootd: improve read performances 10-fold
  • c38575f0 groot/rcmd: improve Dump tree performances
  • ca83c453 groot/{internal/rtests,riofs}: better ACliC handling
  • e453fa7c groot/{rcmd,rhist,rvers}: add support for TMultiGraph
  • 17474123 groot/{rbase,riofs,rvers}: add support for TDatime
  • 0034b01b groot/internal/rtests: make sure macros are run thru ACliC
  • 0bd7c62e groot/{rcmd,riofs,rmeta}: add support for read std::vector<T,my_alloc<T>>
  • 551dabd7 groot/{rcmd,riofs}: add tests for more STL containers
  • f1aa9058 groot/rtree: add rvar dispatch for map[K]V
  • b4678544 groot/rdict: add r/w-streamer+type handling for TString
  • 480971d2 groot/rdict: handle TString streaming in collections
  • 22da5159 groot/rdict: use []T for disk storage of std::set<T>
  • 34d6347f groot/rdict: proper handling of 'This' streamers
  • 0a85f502 groot: introduce rbytes.Header
  • e16891db groot/rcmd: add tests for POD data files
  • 2a344611 groot/rdict: generate RVersioner if not implemented
  • d23d2f42 groot/{rdict,rmeta}: introduce CxxTemplate, streamline template parsing
  • be7ddfa6 groot/rnpy: new package to ease ROOT-Tree/NumPy conversion
  • 37a9ac0e cmd/root2npy: improve memory usage
  • 04a2d5fc groot: streamline r/w buffer ops
  • 1b25234f groot/{rdict,rhist,rvers}: add r/w support for TGraphMultiErrors
  • 73b95060 groot/{rhist,riofs,rvers}: add r/w support for TProfile{,2D}
  • 449e81e7 groot/rdict: add initial support for enums in genGoType
  • e6f8d63d groot/{rcmd,rdict,rhist,rvers}: add r/w support for TEfficiency
  • 929ec73d groot/rhist: add write support to TF1 and TFormula
  • 129831f6 groot/{rcmd,rdict,rhist,riofs,rvers}: add r/w support for TConfidenceLevel and TLimit{,DataSource}
  • ffc817e8 root/rbytes: add WriteStdVectorF64
  • e488e92a root/rbytes: add WriteObject
  • fa6827ea groot/{rdict,rhist,rvers}: add initial read support for TF1 and TFormula
  • d8d3eb53 groot/rbytes: add RBuffer.ReadStdVectorI32
  • 17373164 groot/rbytes: add RBuffer.ReadStdVectorF64
  • ad66388a cmd/root2{arrow,csv,npy}: use riofs.Dir to retrieve trees

v0.30.1

2 years ago

DOI

Release v0.30.1 is out of the oven.

This release contains no major API breakage, but all around improvements and bug fixes.

fwk

  • updated fwk-app to use the latest gonuts/commander version that provides auto-completion of commands, flags and sub-commands.

groot

  • add support for TBranchObject and TLeafObject
  • add support for TLorentzVector (in root-dump and friends)
  • add support for TNtuple and TNtupleD (in root-dump and friends)

hplot

  • fixed a race in hplot.New where the global variable from gonum/plot was being modified without a critical section. This race appeared when one would create multiple hplot.Plot concurrently.

sliceop

  • improved performances of sliceop/f64s.Take. Do note that sliceop/f64s will probably be rewritten in terms of a generic implementation (and deprecated) once Go-1.18 is generally available.

AOB

That's all for today. Next cycle will probably see some work on the RNTuple front.

Changelog

  • 76e7c865 all: bump [email protected]
  • baa058b5 groot/{rdict,rtree,rvers}: bump to ROOT-6.24/06
  • bc000321 all: bump peterh/liner, x/crypto, x/image, x/tools and ql
  • b57330a1 groot/{rcmd,riofs,rtree,rvers}: add rtree.Reader support for TNtuple{,D}
  • 24ff587b all: bump klauspost/[email protected]
  • d1e8a6fe all: 2022 is the year of the Gopher
  • 505ab934 fwk/cmd/fwk-app: use gonuts/[email protected]
  • c5711342 hplot: fix race in hplot.New on gonum/plot.DefaultFont
  • eaeb641a groot/rphys: test RStreamer with Bind+Unmarshaler for TLorentzVector
  • 679c8867 groot/rphys: make Vector{2,3} implement fmt.Stringer
  • 7851644b groot/rphys: make LorentzVector implement fmt.Stringer
  • 07e2951c groot/rdict: leverage rbytes.{Unm,M}arshaler implementation in Bind
  • e370fced groot/riofs: add generation of TLorentzVector testdata
  • c117054d groot/{rdict,rtree,rvers}: add support for T{Branch,Leaf}Object
  • 975023e2 groot: remove old comment about write-mode of TTrees
  • 7735669e sliceop/f64s: improve Take performances
  • 4ca091cd all: bump x/[email protected]

v0.30.0

2 years ago

DOI

Release v0.30.0 is out of the oven.

This release contains no major API breakage, but all around improvements and bug fixes.

fwk

  • updated fwk-app to use the latest gonuts/commander version that provides auto-completion of commands, flags and sub-commands.

groot

  • add support for TBranchObject and TLeafObject
  • add support for TLorentzVector (in root-dump and friends)
  • add support for TNtuple and TNtupleD (in root-dump and friends)

hplot

  • fixed a race in hplot.New where the global variable from gonum/plot was being modified without a critical section. This race appeared when one would create multiple hplot.Plot concurrently.

sliceop

  • improved performances of sliceop/f64s.Take. Do note that sliceop/f64s will probably be rewritten in terms of a generic implementation (and deprecated) once Go-1.18 is generally available.

AOB

That's all for today. Next cycle will probably see some work on the RNTuple front.

Changelog

  • baa058b5 groot/{rdict,rtree,rvers}: bump to ROOT-6.24/06
  • bc000321 all: bump peterh/liner, x/crypto, x/image, x/tools and ql
  • b57330a1 groot/{rcmd,riofs,rtree,rvers}: add rtree.Reader support for TNtuple{,D}
  • 24ff587b all: bump klauspost/[email protected]
  • d1e8a6fe all: 2022 is the year of the Gopher
  • 505ab934 fwk/cmd/fwk-app: use gonuts/[email protected]
  • c5711342 hplot: fix race in hplot.New on gonum/plot.DefaultFont
  • eaeb641a groot/rphys: test RStreamer with Bind+Unmarshaler for TLorentzVector
  • 679c8867 groot/rphys: make Vector{2,3} implement fmt.Stringer
  • 7851644b groot/rphys: make LorentzVector implement fmt.Stringer
  • 07e2951c groot/rdict: leverage rbytes.{Unm,M}arshaler implementation in Bind
  • e370fced groot/riofs: add generation of TLorentzVector testdata
  • c117054d groot/{rdict,rtree,rvers}: add support for T{Branch,Leaf}Object
  • 975023e2 groot: remove old comment about write-mode of TTrees
  • 7735669e sliceop/f64s: improve Take performances
  • 4ca091cd all: bump x/[email protected]

v0.29.1

2 years ago

DOI

Release v0.29.1 is out of the oven.

This release contains no major API breakage, but all around improvements and bug fixes. Most notably, this release uses the new gonum/[email protected] release that fixes a bunch of graphics bugs and performance improvements in plots drawing (PDF, PNG and SVG.)

arrow

We are now using a "vendored" version of github.com/apache/arrow/go without all the flight support, to cut down on the amount of dependencies this was dragging in.

groot

  • groot/{rdict,rtree}: handle groot types mirroring TObject inheritance tree
  • groot/rtree: reduce memory usage in tree-write
  • groot/{riofs,rtree}: handle small/big file thresholds for long-running baskets
  • groot/rhist: handle nil-title in YODA histograms
  • cmd/yoda2root: handle YODA files with a directory structure
  • groot/rhist: implement YODA (un)marshaler for TGraph{,Asymm}{,Errors}
  • groot/rhist: correctly write out TGraph{,Asymm}{,Errors}

hbook

  • hbook: introduce Rand1D. Rand1D represents a 1D distribution created from a hbook.H1D histogram.

hplot

  • hplot: add Label plotter. This plotter allows user to put labels on a plot in "normalized" or "data" coordinates.

xrootd

  • xrootd: fix race in file

AOB

That's all for today. Next cycle will probably see some work on the RNTuple front.

Changelog