Skip to content

Assemblies

Reusable composition blueprints: a named cluster of Family-typed slots (cardinality-annotated), optional slot-to-slot wires, and version-pinned sub-assembly links to child blueprints. An Assembly advertises which Roles it satisfies via presents_as, at the same level a single Asset does. A beamline materializes a blueprint into specific hardware as a Fixture; that per-deployment binding lives on the beamline page, not here. The running system assigns each Assembly a content-hash identity, so two facilities that publish the same blueprint converge; this page is the human vocabulary, keyed by name.

Generated from the catalog descriptor

This page is generated from catalog/catalog.yaml. Edit the descriptor, not this page. For the naming, governance, and closed-core conventions, see the Catalog overview.

Assembly Presents as Slots Sub-assemblies Note
Optics turret (Exactly1): LinearStage; objectives (OneOrMore): Objective; objective_selector (Exactly1): PseudoAxis; propagation_distance (ZeroOrOne): LinearStage Reusable optics core: turret, objectives, virtual objective selector, and an optional propagation-distance stage. Presents nothing on its own; composed by detector Assemblies. propagation_distance is ZeroOrOne because some deployments drive propagation with a shared facility stage rather than a per-Optics rail (2-BM binds a per-microscope PropagationDistance; TomoWISE shares one detector gantry rail across both microscopes, so its microscopes leave the slot empty).
Microscope Detector camera (ZeroOrOne): Camera; scintillator (Exactly1): Scintillator optics -> Optics Full scintillator-relay detector: the Optics sub-assembly plus an optional camera and a scintillator leaf slot. Presents the Detector Role. Zero required_wires in v1. camera is ZeroOrOne because a microscope can be camera-agnostic, drawing from a shared camera pool (2-BM binds its camera per microscope; TomoWISE's two microscopes share four interchangeable cameras on one gantry, so each leaves the slot empty).
Diffractometer Positioner goniometer (Exactly1): Goniometer; detector_arm (ZeroOrMore): RotaryStage; reciprocal_space (Exactly1): PseudoAxis Composed multi-circle scattering diffractometer, presenting the Positioner Role. It COMPOSES a Goniometer (the sample-orientation circles plus x/y/z centring, one Asset), zero or more RotaryStage detector-arm circles, and a reciprocal-space PseudoAxis whose partition rule resolves the hklpy2 inverse kinematics. This is the distinction from the Goniometer Family: the Goniometer is the integrated single-device sample orienter (the I03 Smargon); the Diffractometer is the larger composed scattering instrument that USES a Goniometer and adds the detector arm and reciprocal-space layer. detector_arm is ZeroOrMore because the count is a per-deployment geometry: 8-ID's six-circle Huber binds four sample circles as the Goniometer and nu / delta as the detector arm, while a Eulerian cradle may have none. Flat (no sub-assembly), unlike Microscope. Earned in once two independent beamlines (4-ID, 8-ID) shared it.