sea-cucumber¶
sea_cucumber is the SHiP event display. It reads a GeoModel geometry
database (.db), an RNTuple file in the SHiP data model
and an optional TOML view config. It links no analysis or framework code, so
it works on output from any stage.
There are two viewers sharing one core:
- a web frontend (three.js) that runs in the browser, the main interface;
- a ROOT REve display, kept as a second option.
Repository: ShipSoft/sea-cucumber
Full reference: manual
The project is in alpha: both viewers work for day-to-day event inspection, but interfaces may still change.
Building¶
Web frontend¶
Produce the display files, then serve them:
pixi run web-data --geometry ship_geometry.db --data output.root --view views/default.toml
pixi run web # open http://localhost:8080
web-data writes geometry.json, one event_<i>.json per event and
manifest.json into web/data/. Useful flags are --out <dir>,
--events all|<i>, --depth <n> and --max-shapes <n>.
ROOT REve display¶
A bare --geometry filename is looked up in the current directory, then in
$SHIPGEOMETRY_ROOT/share/geometry/, as in aegir. Add --inspect <depth> to
print where subsystems sit in z without loading any data.
Reading a large .db takes seconds on every launch. Convert it once with
pixi run geo-cache --geometry ship_geometry.db --view views/default.toml,
then pass --geo-cache geocache to the display.
Data read¶
The display reads the events RNTuple fields mc_particles, sim_hits,
sim_particles, rec_particles and sim_result. Any of them may be
missing. Dense subsystems such as straws and tiles should be filtered with
include/exclude regexes in the view config to keep both viewers
responsive.