No description
Find a file
2025-04-09 16:40:20 +02:00
src sort Section to speed up find_section significantly 2025-04-09 16:40:20 +02:00
testdata improve title 2025-01-24 12:06:08 +01:00
third_party update imgui version 2025-03-12 11:21:27 +01:00
.gitignore update gitignore 2024-09-24 11:56:56 +02:00
.gitmodules make imgui a submodule; import memory editor 2024-07-10 21:41:48 +02:00
COPYING add license 2024-08-08 17:27:22 +02:00
example.png update example.png 2024-11-13 11:58:57 +01:00
Makefile simplify a bunch of stuff 2025-01-22 17:04:56 +01:00
README.md update README 2025-02-14 15:36:59 +01:00
rntviewer-rntviewer.json update comment 2025-04-01 14:09:03 +02:00

rntviewer

This is an interactive visualization tool for RNTuple. It can also be used to read generic TFiles and display some information about them, but it's mostly focused on inspecting the on-disk structure of RNTuples.

Getting the repo

Clone this repository with

git clone --recurse-submodules https://codeberg.org/silverweed/rntviewer

Dependencies

rntviewer currently only fully works on Linux, with the terminal-only version working on MacOS as well.

The dynamic dependencies are:

  • GLFW3 (libglfw3-dev on debian, glfw-devel on fedora, glfw on arch)
  • ROOT (likely bleeding edge version, compiled from sources)
  • libxxhash3-dev

Other than those, rntviewer statically depends on Dear ImGui (included in the source tree - make sure to clone the submodules!).

For the graphical version, the OS must support OpenGL 3.3 or higher.

For the terminal-only version you don't need GLFW3, ImGui or OpenGL support.

Building

Building is done with make. Make sure to source /path/to/root/bin/thisroot.sh before running it. You probably want to build the release version:

make r

You can test that the tool is working properly with:

./rntviewer testdata/RNTuple.root

To build the terminal-only version:

make nogfx_r

Usage

Basic usage is:

./rntviewer <ntuple_file.root> [ntuple_name]

This will open a window and let you browse the RNTuple, jump around its sections and get some information about them. If you don't specify ntuple_name, the program will display all RNTuples in the file.

There is also a non-interactive non-graphical mode that can be used in a terminal (useful e.g. for ssh sessions):

$ ./rntviewer -t <ntuple_file.root> [ntuple_name]

The -t flag enables terminal mode. Use ./rntviewer -h to get a help message about the other flags that rntviewer accepts and are particularly useful in non-interactive mode.

Inspecting individual values of a section

The RNTuple Viewer allows you to hover on each section and get detailed information about them.

Holding the Alt key you can see the individual items of those sections and which bytes they map to. This normally works only for uncompressed payloads (otherwise there is no well-defined mapping from the on-disk bytes to the actual data).

As of version 0.12, when you open a ROOT file containing compressed objects (as it's usually the case), you can still visualize the detailed information of a section by middle-clicking on it: this will change the visualization to an uncompressed view of that section, where you can hover on the individual items as if it were originally uncompressed. Press Escape to go back to the regular view.