Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions deployments/2-bm/beamline.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,10 @@ conditioning-optics:
inserted_mm: 0.0 # Mono: DMM Y motors in, crystals in the beam
retracted_mm: -10.0 # Pink: DMM Y motors out, beam passes straight through
active: inserted # current operational state
stripes: # ENERGY-6 (#255): the DMM substrate carries two W-B4C/Si multilayer stripes (5 nm Cr adhesion), 4 mm apart, 140 x 44 mm each; stripe choice is one-time setup, NOT per-energy, so no selector is modeled (item_021)
- { period_angstrom: 24.0, layer_pairs: 200 }
- { period_angstrom: 13.8, layer_pairs: 150 }
active_stripe: 24.0 # period (angstrom) of the in-beam stripe; inferred from Bragg-arm geometry (all 6 Mono energies cluster at d~24A, ENERGY-1). The 13.8A stripe is never calibrated into store_0; switching = a 4 mm lateral substrate move + a full recalibration, not part of any current move (m25/m28 are constant alignment X in both modes, ENERGY-5)
confirm: true
note: >
Energy is set by the energy-change IOC as a discrete coordinated move:
Expand Down
2 changes: 1 addition & 1 deletion docs/deployments/2-bm/inventory.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ Configured Mono energies (the curve x-points, real): 13.374, 13.574, 18.0, 20.0,
- Slit aperture is held constant at 20 mm; only the centre tracks the beam walk (non-monotonically). The centre and aperture are modelled as derived axes: `SampleSlit_VerticalCenter` (`Aggregation` `MidRange`) and `SampleSlit_VerticalAperture` (`Aggregation` `Difference`) over the two blades. `Aggregation` is one-way (computed from constituents), so they are read-only views. The rules declare the relationship; binding the two specific blades via constituent port wiring (the hexapod-pose pattern) is deferred with the rest of the per-facet conduct wiring.
- DMM insert/bypass (MODE-2): the DMM is physically inserted in Mono and retracted in Pink. This two-state, mode-keyed position is NOT a per-energy curve; it is the `dmm_insertion` setting on the `Monochromator` (closed enum `inserted` | `retracted`, the `Table.axis_layout` pattern), with the three DMM Y motors (`2bma:m26` / `m27` / `m29`, driven together to `0` in / `-10` mm out) documentary in `beamline.yaml`. The coordinated move that drives it is the deferred `beam_mode_change` (MODE-3 / MIRROR-1).
- Not energy axes: `crystal2_z` (M2 Z, `2bma:m8`) is a setup translation the IOC does not drive; the mirror is held constant in Mono. Neither carries a Mono curve.
- DMM lateral stripe not yet modelled: substrate has two multilayer periods (13.8 / 24 angstrom) on stripes 4 mm apart; upstream/downstream X motors (`2bma:m25` / `2bma:m28`) may select per energy band. Operator-facing selection vs fixed setup is open (`ENERGY-6`).
- DMM substrate stripe is a one-time setup, not a per-energy selector (ENERGY-6, settled): the substrate carries two W-B4C/Si multilayer stripes (periods 24 and 13.8 angstrom, 4 mm apart), recorded as the `Monochromator` `stripes` list with `active_stripe=24.0` in `beamline.yaml`. The 24 angstrom stripe is the in-beam one (inferred from Bragg-arm geometry); the 13.8 angstrom stripe is never calibrated into `store_0`. The lateral X motors `2bma:m25` / `2bma:m28` are constant alignment positions in both modes (ENERGY-5), not stripe selectors, so CORA models no DMM stripe-selector axis. Switching stripes would be a 4 mm lateral move plus a full recalibration, outside any current move.
- Curves carry the REAL saved `store_0` positions (ENERGY-1/2, FLAG-1): full 6-energy Mono curves plus parked Pink curves. Runtime `eval_lookup_table` is wired; out-of-range refuses (`extrapolation_kind=Error`, staff-confirmed ENERGY-4: the inter-mode band 25.584-30 keV is not bridgeable by interpolation).
- Recalibration updates these curves in place: the `energy_characterization` Procedure (channel-cut rocking curve, item_022) re-saves the corrected positions as a new revision of the affected `energy_position_curve`, `MeasuredSource`-cited, preserving the prior revision as history. There is no separate energy offset (`ENERGY-8`).

Expand Down
3 changes: 1 addition & 2 deletions docs/deployments/2-bm/questions.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,11 +98,10 @@ The NV200D/NET piezo (now `ApertureFineDrive`) fine-positions the coded `Apertur

## Energy and the optics

On an energy change the DMM monochromator, its Bragg arms, and the tracking slits move together to saved per-energy positions (now recorded). The remaining items cover the multilayer stripe selection and the channel-cut calibration crystal.
On an energy change the DMM monochromator, its Bragg arms, and the tracking slits move together to saved per-energy positions (now recorded). The remaining item covers the channel-cut calibration crystal.

| ID | Priority | Question | CORA assumes | Already done? | Resolves |
| --- | --- | --- | --- | --- | --- |
| ENERGY-6 | `Nice-to-have` | Per the [DMM page](https://docs2bm.readthedocs.io/en/latest/source/ops/item_021.html) the monochromator substrate carries two multilayer stripes with different periods (13.8 and 24 angstrom, 4 mm apart). Is the active stripe selected per energy by a lateral crystal translation (the upstream / downstream X motors `2bma:m25` / `2bma:m28`, today folded into `ENERGY-5`), and which stripe serves which energies in the Mono menu (13.374 to 25.584 keV)? If it is an operator-facing per-energy selection rather than a fixed setup, CORA would model it as a named DMM stripe selector, the monochromator counterpart of the mirror coating stripe (`MIRROR-1`). | two stripes exist; no DMM stripe / d-spacing selector modelled; `2bma:m25` / `2bma:m28` lateral X carried only as unframed alignment motors | not yet | [Energy-tracking optic axes](inventory.md#energy-tracking-optic-axes) |
| ENERGY-7 | `Nice-to-have` | Is energy calibration via a channel-cut crystal current 2-BM practice, and which crystal (its lattice spacing 2d; the [calibration page](https://docs2bm.readthedocs.io/en/latest/source/ops/item_022.html) lists 3.84 angstrom)? Is the crystal a removable reference standard (CORA models it as a calibration Subject, like the resolution phantom) or installed equipment, and on what rotation stage is it rocked? | modelled as the `energy_characterization` Procedure with the crystal as a calibration Subject; current practice, crystal, and 2d unconfirmed | yes | [Procedures](procedures.md) |

## Filters and the mirror stripe
Expand Down
Loading