Skip to content

MIRROR-1: yes to both details in the description #259

Description

@decarlof

MIRROR-1: yes to both — 2bma:m3 is held at one fixed position in Mono (m3 = 1.0 mm, stripe a Pt, all 6 Mono energies) and swept per energy in Pink (m3 = 3.039 / 13.0 / 39.0 / 49.0 at 30 / 40 / 50 / 60 keV, with coordinated table-X at 60 keV); stripe-to-position map below (inferred from Bragg λ = 2d sin θ cross-check; operator confirmation pending)

MIRROR-1: All three sub-questions answered yes, with a concrete stripe-to-position map.

(1) Mono mode — held at one fixed position

From the live energy2bm.json store_0 (decarlof/energy fork, per ENERGY-3 / cora#252), all 6 Mono-calibrated energies carry identical mirror-side positions:

Mono energy m3 (m1_horizontal) m1mox / m1m2x (table X) m1angl m1avg
13.374 → 25.584 keV (all 6) 1.0 mm 8.0 / 8.0 mm 2.615 mrad 0.0 mm

So the mirror is held in a fixed configuration in Mono — the IOC re-asserts the same five values on every Mono energy change, the DMM downstream is what does the per-energy monochromatic selection. The held stripe is a (Pt single-layer) per the stripe-to-position map below.

(2) Pink mode — swept per energy

Pink-mode values vary per energy for m3 and (at the highest energy) table X:

Pink energy m3 (m1_horizontal) m1mox / m1m2x (table X) m1angl m1avg
30.000 3.039 mm 8.0 / 8.0 2.615 mrad 0.0
40.000 13.0 mm 10.0 / 10.0 2.615 mrad 0.0
50.000 39.0 mm 10.0 / 10.0 2.615 mrad 0.0
60.000 49.0 mm 29.0 / 29.0 mm 2.615 mrad 0.0

Mirror angle (m1angl = 2.615 mrad) is constant across all 10 calibrated energies — Mono and Pink — so the per-energy variation in Pink mode is purely a lateral substrate translation (m3) plus a coordinated table-X extension at the highest energy.

Per ENERGY-5 / cora#254: the DMM lateral X motors (m25 / m28) are NOT involved in stripe selection (they're alignment positions); the mirror's m3 IS the stripe selector.

(3) Stripe-to-position map

Cross-checked the four m3 positions against the Bragg resonance condition λ = 2d sin θ at the operational pink-mode mirror angle (m1angl = 2.615 mrad):

Stripe Coating d-spacing m3 [mm] Table X [mm] Pink calibrated energy Bragg-calc resonance
a 5 nm Pt single-layer n/a (single layer) 1.0 (Mono) / 3.039 (Pink 30) 8.0 All 6 Mono + Pink 30 Pt critical-angle cutoff ≈ 21 keV at 2.615 mrad; broadband below cutoff
b W(1.2 nm) / Si(5.37 nm) × 50 6.57 nm 13.0 10.0 Pink 40 36.1 keV (slight detuning from 40 keV)
c W(1.2 nm) / Si(3.56 nm) × 50 4.76 nm 39.0 10.0 Pink 50 49.8 keV (clean match)
d W(1.2 nm) / Si(2.73 nm) × 50 3.93 nm 49.0 + table-X coord 29.0 Pink 60 60.3 keV (clean match)

The Bragg-resonance values matching the calibrated energies to within ~10% (and within 1% for stripes c and d) is strong evidence for the stripe assignments. Stripe a is used both for Mono (held) and Pink 30 keV (just slightly past the Pt critical-angle cutoff, presumably operating in the Pt-reflectivity rolloff band). The Pt → stripe b → c → d sequence walks up in energy as expe
cted for a multilayer mirror selector.

Operator confirmation worth getting:

  • Visual confirmation that m3 = 1.0 mm puts stripe a in the beam, m3 = 13 mm puts stripe b, etc.
  • Stripe widths and the inter-stripe spacing on the substrate (would explain the 10/26/10 mm jumps in m3).
  • Whether the slight detuning at 40 keV (calc 36 keV vs calibrated 40 keV) is intentional (perhaps the operator picked a working-point on the multilayer reflectivity curve rather than the peak).

NOT freely operator-selectable

The cora question asks whether stripe selection is "a freely-selectable discrete pick" — operationally, no. The energy-change IOC re-asserts the calibrated m3 value on every energy change (see ENERGY-3 / cora#252); the table determines which stripe sits at which (mode, energy) tuple. Switching to a different stripe at a given energy me
ans either:

  • Adding a new calibrated energy at the target stripe via energy add --energy <value> (per ENERGY-8 / cora#257 and the follow-up comment on cora#256).
  • Manually driving m3 outside the energy-change flow (operationally rare; would also need a compatible mirror angle and possibly recalibration of the downstream DMM if in Mono).

CORA-side application

Cora's existing assumption ("energy/mode-dependent stripe; held in Mono, swept in Pink; no stripe → position map on file") is structurally correct; this ticket fills in the position map:

  • Mode-dependent stripe selector axis: model m3 as the active stripe selector. In Mono, the value is constant (1.0 mm); in Pink, it's a 4-point per-energy curve. Same shape as the per-energy axes for m30 / m31 / m32 (DMM Bragg arms / M2 Y) — see ENERGY-1 / cora#249.
  • Coordinated table-X: m1mox / m1m2x (mapped onto 2bma:m1 and 2bma:m4) need to be modelled together with m3 for the Pink 60 keV case — they jump from 10.0 to 29.0 mm coordinated with the m3 = 49.0 move.
  • Stripe-to-position map as a static field on the M1 Asset: each stripe a / b / c / d with its d-spacing, the m3-range it occupies (~3.039 for a / ~13 for b / ~39 for c / ~49 for d, ± stripe half-width), and the calibrated energy it covers in Pink. This is the analogue of how cora modelled the DMM stripe geometry in ENERGY-6 / cora#255.
  • Mirror angle (m1angl) constant at 2.615 mrad: not a per-energy variable for the mirror itself (the per-energy "angle" is encoded in the DMM Bragg arms downstream in Mono; in Pink there's no per-energy angle change at all — the stripe selection IS the per-energy degree of freedom).

Downstream alignment

The Mirror M1 in-vacuum stripe selector block in item_020.rst (latest commit pending) now carries:

  • The 4-stripe definitions (already present).
  • A new "Stripe-to-position map" sub-section with the table above (m3 + table-X values per stripe per mode, plus the Bragg-calc cross-check).
  • Explicit Mono-vs-Pink behaviour annotations.
  • A note that the selection is NOT freely operator-selectable at run time.

Cross-references

  • ENERGY-3 / cora#252 — saved-table mechanism (the m3 values per Pink energy are stored in energy2bm.json store_0 and loaded on every energy change).
  • ENERGY-5 / cora#254 — DMM m25 / m28 are NOT stripe selectors (cora's parenthetical was on the DMM side; the stripe selector is on the Mirror, this issue).
  • ENERGY-6 / cora#255 — DMM substrate has its own two stripes (13.8 / 24 Å), independent question from the mirror stripes here.
  • ENERGY-8 / cora#257 — calibration-via-energy-add mechanism (how to add a new (mode, energy, stripe) calibrated point if needed).
  • [MODE-3 / cora#TBD] — the cora question parallel to this one but framed as a beam-mode rather than mirror-stripe question; same Pink-mode m3 + table-X data.

Net

MIRROR-1 answer: yes to both — stripe held in Mono (m3 = 1.0, stripe a Pt, across all 6 Mono energies) and swept per energy in Pink (m3 walks 3.039 → 13.0 → 39.0 → 49.0 at 30 / 40 / 50 / 60 keV, with coordinated table-X kicking in at 60 keV). Selection is calibration-table-driven (re-asserted at every energy change), not freely operator-selectable at run time.
Stripe-to-position map confirmed via Bragg resonance cross-check at θ = 2.615 mrad mirror angle.

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