From 9ef57ce98bb044419317505be4f91652cdfe3039 Mon Sep 17 00:00:00 2001 From: Doga Gursoy Date: Mon, 22 Jun 2026 10:18:49 +0300 Subject: [PATCH] docs(tomowise): align the beamline nav with 2-BM (Source/Sample/Detector) + tabulate devices Match the cross-deployment beamline spine. Rename the nav entry and page Endstations -> Sample (the descriptor's `sample` stage), keeping the two endstations (microtomography ~45 m, nanotomography ~49 m) as sub-sections. Convert the Sample and Detector device listings from bullet lists to tables (Device | Family | target model | spec), matching the generated Source page and the Inventory. Align equipment/index.md to 2-BM's Stations / Shared / Reference router. Design-phase depth stays lighter than 2-BM's materialized-fixture pages: no fabricated model-in-one-picture trees or exercised-model sections, since TomoWISE has no registered fixtures yet. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../tomowise/equipment/detector.md | 26 +++++++----- .../tomowise/equipment/endstations.md | 30 -------------- docs/deployments/tomowise/equipment/index.md | 23 +++++++---- docs/deployments/tomowise/equipment/sample.md | 40 +++++++++++++++++++ docs/deployments/tomowise/index.md | 2 +- docs/deployments/tomowise/inventory.md | 2 +- mkdocs.yml | 2 +- 7 files changed, 74 insertions(+), 51 deletions(-) delete mode 100644 docs/deployments/tomowise/equipment/endstations.md create mode 100644 docs/deployments/tomowise/equipment/sample.md diff --git a/docs/deployments/tomowise/equipment/detector.md b/docs/deployments/tomowise/equipment/detector.md index 72a1d7779d..41aa68b2ec 100644 --- a/docs/deployments/tomowise/equipment/detector.md +++ b/docs/deployments/tomowise/equipment/detector.md @@ -6,24 +6,30 @@ TomoWISE has a single detector system on a gantry that travels the experiment hu ## Gantry -- **Detector gantry** (Family `Table`): three axes Xd, Yd, Zd, with Zd on the 7 m floor rails. A removable flight tube (1 mbar) reduces air scatter for the long propagation distances. +| Device | Family | Design spec (TDR) | +| --- | --- | --- | +| `DetectorGantry` | `Table` | Xd, Yd, Zd axes, Zd on 7 m floor rails (45 to 52 m); the shared propagation rail. A removable flight tube (1 mbar) reduces air scatter. | ## Microscopes -Interchangeable visible-light microscopes (scintillator, objective, 45 deg mirror, CMOS camera) couple the scintillator image to the cameras, built for sensors up to 60 mm diagonal. Each is **composed as the cross-facility `Microscope` Assembly** that 2-BM also uses, rather than a loose family: a `Housing` anchors an `Optics` sub-assembly (a turret, the objectives, and a virtual objective selector for switching magnification "without intervening in the setup") over a `Scintillator`. The Optique Peter optics model from 2-BM, `optique_peter_micrx080`, is **bound** on each Housing as the design-target candidate (the TDR names only the vendor; confirmation is DET-2). +Interchangeable visible-light microscopes (scintillator, objective, 45 deg mirror, CMOS camera) couple the scintillator image to the cameras, built for sensors up to 60 mm diagonal. Each is **composed as the cross-facility `Microscope` Assembly** that 2-BM also uses, not a loose family: a `Housing` anchors an `Optics` sub-assembly (a turret, the objectives, and a virtual objective selector that switches magnification "without intervening in the setup") over a `Scintillator`. The Optique Peter optics model from 2-BM, `optique_peter_micrx080`, is bound on each Housing as the design-target candidate (the TDR names only the vendor; confirmation is DET-2). -Because TomoWISE's two microscopes share the four cameras and the one `DetectorGantry` propagation rail, the assembly's `camera` and `propagation_distance` slots are **decoupled**: the catalog assembly was generalized to make both `ZeroOrOne`, and each microscope leaves them empty. The cameras are modelled as separate shared Assets (below); the gantry provides the propagation distance. +Because the two microscopes share the four cameras and the one `DetectorGantry` propagation rail, the assembly's `camera` and `propagation_distance` slots are decoupled: the catalog assembly was generalized to make both `ZeroOrOne`, and each microscope leaves them empty. The cameras are modelled as separate shared Assets (below); the gantry provides the propagation distance. -- **MicLFOV** (Assembly `Microscope`, Housing model `optique_peter_micrx080`): large field of view, 1-2x magnification, NA > 0.2; objectives 1x / 2x. -- **MicHR** (Assembly `Microscope`, Housing model `optique_peter_micrx080`): high resolution, 4x / 10x / 20x, NA > 0.4. +| Microscope | Family | Housing model | Design spec (TDR) | +| --- | --- | --- | --- | +| `MicLFOV` | `Housing` (Microscope Assembly) | `optique_peter_micrx080` | large field of view, 1-2x magnification, NA > 0.2; objectives 1x / 2x | +| `MicHR` | `Housing` (Microscope Assembly) | `optique_peter_micrx080` | high resolution, 4x / 10x / 20x, NA > 0.4 | ## Cameras -Four cameras span the throughput-versus-speed-versus-resolution trade. The models are chosen in project year 2 (DET-1); the sensors below are the design targets. +Four cameras span the throughput-versus-speed-versus-resolution trade, all shared across both microscopes. The models are chosen in project year 2 (DET-1); the sensors below are the design targets. -- **Camera I** (Family `Camera`): 16-25 Mpix, 16-bit sCMOS, 100-150 fps. General throughput. -- **Camera II** (Family `Camera`): 4 Mpix, 12-bit CMOS, > 50,000 fps. High-speed dynamics. -- **Camera III** (Family `Camera`): ~4 Mpix, > 2,000 fps. Streaming. -- **Camera IV** (Family `Camera`): 150 Mpix, 54 x 40 mm sensor, 3.76 um pixel. Matches the large-sensor device already procured for DanMAX. +| Camera | Family | Design spec (TDR) | +| --- | --- | --- | +| `CameraI` | `Camera` | 16-25 Mpix, 16-bit sCMOS, 100-150 fps; general throughput | +| `CameraII` | `Camera` | 4 Mpix, 12-bit CMOS, > 50,000 fps; high-speed dynamics | +| `CameraIII` | `Camera` | ~4 Mpix, > 2,000 fps; streaming | +| `CameraIV` | `Camera` | 150 Mpix, 54 x 40 mm sensor, 3.76 um pixel; matches the large-sensor device procured for DanMAX | The camera models, the bound microscope-optics model confirmation (DET-2), and the trigger path are the main detector-side [open questions](../questions.md). See [Inventory](../inventory.md) for the Asset tree. diff --git a/docs/deployments/tomowise/equipment/endstations.md b/docs/deployments/tomowise/equipment/endstations.md deleted file mode 100644 index 5aacdc81cd..0000000000 --- a/docs/deployments/tomowise/equipment/endstations.md +++ /dev/null @@ -1,30 +0,0 @@ -# Endstations - -*The two TomoWISE sample stations. Design-phase; values are TDR design targets.* - -TomoWISE has two experiment stations in the experiment hutch, sharing one [detector gantry](detector.md). They are modelled as two sample-stage groups in the [descriptor](../inventory.md), each presenting the specimen to the beam in a different way. - -## Microtomography endstation (~45 m) - -The workhorse station: a fixed sample table about 45 m from the source carrying the rotation and positioning stack. - -- **Sample table** (Family `Table`): fixed at 45 m, surface 390 mm below the beam, leaving space for sample environments. Coarse table motion Xt (+/-100 mm), Yt (+50/-150 mm), and a beta tilt (1.2 deg). -- **Rotary stage** (Family `RotaryStage`): tomographic rotation up to 1200 rpm, 1 mdeg resolution, with a TTL encoder emitting 3600 pulses per revolution. The TDR names the Lab Motion Systems RT100AX as the target model; CORA leaves the Model unbound until confirmed (STAGE-1). This stage is also the trigger master clock (see [Controls](controls.md)). -- **Sample positioning** (Family `LinearStage`): Xs/Zs centring, +/-6 mm per axis, 0.1 um resolution. Target model XY150B-12 (STAGE-2). -- **Laminography tilt** (Family `TiltStage`): a 25 deg tilt axis for laminography, distinct from tomography rotation. -- **Sample-side slits** (Family `Slit`): a 50 x 5 mm aperture above the rotation axis; JJ X-ray IB-C50-air reference design. -- **Fast shutter** (Family `Shutter`): a sample-side fast shutter; the TDR cites Arinax Colibri (<5 ms) and Innospexion (<10 ms) reference designs. -- **Slip ring** (Family `SlipRing`, not yet in the catalog): 30 to 40 channels for continuous-rotation acquisition up to 1000 rpm. - -Optional modules the TDR anticipates (a horizontal-rotation loading rig for in-situ mechanics, a kHz tomography module) are not yet modelled; they join as confirmed. - -## Nanotomography endstation (~49 m) - -The high-resolution station: the KB mirror pair focuses the undulator beam for 200-nm-class cone-beam imaging. - -- **KB pair** (Family `Mirror`): Kirkpatrick-Baez fixed-curvature graded-multilayer focusing mirrors at ~49 m, focal spot 205 x 196 nm at 30 keV. Reused from the `Mirror` Family; the focusing-vs-steering distinction is a setting, not a Family split. -- **Sample manipulator** (granite support + a six-axis stack): the TDR specifies it in full (Table 9.5), conceptually like the microtomography endstation but about ten times more precise. It reuses the same Families, not a `NanoPositioner` of its own: a tilt (`TiltStage`, Tilt X), coarse X/Y/Z translations (`LinearStage`: Xt, Yt, and a long-travel Zt that brings the rotation axis into the KB focus), a continuous rotary (`RotaryStage`, Rot y), and fine Xs/Zs centring (`LinearStage`). The rotary is the critical axis: its Abbe error from wobble and eccentricity must not exceed 100 nm at 100 mm sample height. Each axis names a "(target)" model carried pending procurement (NANO-1). - -The KB pair and the sample manipulator are the only nano-specific hardware; the shared beam delivery and detector serve both stations. - -See [Open questions](../questions.md) for the model bindings still to confirm and [Inventory](../inventory.md) for the Asset tree. diff --git a/docs/deployments/tomowise/equipment/index.md b/docs/deployments/tomowise/equipment/index.md index 725b128abb..5429d78f41 100644 --- a/docs/deployments/tomowise/equipment/index.md +++ b/docs/deployments/tomowise/equipment/index.md @@ -1,17 +1,24 @@ # The beamline -*How TomoWISE's areas relate, as designed.* +*The TomoWISE beamline as five areas you can jump to: the three stations the beam passes through, plus the controls that drive them and the resources they draw on. Design-phase.* -TomoWISE delivers one beam to two experiment stations that share a detector. The beam path runs in three stages, the same source / sample / detection spine every CORA beamline inherits. +The beamline divides into two kinds of thing. Along the beam, in order, sit the three **stations**: the [Source](../beamline.md) that delivers and conditions the beam, the [Sample](sample.md) stage that places the specimen in it, and the [Detector](detector.md) that records what comes through. Cutting across all three are the two shared concerns: the [Controls](controls.md) that drive the hardware, and the resources the beamline draws on. Two access-gated hutches contain it: an optics hutch (sources, front end, optics) and an experiment hutch (both endstations and the detector). -- [Source](../beamline.md): the shared beam delivery. Two switchable insertion devices (CPMU14 undulator, 3T3PW wiggler) feed a front end of fixed and movable masks and a heat absorber, then an optics hutch of filters (CVD diamond, power-filter and metal-filter units) and a multilayer monochromator (MLM), then the safety shutters. The operation mode selects source, filters, and whether the MLM and KB optics are in the beam. -- [Endstations](endstations.md): two sample stations. The microtomography station (~45 m) carries the rotary stage, sample positioning, laminography tilt, sample-side slits and fast shutter, and a slip ring for continuous rotation. The nanotomography station (~49 m) adds the KB mirror pair for 200-nm-class cone-beam imaging and a TDR-specified six-axis sample manipulator on a granite support (models pending procurement). -- [Detector](detector.md): one gantry on 7 m floor rails serves both stations (45 m to the 52 m hutch wall), carrying interchangeable microscopes (MicLFOV, MicHR) and cameras (four design-target sensors). +The stations are containment trees of apparatus (`Asset.parent_id`); controls relate to that apparatus sideways, by `controller_id`, and a resource is a Supply in its own right. So the list reads as one row of peers, but the first three share an axis the last two cross. -Cutting across all three: +## Stations + +- [Source](../beamline.md): the shared beam delivery. Two switchable insertion devices (CPMU14 undulator, 3T3PW wiggler) feed a front end of masks and a heat absorber, then an optics hutch of filters and a multilayer monochromator (MLM), then the safety shutters. The operation mode selects source, filters, and whether the MLM and KB optics are in the beam. +- [Sample](sample.md): the sample stage, two stations sharing the detector. The microtomography station (~45 m) carries the rotary stage, sample positioning, laminography tilt, sample-side slits and fast shutter, and a slip ring; the nanotomography station (~49 m) adds the KB mirror pair and a six-axis sample manipulator on a granite support. +- [Detector](detector.md): one gantry on 7 m floor rails serves both stations (45 m to the 52 m hutch wall), carrying interchangeable microscopes (MicLFOV, MicHR) composed as the `Microscope` Assembly, and four shared cameras. + +## Shared - [Controls](controls.md): the MAX IV Tango/Sardana control stack and the rotary-stage-master trigger scheme. +- Resources: the continuously-available supplies a run needs (photon beam, cooling water, vacuum); carried in the descriptor, with no operations page yet in this design phase. + +## Reference -Two access-gated hutches contain the beamline: an optics hutch (sources, front end, optics) and an experiment hutch (both endstations and the detector). Their PSS permit signals are MAX IV facility signals, not yet named (see [Open questions](../questions.md)). +The cross-cutting view that spans every area: -For the full planned device list and the values still pending confirmation, see the [Inventory](../inventory.md). +- [Inventory](../inventory.md): the full planned CORA Asset model (every device by `parent_id`, with Families, target Models, and pending confirmations). The hutch PSS permit signals are MAX IV facility signals, not yet named (see [Open questions](../questions.md)). diff --git a/docs/deployments/tomowise/equipment/sample.md b/docs/deployments/tomowise/equipment/sample.md new file mode 100644 index 0000000000..30b4e740fd --- /dev/null +++ b/docs/deployments/tomowise/equipment/sample.md @@ -0,0 +1,40 @@ +# Sample + +*The TomoWISE sample stage. Design-phase; values are TDR design targets.* + +The sample stage is two experiment stations in the experiment hutch, sharing one [Detector](detector.md) gantry: a microtomography station (~45 m) and a nanotomography station (~49 m). They are modelled as two sample-stage groups in the [descriptor](../inventory.md), each presenting the specimen to the beam in a different way. Models named "(target)" are the TDR design selections, carried unbound until procurement confirms them. + +## Microtomography endstation (~45 m) + +The workhorse station: a fixed sample table about 45 m from the source carrying the rotation and positioning stack. The `Rotary` stage is also the trigger master clock (see [Controls](controls.md)). + +| Device | Family | Target model | Design spec (TDR) | +| --- | --- | --- | --- | +| `SampleTable` | `Table` | (in-house) | fixed at 45 m, surface 390 mm below the beam; Xt +/-100 mm, Yt +50/-150 mm, beta tilt 1.2 deg | +| `Rotary` | `RotaryStage` | RT100AX (STAGE-1) | 1200 rpm, 1 mdeg, TTL encoder 3600 pulses/rev; trigger master clock | +| `SamplePositioning` | `LinearStage` | XY150B-12 (STAGE-2) | Xs/Zs centring, +/-6 mm per axis, 0.1 um | +| `LaminographyTilt` | `TiltStage` | (target) | 25 deg tilt for laminography, distinct from tomography rotation | +| `SampleSlit` | `Slit` | (target) | 50 x 5 mm aperture; JJ X-ray IB-C50-air reference design | +| `FastShutter` | `Shutter` | (target) | sample-side fast shutter; Arinax Colibri (<5 ms) / Innospexion (<10 ms) references | +| `SlipRing` | `SlipRing` | (target) | 30 to 40 channels for continuous-rotation acquisition up to 1000 rpm | + +Optional modules the TDR anticipates (a horizontal-rotation loading rig for in-situ mechanics, a kHz tomography module) are not yet modelled; they join as confirmed. + +## Nanotomography endstation (~49 m) + +The high-resolution station: the KB mirror pair focuses the undulator beam for 200-nm-class cone-beam imaging. The sample manipulator is a six-axis stack on a granite support, conceptually like the microtomography endstation but about ten times more precise; it reuses the same Families (no `NanoPositioner` of its own). The rotary is the critical axis: its Abbe error from wobble and eccentricity must not exceed 100 nm at 100 mm sample height. Each axis names a "(target)" model carried pending procurement (NANO-1). + +| Device | Family | Target model | Design spec (TDR Table 9.5) | +| --- | --- | --- | --- | +| `KB` | `Mirror` | (target) | KB pair, fixed-curvature graded-multilayer; focus 205 x 196 nm @ 30 keV, 196 x 80 nm @ 45 keV | +| `NanoGranite` | `Table` | (target) | granite support housing the KB optics, the manipulator, and the detector stage | +| `NanoTilt` | `TiltStage` | Huber 5202.80 | Tilt X, 2 deg, 5 mdeg; aligns the rotation axis to the beam | +| `NanoCoarseX` | `LinearStage` | Huber 5101.20 | Xt coarse, 50 mm; CoR alignment + flat field | +| `NanoCoarseY` | `LinearStage` | Huber 5103.A20-90 | Yt coarse, 50 to 100 mm; sample height | +| `NanoCoarseZ` | `LinearStage` | Zaber X-LDQ-AE | Zt long-travel, 250 to 300 mm, <0.5 um; into the KB focus, then toward the detector | +| `NanoRotary` | `RotaryStage` | RT100AS | Rot y, continuous, 1 mdeg, eccentricity <100 nm, TTL 3600/rev | +| `NanoSamplePositioning` | `LinearStage` | XY150B-12 | Xs/Zs centring, +/-6 mm, 0.1 um | + +The KB pair and the sample manipulator are the only nano-specific hardware; the shared beam delivery and detector serve both stations. + +See [Open questions](../questions.md) for the model bindings still to confirm and [Inventory](../inventory.md) for the Asset tree. diff --git a/docs/deployments/tomowise/index.md b/docs/deployments/tomowise/index.md index d84e11162d..a8c67f942f 100644 --- a/docs/deployments/tomowise/index.md +++ b/docs/deployments/tomowise/index.md @@ -20,7 +20,7 @@ The systems in three areas the beam passes through, plus the controls that drive Along the beam, in order: - [Source](beamline.md): the beam delivery shared by both endstations (insertion devices, front-end masks, optics-hutch filters and multilayer monochromator, safety shutters), rendered as the generated source-stage device walk. -- [Endstations](equipment/endstations.md): the two experiment stations, microtomography (~45 m) and nanotomography (~49 m, KB-focused), and the sample environment each carries. +- [Sample](equipment/sample.md): the two experiment stations, microtomography (~45 m) and nanotomography (~49 m, KB-focused), and the sample environment each carries. - [Detector](equipment/detector.md): one detector gantry on 7 m rails serving both stations, with interchangeable microscopes and cameras. Cutting across all three: diff --git a/docs/deployments/tomowise/inventory.md b/docs/deployments/tomowise/inventory.md index a2810cb7dc..d5b0f65c5b 100644 --- a/docs/deployments/tomowise/inventory.md +++ b/docs/deployments/tomowise/inventory.md @@ -2,7 +2,7 @@ *The CORA Asset model for TomoWISE: the planned device tree and what still needs confirming.* -TomoWISE is in the design phase, so this is the planned Asset shape, not a registered inventory. It is the cross-cutting reference view of the [Source](beamline.md) walk and the [endstation](equipment/endstations.md) and [detector](equipment/detector.md) pages. The shape is generated-honest: it is authored from the same [`beamline.yaml`](https://github.com/xmap/cora/blob/main/deployments/tomowise/beamline.yaml) descriptor that the Source page renders from. +TomoWISE is in the design phase, so this is the planned Asset shape, not a registered inventory. It is the cross-cutting reference view of the [Source](beamline.md) walk and the [Sample](equipment/sample.md) and [Detector](equipment/detector.md) pages. The shape is generated-honest: it is authored from the same [`beamline.yaml`](https://github.com/xmap/cora/blob/main/deployments/tomowise/beamline.yaml) descriptor that the Source page renders from. Devices bind to catalog [Families](../../catalog/families.md). Only one vendor Model is bound: the Optique Peter microscope optics (`optique_peter_micrx080`, reused from 2-BM, pending confirmation); the remaining "(target)" models named in the TDR are carried as open questions, not bindings, because part numbers are not yet procured. Control handles are omitted because MAX IV runs Tango/Sardana and the names are not yet assigned. diff --git a/mkdocs.yml b/mkdocs.yml index 9b99ab3103..14473e0ad1 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -113,7 +113,7 @@ nav: - The beamline: - deployments/tomowise/equipment/index.md - Source: deployments/tomowise/beamline.md - - Endstations: deployments/tomowise/equipment/endstations.md + - Sample: deployments/tomowise/equipment/sample.md - Detector: deployments/tomowise/equipment/detector.md - Controls: deployments/tomowise/equipment/controls.md - Inventory: deployments/tomowise/inventory.md