Skip to content

ENERGY-6: DMM substrate carries two multilayer stripes (13.8 Å and 24 Å, 4 mm apart); details in the description #255

@decarlof

Description

@decarlof

ENERGY-6: DMM substrate carries two multilayer stripes (13.8 Å and 24 Å, 4 mm apart); the 24 Å stripe is currently active (inferred from Bragg-arm angles); stripe is NOT selected per energy — selection is a one-time setup choice; m25/m28 are NOT per-energy stripe selectors (settled by ENERGY-5)

ENERGY-6: Two answers in one — confirming the stripe geometry, identifying which is operationally active, and ruling out per-energy switching.

Substrate specs (confirms cora's existing assumption)

Cora's "two stripes, 13.8 Å and 24 Å, 4 mm apart" is right. Full canonical specs from the 2-BM DMM ops page (item_021.rst lines 70-91):

Substrate property Value
Coating W-B₄C multilayer on Si substrate, 5 nm Cr adhesion
Multilayer periods 13.8 Å and 24 Å ± <1%
Stripe dimensions 140 × 44 mm² each
Distance between stripes 4 mm
Number of layer pairs 200 (one stripe) / 150 (the other)
Roughness 2-3 Å rms
Γ 0.5

Which stripe is currently active: 24 Å (inferred from Bragg-arm data)

Applying Bragg's law λ = 2 d sin θ to the saved Bragg-arm angles (dmm_us_arm = 2bma:m30) for all six calibrated Mono energies (from ENERGY-1 / cora#249):

Energy [keV] arm angle [deg] λ [Å] Inferred d-spacing [Å]
13.374 1.1310 0.9270 23.48
13.574 1.0810 0.9134 24.21
18.000 0.8220 0.6888 24.01
20.000 0.7260 0.6199 24.46
25.000 0.5773 0.4959 24.61
25.584 0.5610 0.4846 24.75

All six values cluster around 24 Å (range 23.5 - 24.75 Å, ~5% scatter consistent with normal Bragg-arm calibration tolerance). No values are anywhere near 13.8 Å. The 24 Å stripe is unambiguously the active one for the current Mono calibration. The 13.8 Å stripe has never been calibrated into energy2bm.json and is therefore not currently in operational use.

(Caveat: arm-angle units in energy2bm.json are assumed to be degrees. The calculation above only makes sense in degrees; if the units were radians or microradians the implied d would be wildly off-scale — so the consistent d ≈ 24 Å result is itself confirmation that the units are degrees.)

Stripe selection is NOT per energy

From ENERGY-5 / cora#254: both m25 (dmm_usx) and m28 (dmm_dsx) carry the SAME value across all 6 Mono + 4 Pink calibrated energies (m25 = 111.0 everywhere, m28 = 104.0 everywhere). So whatever the stripe-selection mechanism is, it is not being driven by the energy-change IOC — the IOC re-asserts the same alignment positions a
t every move.

This means stripe selection is a one-time setup choice that the operator made at installation / commissioning, not a per-energy decision. To switch from the 24 Å stripe to the 13.8 Å stripe would require:

  1. A 4 mm lateral substrate move. The candidate motor is m25 or m28 — the substrate-geometry 4 mm offset matches what one of those motors would need to move to land the alternate stripe in the beam. But it's unconfirmed whether either of those motors actually drives lateral substrate position vs. some other tank-centering or alignment-related role. **Operator confirmation needed.
    **
  2. A separate calibration pass for the new stripe — every Bragg-arm angle and M2 Y value in energy2bm.json is currently set for d = 24 Å; for d = 13.8 Å the angles would be ~1.74× larger at the same energy (sin θ ∝ 1/d). A new Mono mode set of calibration energies would need to be added via energy add for the new stripe.

Neither of these is part of any current procedure or energy-change move.

CORA-side application

For cora's existing assumption ("two stripes exist; no DMM stripe / d-spacing selector modelled; m25 / m28 lateral X carried only as unframed alignment motors"), the recommended update:

  • Acknowledge the two stripes exist (model the DMM as carrying two MultilayerStripe substructures with the d-spacings, layer counts, and stripe-dimension fields above).
  • Mark the 24 Å stripe as active with the 13.8 Å stripe available_but_uncalibrated or similar.
  • Do NOT add a per-energy stripe-selector curve for the DMM. Unlike the M1 mirror stripe (which IS swept per Pink energy via m1_horizontal — see MODE-3 / [coming up]), the DMM stripe is a one-time setup. Cora can leave m25 / m28 as alignment motors with a single per-mode value each (per the ENERGY-5 modelling).
  • Optionally, expose a switch_dmm_stripe operation as a future cora Method once the operator confirms (a) which motor actually does the lateral substrate move and (b) the recalibration procedure for the new stripe. That Method would invalidate the existing Mono curves until the new stripe is calibrated.

This is the monochromator analogue of MIRROR-1 only in the sense that there are two stripes — but operationally the DMM-stripe choice is static, while the mirror coating selection is energy-driven (in Pink mode).

Downstream alignment

The DMM block in item_020.rst (latest commit pending) now carries a note that the substrate has two stripes, that the 24 Å is active (inferred from Bragg geometry), and that switching to 13.8 Å is operationally not part of any current move and would need both a lateral motor id
entification and a separate calibration pass.

The full substrate specs continue to live in item_021.rst (the operational DMM page); the manual entry cross-references rather than duplicating.

Cross-references

  • ENERGY-1 / cora#249 — Bragg-arm angles per Mono energy (the source data for the d-spacing inference above).
  • ENERGY-3 / cora#252 — saved-table mechanism (which stripe is active is encoded implicitly in energy2bm.json store_0 values).
  • ENERGY-5 / cora#254m25 / m28 constancy across all energies (settles the per-energy-selector hypothesis).
  • [MIRROR-1 / cora#TBD] — M1 mirror coating-stripe selection (in Pink mode this IS swept per energy via m1_horizontal; the DMM does NOT have an analogous per-energy mechanism).
  • [MODE-3 / cora#TBD] — Pink-mode per-energy mirror stripe + table-X values.

Net

ENERGY-6 answer: two-stripe DMM substrate (13.8 Å and 24 Å, 4 mm apart) is confirmed. The 24 Å stripe is currently active (inferred from Bragg-arm-angle data — all six Mono d values cluster around 24 Å). Stripe selection is NOT per energy: the choice is a one-time setup, not part of any energy-change move. m25 / m28 are alignment motors (per ENERGY-5), not stripe sele
ctors — though one of them is the candidate for a hypothetical future "switch DMM stripe" operation (4 mm lateral move + full recalibration). Cora can model the DMM as carrying two stripes with one active, without adding a per-energy stripe-selector curve.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions