Source¶
The incident beam, produced, conditioned, and defined before the sample. A walk along the source-stage devices; the sample and detection stages are documented as their own composed-fixture pages, the controllers that drive these devices are on the Controls page, and the supplies they draw on are in Operations. Each device pairs its human name with the EPICS handle, its key specs, and whether it is field replaceable. new marks a device not yet modeled in CORA; confirm marks a value taken from the docs that staff have not yet verified.
Generated from the descriptor
This page is generated from the descriptor at deployments/2-bm/beamline.yaml. Edit the descriptor, not this page. For the CORA Asset model, settings, vendor catalog, drawings, and wiring, see Inventory.
| Property | Value |
|---|---|
| Facility | aps |
| Sector | Sector 2 |
| Tier | Unit |
| Drawing | (ICMS, A342-RT1000, 02) |
| Source | bending-magnet (confirm: post-APS-U multi-dipole fan, ~5.4 mrad) |
| Z span | 24020 to 56764 mm (confirm) |
Enclosures¶
| Enclosure | Role | Facility | Permit signal |
|---|---|---|---|
2-BM-A |
optics-hutch | aps |
S02BM-PSS:StaA:SecureM |
2-BM-B |
experiment-hutch | aps |
S02BM-PSS:StaB:SecureM |
Front end¶
Where the beam enters and first gets gated.
Enclosure: 2-BM-A.
Note
The source devices are modelled as a flat set of Device Assets on the 2-BM Unit, not a Fixture: no Conditioner Role earns its place here (a mirror, a slit, and a filter share no common primitive verb), so unlike the Sample and Detector stages there is no Assembly to present a Role. See the Catalog on Roles and Affordances.
| Name | Family | PV | Key specs | Replaceable | Status |
|---|---|---|---|---|---|
source |
Beam |
bending magnet, recorded as a Supply, not an Asset | new |
||
Mask |
Mask |
passive water cooled z mm: 24020 vendor designation: M3-24 rss tag: 02-BM-A-F-01 aperture mm: 44.4, 4.5 material: OFHC copper drawing: ICMS 4102020101-240000 rev (-) Fixed front-end exit mask (M3-24), the permanent beam-defining aperture ~24 m from the source that the white-beam alignment routine centres on (item_012). Aperture 44.4 x 4.5 mm H x V, OFHC copper, water-cooled (ALIGN-2). Registering it as a child Asset rides with the passive-beam-path Window slice. |
|||
new |
|||||
FrontEndWindow |
Window |
passive be thickness total: 0.63 mm Three OFHC-housed Be windows on the 02-BM beam path, registered as per-window child Assets. Source APS_2191941 (post-APS-U) rows 5/8/9. |
|||
| yes | |||||
FrontEndShutter |
Shutter |
S02BM-PSS:FES |
front-end safety shutter, gated by the personnel safety system; opened at session start and kept open throughout for optics thermal stability, not toggled per scan (BEAM-1) | new confirm |
|
vacuum_isolation |
Vacuum |
BIV: 2bm:BIVgate_valves: GV1, GV2, GV3 |
valve open or closed state read as Supply status | new confirm |
FrontEndWindow constituents
| Name | Family | PV | Key specs | Replaceable | Status |
|---|---|---|---|---|---|
Window_W4_20 |
Window |
passive material: beryllium, 0.25 mm z mm: 28718 aperture mm: 120, 15 drawing: ICMS 4105090804-200000 |
|||
Window_W4_60 |
Window |
passive material: beryllium, 0.13 mm z mm: 30804 aperture mm: 25, 120 drawing: ICMS 4105090804-600000 |
|||
Window_DS |
Window |
passive material: beryllium, 0.25 mm z mm: 32417 aperture mm: 8.8, 145 drawing: ICMS 4102020106-400000 |
Conditioning optics¶
Shape the beam and pick its energy.
Enclosure: 2-BM-A.
| Name | Family | PV | Key specs | Replaceable | Status |
|---|---|---|---|---|---|
ConditioningSlit |
Slit |
x_in: 2bma:m14x_out: 2bma:m13y_top: 2bma:m15y_bot: 2bma:m16 |
via FrontEndDrivevirtual pv: {'h_size': '2bma:Slit1Hsize', 'h_center': '2bma:Slit1Hcenter', 'v_size': '2bma:Slit1Vsize', 'v_center': '2bma:Slit1Vcenter'} z mm: 25225 position tolerance: dx=dy=250 um, dz=5 mm white beam water cooled APS L3-20 four-blade slit (X+ outboard 2bma:m13, X- inboard 2bma:m14, Y+ up 2bma:m15, Y- down 2bma:m16); the Size/Centre calc records drive both blades of a pair together (calc records hosted on ioc2bmb1 despite the 2bma: prefix). Reference drawing L3200000-03. Names, structure, z, and tolerances confirmed BEAM-5 (#141). |
||
Filter |
Filter |
upstream_paddle: 2bma:m17downstream_paddle: 2bma:m18 |
via FrontEndDrivefoils upstream: 1 mm C, 150 um Al, 600 um Al, 1 mm Al, None foils downstream: 600 um Al, 150 um Al, 300 um C, 50 um C, None Two paddles, each modelled as a Filter_FoilSelector_* PseudoAxis facet with its own index_position_table calibration (test_2bm_filter_foil_setup.py). The upstream paddle (2bma:m17) is the operational filter selector today; the downstream (2bma:m18) failed 2026-06-19 (parked 107.19 mm, motor cannot actuate), modelled condition Faulted with its bindings retained (lifecycle stays Active). m18 is not expected to be repaired soon, so m17 is the sole operational selector. Unit mm (caget 2bma:m18.EGU); materials/positions per docs2bm + 2filter_setup.adl (FOIL-1/FOIL-2). |
||
DiagnosticFlag |
Screen |
2bma:m44 |
via FrontEndDrivez mm: 32500 Motorized phosphor beam-viewing flag (the staff "diagnostic flag", item_006 / item_020): a vertical insert on 2bma:m44, on its own floor-referenced stand in 2-BM-A at z=32500 (FLAG-1, staff-confirmed). Raised into the beam in Mono at an energy-dependent height (the staff energy_move_flag table) and parked out (Y=0) in Pink; the Y is modelled as the energy-tracked DiagnosticFlag_Y PseudoAxis (test_2bm_energy_curves_setup.py). User offset: user = dial - 5 mm. |
||
Mirror |
Mirror |
downstream_y: 2bma:m2upstream_y: 2bma:m5stripe_select: 2bma:m3 |
via FrontEndDrivematerial: Si length: 0.993 m water cooled stripes: {'label': 'a', 'coating': '5 nm Pt single-layer', 'serves': 'Mono (m3 1.0) + Pink 30 keV (m3 3.039)', 'note': 'broadband; Pt critical-angle cutoff ~21 keV'}, {'label': 'b', 'coating': 'W/Si x50', 'd_spacing_nm': 6.57, 'serves': 'Pink 40 keV (m3 13.0)'}, {'label': 'c', 'coating': 'W/Si x50', 'd_spacing_nm': 4.76, 'serves': 'Pink 50 keV (m3 39.0)'}, {'label': 'd', 'coating': 'W/Si x50', 'd_spacing_nm': 3.93, 'serves': 'Pink 60 keV (m3 49.0)', 'note': 'needs coordinated mirror-table X extension to 29 mm (m1mox/m1m2x = 2bma:m1/m4), deferred per 2bm-docs#171'} per docs2bm + MIRROR-1/MODE-3 the stripe selector (2bma:m3) is energy- and mode-dependent, NOT a free discrete pick. It is held at stripe a (m3 about 1.0) in Mono, and swept per Pink energy (30 -> 3.039, 40 -> 13.0, 50 -> 39.0, 60 -> 49.0 mm). CORA models this as the Mirror_StripeReachX PseudoAxis facet (a constant Mono curve plus a swept Pink sibling energy_position_curve, test_2bm_energy_curves_setup.py); the named-stripe-to-position map is the stripes list above. The coordinated mirror-table X move (m1mox/m1m2x = 2bma:m1/m4) that stripe d at 60 keV needs stays deferred (MirrorTable virtual_pose axes, 2bm-docs#171); the mirror angle itself is constant 2.615 mrad across all modes and energies. |
||
| yes | confirm |
||||
MirrorTable |
Table |
2bma:table1 |
support motors: M0X, M0Y, M1Y, M2X, M2Y, Z (along beam) geometry: SRI support table (table_full IOC); virtual record 2bma:table1 in operational use (STAGE-7); carries the Y3-30 mirror. X axes (M0X=2bma:m1, M2X=2bma:m4) driven by the energy-change IOC for stripe selection. The M1Y support-motor slot is a known IOC substitution error (mapped to the in-vacuum stripe-selector 2bma:m3, not a table Y); bind only the table-X surface until 2bm-docs#171 is fixed. AX=pitch, AY=yaw, AZ=roll (STAGE-9). |
confirm |
|
Monochromator |
Monochromator |
bragg_arm_upstream: 2bma:m30bragg_arm_downstream: 2bma:m31m2_offset_y: 2bma:m32crystal2_z: 2bma:m8 |
via FrontEndDrivematerial: Si multilayer crystal z mm: 29335, 29934 dmm insertion: {'motors': ['2bma:m26', '2bma:m27', '2bma:m29'], 'inserted_mm': 0.0, 'retracted_mm': -10.0, 'active': 'inserted'} stripes: {'period_angstrom': 24.0, 'layer_pairs': 200}, {'period_angstrom': 13.8, 'layer_pairs': 150} active stripe: 24.0 Energy is set by the energy-change IOC as a discrete coordinated move: saved per-energy positions for the whole DMM are stored (store_0) and driven together to a configured set of energies (Mono 13.374, 13.574, 18.0, 20.0, 25.0, 25.584 keV). The per-energy DMM axes are the Bragg arms (bragg_arm_upstream/downstream) and the M2 vertical offset compensator (m2_offset_y); crystal2_z (M2 Z) is a setup translation the IOC does NOT drive. The m25-m29 tank/alignment motors ARE in the coordinated move but are re-asserted at fixed values, not varied per energy (staff-confirmed ENERGY-5: m25/m28 are constant alignment X in both modes, m26/m27/m29 are two-state in-beam vs retracted by mode), so CORA carries energy curves for the Bragg arms and m2_offset_y alone. CORA models each per-axis relationship as a continuous curve interpolating the saved points. Two beam modes (MODE-1): in Mono the DMM is inserted (the per-energy axes above); in Pink the DMM Y motors drive out (about -10, beam passes straight through) and the Bragg arms park, with the mirror coating stripe setting the high-energy cutoff. Pink configured energies: 30, 40, 50, 60 keV. The insert/bypass mechanism is confirmed (MODE-2, #261): the three DMM Y motors m26/m27/m29 drive to 0 (in, Mono) or -10 mm (out, Pink) together within the one coordinated energy-change move, with no special sequencing and no software interlock. CORA records this two-state position as the dmm_insertion setting above; the coordinated mode-switch move that drives it stays deferred with the Pink positions and stripe map (MODE-3, MIRROR-1). Source: docs2bm item_020. |
||
confirm |
|||||
AlignmentCamera |
Camera |
2bma:m21 |
via FrontEndDriveSemi-permanent A-station beam-view camera (FLIR Oryx 5MP, IOC 2bmbOryx5MP on host lyra) on a vertical stage 2bma:m21. Permanently installed but rarely engaged (annual / multi-year, for major realignment): the beam reaches it only when an operator manually breaks vacuum and removes an upstream pipe section. A distinct unit from the B-station microscope Camera; exact part likely ORX-10G-51S5M, pending operator confirmation (ALIGN-1). The rare-engagement is a note, not a new lifecycle state. |
||
new confirm |
Beam defining and safety¶
Admit the beam to the experiment hutch and reshape it.
Enclosure: 2-BM-B.
Note
The P6-50 stack sits physically AFTER the optics above (z 33343), but it is grouped here by function (safety), not by strict z-order. That exception is deliberate and called out rather than silently reordered. The P6-50 stack, including the SBS shutter, is assigned to 2-BM-B: it is the safety stack that gates the experiment hutch, so its devices are located_in 2-BM-B.
| Name | Family | PV | Key specs | Replaceable | Status |
|---|---|---|---|---|---|
SafetyStack |
SafetyStack |
z mm: 33343 | new confirm |
||
SampleSlit |
Slit |
y_top: 2bma:m9y_bot: 2bma:m10x: 2bma:m11, 2bma:m12 |
via FrontEndDrivevirtual pv: {'h_size': '2bma:Slit2Hsize', 'h_center': '2bma:Slit2Hcenter', 'v_size': '2bma:Slit2Vsize', 'v_center': '2bma:Slit2Vcenter'} z mm: 50500 position tolerance: dx=dy=250 um, dz=5 mm APS L3-20 four-blade slit at the sample-hutch entrance; reuses the A-side class. The vertical pair also tracks the per-energy beam position (see the SampleSlit_Vertical* PseudoAxes). Names, structure, z, and tolerances confirmed BEAM-5 (#141). CAVEAT: on the 2slit.adl screen the horizontal "Inb"/"outboard" labels are FLIPPED vs the physical direction (the detector image is mirrored left/right), so bind 2bma:m11/m12 to the X+/X- blades by PHYSICAL convention (positive X outboard), NOT the on-screen label. Reference drawing L3200000-03. |
||
BeamPositionMonitor |
Diagnostic |
mono-mode only, held out of beam in pink mode | new confirm |
||
Aperture |
Aperture |
via ApertureFineDrivez mm: 51300 Coded-aperture mask stepped through positions in the beam for compressive-sensing / dithered-sampling tomography, fine-positioned in X/Y by ApertureFineDrive (two NV200D units via a nanoSXY 120 CAP flexure). Registered identity-only: the spatial code pattern and any beam-effect (encoded transmission) are deferred with the path reserved, per the passive-beam-path tier discipline. Distinct from Slit (a variable four-blade opening) and Mask (a fixed passive aperture): this is a fixed-pattern mask actively positioned. |
|||
new |
SafetyStack constituents
| Name | Family | PV | Key specs | Replaceable | Status |
|---|---|---|---|---|---|
StationShutter |
Shutter |
S02BM-PSS:SBS |
material: W 21 mm aperture mm: 60.0, 44.5 drawing: ICMS 41050401-410003 rev (-) This SBS is the operator-side "fast shutter" at 2-BM-B (no separate fast actuator exists today). TomoScan cycles it closed for dark and white (flat) fields and open for projections, many times per scan; open before a run starts (operator-opened at session start). No separate FastShutter Asset is modelled (BEAM-1). |
||
| yes | confirm |
||||
BeamStop |
BeamStop |
passive water cooled |
new |
||
Collimator |
Collimator |
passive | new |
||
Baffle |
Baffle |
passive | new |