What CORA needs the FXI team to confirm before the model can be trusted.
This model is reverse-engineered from public NSLS-II open source (the bluesky profile collection NSLS2/fxi-profile-collection and the shared NSLS2/nslsii package), so this page is long by design: the EPICS PVs are read straight from the profile collection, but vendor identities, controller boxes, physical positions, and the safety layer are not in it. Each row is a fact the beamline team or an IOC st.cmd file owns, not a CORA modelling choice. It is a delete-on-answer queue: when an item is answered, the answer lands in the descriptor and the row is removed (with the reason in the commit). Priorities are Blocks-build (needed before the model is built for real), Blocks-go-live (needed before CORA controls or observes the hardware), and Nice-to-have.
What is the 18-ID insertion device (undulator vs damping wiggler), and its period, gap, and power? Not in the profile collection.
An insertion-device source, identity-only; recorded as a PhotonBeam Supply.
The Source Asset and the InsertionDevice settings.
PSS-1
Blocks-go-live
What are the PSS search-and-secure permit-leaf PVs for hutches 18-IDA and 18-IDB? Only the PPS photon-shutter status XF:18IDA-PPS{PSh}Pos-Sts is in source.
Both hutches exist; the permit signal is a confirm note, not a guessed PV.
The Enclosure permit signals.
ENC-1
Nice-to-have
Is the XF:18ID1-ES namespace (where the Kinetix camera lives) a distinct endstation area, or part of 18-IDB?
Two enclosures (18-IDA optics, 18-IDB experiment); 18ID1-ES folded into 18-IDB.
The Enclosure set and roles.
LAYOUT-1
Nice-to-have
What are the device z positions along the beam? The profile collection carries no layout or z reference.
No z values are recorded; the device order is the source/sample/detection grouping only.
What is the DCM crystal cut (Si 111?) and the energy range?
A double-crystal monochromator; cut and range carried blank.
The Monochromator settings.
OPTIC-1
Nice-to-have
Are the two mirrors collimating (cm) and toroidal (tm) respectively? Both are the same ophyd class with no role string in source; the labels are inferred from the instance names.
The role labels are carried confirm, not asserted.
The Mirror role labels.
OPTIC-2
Nice-to-have
What are the slit blade-axis PV suffixes, and the PV prefix for the secondary-source slit (TXM_SSA)?
The white-beam slit XF:18IDA-OP{PBSL:1 is bound; the secondary-source slit is identity-only.
The Slit axes.
OPTIC-3
Nice-to-have
Should BetrandLens become a catalog Family? Condenser, ZonePlate, and PhaseRing graduated once FXI joined 32-ID as a second deployment; BetrandLens is FXI-only, so it stays a loose family tag pending a second sighting.
Loose family name that renders as text; not yet graduated.
Catalog Family graduation (Federation-scoped).
OPTIC-4
Nice-to-have
Confirm the zone-plate values: NanoTools, 244 um diameter, 30 nm outer zone width. These are code constants, not staff-verified.
The code-constant values, carried confirm.
The ZonePlate settings.
FILT-1
Nice-to-have
What are the materials and thicknesses of the eight pneumatic filter foils (relays on a Moxa ioLogik E1211)?
What is the sample translation stage (TXMSampleStage, sx/sy/sz) vendor and travel?
A LinearStage stack, identity-only.
The SampleStage settings.
STAGE-2
Blocks-go-live
What is the tomography rotary (pi_r, XF:18IDB-OP{TXM:2-Ax:R}) hardware (air-bearing vs piezo), encoder resolution, and max speed? The "PI / Physik Instrumente" reading is a naming inference.
A RotaryStage, PSO-triggered, specs blank.
The SampleRotary settings (critical for the tomography Capability).
DET-1
Nice-to-have
What are the scintillator material and thickness?
A scintillator-relay lens stage, material unknown.
The Scintillator settings.
DET-2
Nice-to-have
What is the detector-support (DetSupport, DetU/DetD) PV prefix? DetU.z is the propagation distance in the magnification calculation.
The support is recorded, PV prefix blank.
The DetectorSupport binding.
CAM-1
Blocks-go-live
Which cameras are physically installed and active? Source has Andor Neo2, Andor Marana, and Photometrics Kinetix; the U/D pairs share identical PVs (KinetixD is a placeholder reusing KinetixU's PVs). Is there a second detector position?
One detector position, bound to the live Kinetix; the rest are a roster note.
The Camera Assets and the detector Fixture.
CAM-2
Nice-to-have
What are the camera vendor part numbers? Vendor names are inferred from ophyd class names; only MARANA-4BV6X / SONA-4BV6X / KINETIX / KINETIX22 are literal in the readout config.
Vendor classes, no part numbers.
The Camera Models.
DIAG-1
Nice-to-have
What are the ion-chamber channel PV suffixes (ic1..ic4, i404 quad electrometer)?
Read-only intensity probes, suffixes blank.
The IonChamber bindings.
ENV-1
Nice-to-have
Is the Lakeshore 336 sample-environment temperature controller installed? It is disabled in source (motor_lakeshore = []).
What are the motion-controller boxes behind the EpicsMotors (model, protocol, axis count, serial, firmware, IP), and which IOC drives each device group? Confirmed not in public open source: FXI has no IOC-config repo, and its per-beamline IOC inventory (Ansible nsls2.ioc_deploy device roles + a <bl>-epics-containers repo) is ops-private. Needs FXI staff or inventory access.
Families only; box identities unknown.
The MotionController Models and the Drive identities.
ZEBRA-1
Nice-to-have
Are there two position-trigger boxes? One is instantiated; a second is referenced in the public config. What is each wired to?
One trigger box, reading the rotary as the master encoder.
Who is the FXI operator and beamline-scientist pool, and the role assignments? The public config exposes only a coarse group-level controls authority, not the human roster CORA's Access model needs.
A pending facility actor pool; CORA applies its own per-Actor authority.