What CORA needs the PSI team (and PSI's documentation) to confirm before the model can be trusted.
Cristallina is modelled from PSI's open slic controls library (on gitea.psi.ch, branch master), treated as a dry, correct DATA source: the device list with PV prefixes comes from the in-repo channels/pv_channels.py, and the diffractometer and sample-environment topology from the beamline/ and crq_exp/ driver classes. That gives the device shape and the EPICS PV prefixes at high confidence. It does not give most motor units or limits, the Aramis source parameters, the PSS safety structure, or the Capability / Method binding. This page collects what slic cannot supply. It is a delete-on-answer queue: when an item is answered, the answer lands in the descriptor and the row is removed. Priorities are Blocks-build, Blocks-go-live, and Nice-to-have.
Unlike Bernina, Cristallina's device facts are in-repo (not externalized), so this is a fuller cut; the residual questions concentrate on the XFEL acquisition paradigm, the novel sample environment, and a few slic-specific provenance cautions.
Is Cristallina (or any SwissFEL station) actually intended to enter CORA scope, or is this a generalization exercise against an open controls source?
A generalization exercise: Cristallina closes the Aramis triad and tests a slic-mined deployment and a vector-magnet sample environment; it is not on the pilot roadmap.
Whether PSI is a real Site or a modelling fixture.
TOPO-1
Blocks-build
One linac and Aramis undulator line feed the Alvra, Bernina, and Cristallina stations, beam routed to one at a time. With three co-equal stations now modelled, should each be its own root Unit sharing an upstream source, and where does the shared switched source and its three-way routing state live?
One Cristallina root Unit owning its source for now; the shared, switched FEL source has no model and is carried as this question. The Supply("PhotonBeam") seam is the candidate home.
One-vs-many root Units and where the shared source and its routing state are modelled.
PSS-1
Blocks-build
What are the SwissFEL PSS search-and-secure permit signals, and the interlock for the high-field magnet?
Both enclosures exist with permit signals to be named; slic does not carry them.
The Enclosure permit signals and the magnet-safety interlock.
ENC-1
Blocks-build
Which enclosure does each device sit in? slic separates an optics hutch from an experimental hutch but does not encode the access-gated safety meaning.
The shared SAROP31 optics hutch plus the Cristallina experiment hutch.
The per-device Enclosure assignment.
MAG-1
Blocks-go-live
The DilSc vector superconducting magnet (to 5.2 T) and its liquid-helium cryogens are a personnel- and quench-safety hazard. How is the hazard gated, and what are the per-axis field ranges and control handles?
The magnet is a Clearance hazard (the ID32 precedent), and binds the graduated Magnet Family (a further consumer); the per-Asset field detail stays pending.
The magnet-hazard Clearance and the per-Asset magnet field / control detail.
What are the Aramis undulator gap tables and source size? slic carries the period (15 mm) and the K-to-energy constants but not the full source curve.
A SASE FEL undulator; per-shot photon energy (5-13 keV) is a DAQ datum, not a standing setpoint.
The Undulator source parameters.
MACHINE-1
Nice-to-have
SwissFEL is a linac, not a storage ring. How should machine beam be modelled?
A PhotonBeam Supply, not a StorageRing device; the per-shot pulse energy is read via the gas monitor.
The linac machine-state modelling boundary.
ATT-1
Blocks-go-live
The aramis_attenuator driver selects a foil combination for a requested transmission (energy-dependent). Should the deferred Attenuable + SolverReference leg graduate?
Filter for the discrete selection; the target-transmission solver is the deferred Attenuable leg. With Alvra, Bernina, and Cristallina all carrying it, the rule-of-three is well past its trigger.
Whether the transmission solver is built and where.
MONO-1
Nice-to-have
The mono is a double-channel-cut (DCCM, ODCC110), distinct from Bernina's DCM. What are the crystal and axis details, and the pink-vs-mono mode boundary (the mono screen selects out / mono / pink)?
A Monochromator Asset, used in some modes; mode and crystal details are settings to supply.
The DCCM internals and the pink-vs-mono mode model.
XREF-1
Nice-to-have
The front-end attenuator's transmission readbacks alias to SAROP31-OATT053. Is the front-end attenuator (SARFE10-OATT053) the same device read through the Cristallina-branch namespace, or two devices?
The SARFE10-OATT053 front-end attenuator is the modelled device; the SAROP31 alias is a readback, carried confirm.
Whether the attenuator readback alias is one device or two.
Endstation: diffractometers and the sample environment¶
ID
Priority
Question
CORA assumes
Resolves
DIFF-1
Blocks-go-live
The DM1 (dilution-fridge) and DM2 (pulsed-magnet) platforms compose a goniometer, a 2-theta detector arm, and base / sample translations (DM2 adds swivels). Are they correctly modelled as the graduated Diffractometer Assembly, and is DM2 currently live?
Both reuse the Diffractometer Assembly (Bernina precedent), no new Family; DM2's PV channels are commented out in slic, so it is carried as present-hardware-not-acquired (DISABLED-1).
The Assembly composition and DM2's live status.
DIFF-2
Nice-to-have
What is the PartitionRule shape for the reciprocal-space PseudoAxis?
The reciprocal-space PseudoAxis carries a partition rule like the synchrotron diffractometers'.
The reciprocal-space partition rule.
LASER-1
Blocks-go-live
The slic source has no pump-probe laser (only the X-ray alignment laser SAROP31-OLAS147); pump-probe timing is mediated by the CTA sequencer and EVR. Does Cristallina have a pump-probe optical laser in another controls layer?
No pump-probe-laser Asset is modelled in this cut; the alignment laser is a catalog Laser. Whether a pump-probe laser exists elsewhere is carried as this question.
Whether a pump-probe laser exists and where it is controlled.
DISABLED-1
Nice-to-have
Several slic drivers are instantiated but their PV channels are commented out of the active config (DM2, the SmarAct Juraj / mini stages, the Attocube, the PuMa stack, the cameras). Which are live hardware?
Carried as present-hardware-not-acquired; not modelled as live Assets in this cut.
Which disabled stages are current hardware.
ENV-1
Nice-to-have
The DilSc magnet has an alternative SECoP / Frappy driver (dilsc.psi.ch:5000) and the pulsed-magnet uses a server-side pulse-tube synchronization service (oscillations.psi.ch:8000). Are these in the operational path?
The live EPICS magnet driver is modelled; the SECoP path and the sync service are server-side and not modelled.
The SwissFEL sf-daq records a free-running bsread stream of per-shot frames tagged by pulse-ID at beam rate, correlated downstream. CORA's acquisition is a single-detector poll-to-Done loop with no pulse-ID key. How does CORA represent a DAQ run?
The Run-as-provenance-envelope is kept; the per-shot data plane lives in the SwissFEL data API, and CORA references a Dataset. A per-shot event-stream actuation axis is the gap, sketched in the design note, not built. Cristallina is the third PSI sighting.
Whether CORA gains an event-stream acquisition axis.
TIMING-1
Blocks-go-live
The CTA sequencer (SAR-CCTA-ESC) and EVR gate acquisition at beam rate and mediate the pump-probe delay. CORA's TimingController carries the device but has no typed home for an event trigger pattern. Where does the pattern parameter live?
TimingController for the device; the trigger pattern is carried as opaque setpoints until a typed parameter shape is earned.
The event-system trigger-pattern parameter model.
DIAG-1
Blocks-go-live
How are the intensity-position monitors (PBPS), the gas monitor (PBPG), and the photon single-shot spectrometer (PSSS) modelled? They present the Sensor Role.
The loose FluxMonitor and Diagnostic Sensor families reused from Alvra / Bernina / I22; per-shot intensity normalization is a DAQ-plane concern (DAQ-1).
The diagnostics modelling boundary.
DET-1
Blocks-go-live
What are the Cristallina detectors per configuration? slic binds a 1.5M Jungfrau (JF16T03V02) + a 0.5M I0 (JF20T01V01) for Q and an 8M (JF17T16V01) for MX; the human-readable labels come from a commented sf_daq_broker block. Which is in use, and its geometry?
The detectors reuse Camera; per-shot frames flow through the sf-daq data plane (DAQ-1); the active config and geometry are to supply.
The detector models, the per-config wiring, and the labels.
SAMPLE-1
Nice-to-have
What is the Cristallina-MX sample-delivery shape beyond the fast XY stage, and the Subject custody lifecycle?
Sample delivery beyond the fast stage is endstation-specific and deferred; no Family is coined.
The sample-delivery model and the Subject custody thread.
PULSE-1
Nice-to-have
The X-ray pulse picker is a fast single-pulse selector folded into Shutter. Is a rotary pulse-picking chopper a distinct Family?
Shutter Role; the Shutter-vs-Chopper distinction is carried as this question, the same one Alvra and Bernina raised.