rntviewer/README.md
2024-11-13 14:32:35 +01:00

62 lines
2 KiB
Markdown

<img src="example.png" width="500px"/>
## rntviewer
This is an interactive visualization tool for [RNTuple](https://root.cern.ch/doc/v618/md_tree_ntuple_v7_doc_README.html).
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](https://github.com/ocornut/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.