Files
Jungfraujoch/docs/NAMING.md
T
leonarski_fandClaude Opus 4.8 1caa57744a
Build Packages / Unit tests (push) Successful in 1h1m46s
Build Packages / build:windows:nocuda (push) Successful in 10m19s
Build Packages / build:viewer-tgz:cpu (push) Successful in 8m22s
Build Packages / build:viewer-tgz:cuda (push) Successful in 9m18s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 13m23s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 13m47s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 13m25s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 12m53s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 13m27s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 11m59s
Build Packages / build:rpm (rocky8) (push) Successful in 10m50s
Build Packages / build:rpm (rocky9) (push) Successful in 12m26s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 13m3s
Build Packages / XDS test (durin plugin) (push) Successful in 7m58s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 12m26s
Build Packages / DIALS test (push) Successful in 13m35s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 8m22s
Build Packages / XDS test (neggia plugin) (push) Successful in 7m47s
Build Packages / Generate python client (push) Successful in 30s
Build Packages / Build documentation (push) Successful in 1m5s
Build Packages / Create release (push) Skipped
Build Packages / build:windows:cuda (push) Successful in 11m55s
Rebrand offline processing as rugnux (jfjoch_process -> rugnux)
Split the naming: rugnux = data-processing subsystem, Jungfraujoch = streaming/acquisition. Executables jfjoch_process -> rugnux (source tools/rugnux_cli.cpp) and jfjoch_scale -> rugnux_scale; the processing library process/ -> rugnux/ with class/target JFJochProcess -> Rugnux (JFJochProcessObserver -> RugnuxObserver, JFJochProcessCommandLine -> RugnuxCommandLine).

Doc JFJOCH_PROCESS.md -> RUGNUX.md, reconciled with the live usage message (drop dead -P/--partiality, -w/--wedge; --process-as-stills -> --force-still; add the real rot3d scaling knobs). New docs/NAMING.md explains both names, with pronunciation and a note on Romansh.

rugnux now scales and merges rotation data automatically (implicit -M); stills still require an explicit -M.

jfjoch_viewer and its classes keep their names (rename deferred); only their references to the renamed library are updated. The _process.h5 output suffix and ProcessConfig/Mode/Result are kept.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 22:46:58 +02:00

61 lines
3.7 KiB
Markdown

# Naming
The software is Swiss, and so are its names: both halves of the system are named after
places in the Alps that are, in one way or another, about moving a *lot* of something up a
steep mountain as efficiently as possible — usually by train. Throughput, in other words.
| Part | Name | What it does |
| --- | --- | --- |
| Streaming / acquisition | **Jungfraujoch** | Receives detector data at high data rates, runs the FPGA/GPU pipeline, and streams images out for writing. |
| Data processing | **Rugnux** | Offline crystallographic analysis of a stored dataset — indexing, integration, scaling and merging (the [`rugnux`](RUGNUX.md) tool). |
## Jungfraujoch
The **Jungfraujoch** is a high mountain col in the Bernese Alps, the saddle (*Joch* is German
for "yoke" or "col") between the peaks **Jungfrau** and **Mönch**, at 3,466 m. It is the site of
the [High Altitude Research Station Jungfraujoch](https://www.hfsjg.ch/), whose long-running
atmospheric measurements are **co-operated by the Paul Scherrer Institute** — the same institute
that develops this software and the JUNGFRAU detector.
The name is also a small piece of word-play. PSI's **JUNGFRAU** detector and DECTRIS's **EIGER**
detector are both named after Bernese Alps peaks (the famous trio is *Eiger*, *Mönch*, *Jungfrau*).
The Jungfraujoch — the pass *between* Jungfrau and Mönch — is where those two detector worlds meet.
And it fits the theme of the whole project: the Jungfraujoch is reached by the **Jungfraubahn**,
whose terminus is the **highest railway station in Europe** (3,454 m, the "Top of Europe"). It is
the closest you can get to that summit in a genuinely *high-throughput* way — by train, moving
crowds up the mountain — which is exactly what the streaming side of this software does with
detector frames.
**Pronunciation (German):** *Jungfraujoch***YUNG-frow-yokh**.
"Jung" as in *young*, "frau" rhymes with *cow*, and the final "joch" ends in the guttural *ch* of
Scottish *loch* or German *Bach* — not a hard *k*.
## Rugnux
**Piz Rugnux** is a mountain in the Rhaetian Alps of canton Graubünden, in south-eastern
Switzerland. (*Piz* is the Romansh word for "peak".) It rises above the **Albula line** of the
**Rhaetian Railway** (*Rhätische Bahn*), part of the "Rhaetian Railway in the Albula / Bernina
Landscapes" — a **UNESCO World Heritage Site** (*Welterbe*).
That stretch of line is a masterpiece of throughput engineering: to climb a great deal of altitude
in very little horizontal distance, it corkscrews through a series of **helical (spiral) tunnels**
looping back inside the mountains. It is, again, the Swiss art of getting an enormous amount up a
steep mountain efficiently — the same idea the data-processing side of this software is built
around: pushing a large volume of diffraction data through the analysis pipeline.
So the theme is consistent — **Swiss mountains, trains, and throughput** — while keeping the two
subsystems clearly distinct: *Jungfraujoch* streams, *Rugnux* processes.
**Pronunciation (Romansh):** *Piz Rugnux***peets roo-NYOOKS**.
The "gn" is a soft palatal *ñ*, as in *canyon* or Italian *gnocchi*, not two separate sounds.
## What is Romansh?
**Romansh** (*Rumantsch*) is the **fourth national language of Switzerland**, alongside German,
French and Italian. It is a Romance language — a direct descendant of the spoken Latin left behind
in the Alpine valleys — today spoken by only a few tens of thousands of people, almost all in the
canton of Graubünden. It survives in several regional idioms, brought together in a standard form
called *Rumantsch Grischun*. Naming the processing engine with a Romansh mountain is a small nod to
the least-spoken but no-less-Swiss corner of the country.