BgColorFn(addr) will call find_section(addr) internally. If we call BgColorFn(addr + 1) and then BgColorFn(addr), the first call may cause the cached `last_pinfo` / `last_other_root_obj` to change to the next one in the list, which in turn will cause the second call to "page fault". Inverting the order doesn't change anything in mem_edit but it better uses our application cache to speedup section finding. |
||
---|---|---|
src | ||
testdata | ||
third_party | ||
.gitignore | ||
.gitmodules | ||
COPYING | ||
example.png | ||
Makefile | ||
README.md |

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 look for the first RNTuple 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.