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
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>
61 lines
3.7 KiB
Markdown
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.
|