Skip to content

Releases: root-project/jsroot

5.2.0

12 May 13:45

Choose a tag to compare

  1. Basic JSROOT functionality can be used in Node.js:
    var jsroot = require("path/to/JSRootCore.js");
    One could parse ROOT JSON, read binary ROOT files (local and remote) and produce SVG.
  2. Implement dropping of TTree object on the geometry drawing.
    This automatically invokes extract_geo_tracks() function, which
    should extract TGeoTracks from provided TTree.
    Example can be found in demo/alice_esd.js and in api.htm.
  3. Implement projection of geometry on given plane.
    One could reuse drawing of geometry in other div (should be drawn with main option).
    In control GUI one could change position of the projection plane
  4. One of the TGeo drawing can be assigned as main. When same object drawn next time,
    its drawing will be derived from the main. Useful for geometry projections.
    Also all tracks and hits will be imported from main drawing.
  5. Let change background color of geo drawing.
  6. One can change web browser title, providing &title="any string" in URL.
  7. Introduce event status line, which is similar to ROOT TCanvas.
    Shown information similar to output in tooltip.
    One can enable both tooltips and status line at the same time.
  8. Introduce JSROOT.GEO.build function to create three.js model for
    any supported TGeo class. Such model can be inserted in any three.js scene
    independent from normal JSROOT drawings.
  9. Improve rendering of geometries with transparency. Use EVE approach, when transparent
    objects rendered after opaque and without writing depth buffer. Provide different
    methods to produce render order for transparent objects.
  10. Let specify initial zoom factor for geometry like opt=zoom50.
  11. Support also TPolyMarker3D class in geo painter.
  12. Implement TGeoScaledShape.
  13. Limit complexity of composite shape. If it has too many components, only most left is used.
  14. When produce canvas or pad screenshot, render 3D objects with SVGRenderer.
    Allows to combine 2D and 3D objects in same PNG image
  15. Improve MathJax.js output. It scales correctly in Firefox, makes correct alignment
    and works significantly faster.
  16. When creating image in SVG format, correctly convert url("#id") references
  17. Use latest three.js r85
  18. Fix 'transpXY' URL parameter handling - it was used as opacity, but opacity=1-transparency

5.1.2

21 Apr 11:36

Choose a tag to compare

  1. Fix - support newest TFormula in TF1 (#127)
  2. Fix - ignore NaN value in saved TF1 buffer
  3. Fix - correctly treat transparency in geo painter
  4. Fix - disable useFontCache for SVG mathjax output
  5. Fix - produce PNG image for objects with special symbols in names

5.1.1

23 Mar 11:41

Choose a tag to compare

  1. Fix - invoke callback in JSROOT.draw() at proper time
  2. Fix - support TGeoHMatrix, produced after GDML conversion
  3. Fix - support also TGeoScale and TGeoGenTrans matrices
  4. Fix - update histograms with all provided functions (#125)

5.1.0

23 Feb 15:36

Choose a tag to compare

  1. New 'float' browser kind overlays with objects drawing
  2. Browser can be enabled after drawing with 'nobrowser' mode
  3. One can hide browser or switch browser kind at any time
  4. New 'horizontal' and 'vertical' layouts for object display.
    One could configure several frames, each divided on sub-frames.
    Like display=horiz231 will create three horizontal frames,
    divided on 2,3 and 1 sub-frames.
  5. Optional status line where current tooltip info will be shown
  6. Improve enlarge functionality - now works with all layouts
  7. Do not display all canvas tool buttons by default - provide toggle button instead
  8. Let move TAxis title, its position now similar to ROOT graphics
  9. Support 'col0' option for TH2Poly class to suppress empty bins
  10. Implement for TH3 'box2', 'box3', 'glbox2', 'glcol' draw options
  11. Support more superscript/subscript letters in normal text output
  12. Correctly handle unzoom with logx/logy scales
  13. Let disable stamp parameter in file url with "-" sign at the end of file name
  14. Let use quotes in the URL parameters to protect complex arguments with special symbols
  15. Introduce direct streamers - like TBasket or TRef
    Benefit - one can add custom streamers of such kind or reuse existing
  16. Handle TMatrixTSym classes in I/O
  17. Correctly count TH3 statistic in TTree::Draw
  18. Recognize bower installation when "bower_components/jsroot/scripts" string
    appears in the script path (#120)

5.0.3

13 Feb 15:50

Choose a tag to compare

  1. Fix - prevent exception when discover HTML element position (#121)
  2. Fix - prevent I/O failure when server automatically gzip response (#119)
  3. Fix - lego drawing for stacked TH1 histograms
  4. Fix - when change global tooltips settings, also change for each sub-pad

5.0.2

07 Feb 16:02

Choose a tag to compare

  1. Fix - read branch entries as arrays
  2. Fix - command submission to THttpServer
  3. Fix - let refill statbox also for empty histogram
  4. Fix - problem with online TTree::Draw and ROOT6

5.0.1

07 Feb 12:22

Choose a tag to compare

  1. Support older ROOT files, created before 2010
  2. Support TBranchObject - appears in old files
  3. Correctly set TBasket buffer position for the entry
  4. Fix - problem with empty STL containers
  5. Fix - empty baskets at the end of branch store
  6. Fix - problem with zooming in THStack

5.0.0

03 Feb 13:26

Choose a tag to compare

  1. Reading TTree data
    • all kinds of branches, including split STL containers
    • branches with several elementary leaves
    • branches from different ROOT files
    • JSROOT.TSelector class to access TTree data
    • simple access to branch data with "dump" draw option
  2. TTree::Draw support
    • simple 1D/2D/3D histograms
    • simple cut conditions
    • configurable histogram like "px:py>>hist(50,-5,5,50,-5,5)"
    • strings support
    • iterate over arrays indexes, let use another branch as index values
    • support "Entry$" and "Entries$" variables in expressions
    • bits histogram like "event.fTracks.fBits>>bits(16)"
    • special handling of TBits
    • arbitrary math function from JavaScript Math class, some TMath:: function from ROOT
    • if branch is object, one could use methods "TMath::Abs(lep1_p4.X()+lep1_p4.Y())"
    • interactive player to configure and execute draw expression
  3. Full support of Float16_t and Double32_t types in I/O
  4. Drawing of RooPlot objects, I/O support for RooFit classes
  5. Many improvements in object inspector
    • support of large lists; only first part is shown
    • support of large arrays; values group in decades
    • allow to call draw function for sub-elements in inspector
  6. Canvas or selected sub-pad can be enlarged when double-clicked outside frame (#116)
    Complete drawing will be expanded to the visible space.
    Not available for flex, tabs and collapsible layouts.
  7. Support reading of local ROOT files with HTML5 FileReader.
    Files can be selected only with interactive dialog.
  8. Combine "Ctrl" and "Shift" keys with mouse click on the items:
    • with Shift key typically object inspector will be activated
    • with Ctrl key alternative draw options will be used (like colz for TH2)
  9. Update libraries
    • d3.js - 4.4.4
    • three.js - 84
    • jquery - 3.3.1
    • jquery-ui - 1.12.1

4.8.2

02 Feb 09:57

Choose a tag to compare

Support compressed array, produced with newest TBufferJSON

  • $arr field identify such array and contains data type
  • native arrays are used when decoding such array
  • zero values are not stored
  • many similar values stored as one with repetition factor
  • position stored only when differ from produced with previous block
  • array [3,3,3,3,3,3,1,2,2,2,2,2,2,2] compressed as {$arr:"Int",len:14,v:3,n:6,v1:1,v2:2,n2:7}

4.8.1

13 Dec 14:32

Choose a tag to compare

  1. Support new JSON format, produced with newest TBufferJSON
    • object references stored as {"$ref":12}
    • pair objects for std::map marked with "$pair" : "pair<type1,type2>" data member
    • old JSON format will be recognized automatically and supported as well
  2. Fix - better selection of Y range for log scale
  3. Provide JSROOT.parse_multi() function to correctly parse response of multi.json request,
    support it in the JSROOT.NewHttpRequest method as well.
  4. Fix - correctly calculate integral for TH1
  5. Partially support new TFormula with complex C code inside