Procedures
Structured, cora-consumable recipes for operations on 2-BM hardware.
Each page in this section documents one procedure end-to-end:
preconditions, typed parameters, atomic steps, postconditions, and
known failure modes. The structure is deliberately rigid so that
every page maps cleanly onto a cora Method definition (see
cora: Method.parameters_schema,
Plan.wiring, the Procedure BC).
For the human-narrative walkthrough — which buttons to push on which MEDM, how to read the screen, when to call the floor coordinator — keep using the Operation pages. A procedure page may link to its ops counterpart but should not duplicate it.
For the underlying hardware (PV names, intrinsic specs, kinematic chain), see Beamline components.
Current procedures
Procedure template —
Procedure template. Canonical skeleton for new procedure pages (Name / Devices / Preconditions / Parameters / Steps / Postconditions / Failure modes). Copy this file asitem_NNN.rstto start a new procedure.Detector Z-rail alignment to the beam —
detector_z_rail_alignment. Walks the Optique Peter detector along its 1 m PRO225SL Z rail with a small square X-ray aperture defined by the B-station slits, fits the centroid drift, and uses the detector optical table (2bmb:table3.AX/.AY) to rotate the rail back parallel to the beam. Open trigger for aDetectorTableAsset (coraTableFamily) on the cora side.Centre and close an L3-style slit aperture —
centre_and_close_slits. Drives an L3-style slit (--slit-station AorB) so the beam image sits at the centre of the detector frame, then incrementally closesHsize/Vsizeto a target (default 0 = fully closed). Two-phase: calibrate + iterate centring onHcenter/Vcenterfirst, then sequential H / V size reduction. Operator typically follows with manual rezeroing of the four virtual motors to define a new origin. Open trigger for a per-stationSlitAsset on the cora side.Calibrate the throw of each L3 slit blade motor —
calibrate_slit_blade_throw. Diagnostic procedure that drives each of a station’s four blade motors by±blade_throw_mmfrom baseline, measures the bbox edge shift of the bright spot on the detector, and reports per-bladepixels-per-mmslopes. Flags same-axis spread and V/H mean-ratio mismatches to identify mis-calibrated blade motors. No deliberate output – all blades restored to baseline. Open trigger to extend the per-stationSlitAsset with per-blade calibration fields on the cora side.NV200D triggered-step buffer programming —
nv200_trigger_step. Loads the per-axis coded-aperture position list (default 256, max 1024 positions per axis) into both Piezosystem Jena NV200D/NET controllers via Telnet and arms them so each rising edge on TRG IN advances to the next position in the buffer.--randomselects compressive-sensing dithered sampling (the current operational mode);--linspace(default) gives an evenly-spaced raster. Run once at session setup or whenever the random list needs regenerating; controllers then drive themselves frame-by-frame from the FPGA trigger for the rest of the session. Targets the twoCodedApertureFineDrive_X/_YAssets and the coded- aperture XY flexure stage on the cora side.Energy characterization (channel-cut crystal) —
energy_characterization(STATUS: STUB). cora-Procedure- shaped abstraction over the channel-cut crystal energy-calibration recipe. The operator mounts a removable Si channel-cut crystal (2d = 3.84 Å, consistent with Si (220), 36 × 3 mm) on the 2-BM-B sample-rotation stage in place of the sample, runs a rocking-curve scan around the calculated Bragg angle, fits the peak, and computes the measured energy + offset from the DMM nominal setting. Full operator-facing recipe at Energy calibration; broader alignment context (where this fits in the white → pink → mono workflow) at Bluesky. The formal 2bm-procedures script implementation is pending; this is cora’senergy_characterizationProcedure target with the channel-cut crystal as a removable-reference-standard Subject.Beamline alignment (white -> pink -> mono) —
align_beamline(STATUS: STUB). cora-Procedure-shaped abstraction over the three-phase beamline alignment workflow: phase 1 white-beam centring (M1 / DMM dropped out), phase 2 pink-beam tuning (M1 at 2.618 mrad), phase 3 mono-beam DMM setup (DMM Y stages + Bragg arms +M2 Ycalibrated, target arm angle 1.25° at energy nominal). Optionally chained with the Energy characterization (channel-cut crystal) channel-cut calibration as a final step to verify absolute energy. Full operator-facing recipe with screenshots at Beamline alignment. Procedure granularity (one Method with three phases vs three separate Methods) is a design decision deferred to formal implementation. Natural cora session-start Method for the 2-BM deployment.
Stub procedures
These pages exist so the precondition graph of Detector Z-rail alignment to the beam has named targets to link to. Each is a STUB — the procedure is named, its Postconditions field declares which state it would satisfy, and the rest is TBD until the procedure is implemented.
Enable beamline for beam —
enable_beamline. Satisfiesbeamline_enabled.Set A-station slit aperture —
set_a_slits. Satisfiesa_slits_open.Set energy to preselect —
set_energy_to_preselect. Satisfiesenergy_configured. Two-path procedure: exact-match pre-calibrated energy uses theenergy2bm.jsonstore_0row directly; off-table energy uses linear interpolation between the two bracketing calibrated energies. Both paths are already live in the deployeddecarlof/energyfork (a fork ofxray-imaging/energyreconciled periodically via PR; deployment lives at/home/beams/2BMB/epics/synApps/support/energy/). The formal 2bm-procedures wrapper is pending; the operator will validate the linear-interp assumption per motor when writing it.Move flag into beam (mode-dependent) —
set_flag_in. Satisfiesflag_in_beam. (Flag is2bma:m44in Beamline components; energy-dependent target Y from energy2bm.json.)Open B-shutter (P6-50 Safety Shutter) —
open_b_shutter. Satisfiesb_shutter_open.Set B-station slits for alignment —
set_b_slits. Satisfiesb_slits_configured.Move sample out of beam —
move_sample_out_of_beam. Satisfiessample_out_of_beam.Configure microscope for alignment —
configure_microscope_for_alignment. Satisfiesmicroscope_configured.