Skip to content

feat(p01): scaffold PETRA III Site + the P01 dynamics beamline, reverse-engineered#426

Merged
xmap merged 1 commit into
mainfrom
worktree-petra-p01-deployment
Jun 29, 2026
Merged

feat(p01): scaffold PETRA III Site + the P01 dynamics beamline, reverse-engineered#426
xmap merged 1 commit into
mainfrom
worktree-petra-p01-deployment

Conversation

@xmap

@xmap xmap commented Jun 29, 2026

Copy link
Copy Markdown
Owner

Summary

  • Scaffolds PETRA III (DESY) as a new CORA Site (deployments/petra-iii/site.yaml) and P01 as its first beamline (deployments/p01/beamline.yaml), CORA's second Tango / Sardana control floor after MAX IV.
  • Reverse-engineered from P01's own public OnlineXML device registry (online_haspp01eh{1,2,3}.xml on gitlab.desy.de), extracted with the scripts/reverse_engineer/ --source onlinexml path from feat(reverse-engineer): add DESY OnlineXML source for PETRA III device topology #423, then curated: the registry's 141 per-axis devices grouped into Assets at stage granularity across five hutches (two optics OH1/OH2, three experiment EH1 NRS / EH2 diffraction / EH3 RIXS). Every value carried confirm.
  • Full docs/deployments/p01/ page tree (index, techniques, model, inventory, governance, questions, equipment/{index,sample,detector,controls}) + nav + deployments index entry.

Context

P01 introduces two genuinely new things and reuses everything else:

  • Control plane (CTRL-1): PETRA III runs Tango + Sardana, so the seam "EPICS is the floor" generalizes to "Tango / Sardana is the floor" (sibling of the ESRF BLISS floor). First deployment whose handles were read from a DESY OnlineXML registry.
  • Technique branch (TECH-1): nuclear resonant scattering + RIXS earn no catalog Method; carried pending on the Site reusing the inelastic_x_ray_scattering / resonant_inelastic_scattering slugs the fleet already shares.

P01 coins no new Family. One binding worth review: the EH2 sample circle is modelled as a Goniometer Asset (not the composed Diffractometer Assembly) since the registry exposes only theta / two-theta, following the catalog's own TARDIS E6C guidance (DIFF-1).

Test plan

  • pytest tests/unit/deployments/ — 557 pass (descriptor validation, loose-family guard, docs coverage, open-questions alignment)
  • make docs-build (mkdocs build --strict) clean; generated Site page, beamline.md Source walk, and nav all render
  • No new catalog Family or Method; no em dashes / emoji in source

🤖 Generated with Claude Code

…ine, reverse-engineered

P01 is CORA's first PETRA III (DESY) beamline and its second Tango / Sardana
control floor after MAX IV. It is reverse-engineered from P01's own public
OnlineXML device registry (the online_haspp01eh{1,2,3}.xml Tango device list on
gitlab.desy.de), extracted with the scripts/reverse_engineer/ --source onlinexml
path landed in #423, then curated: the registry's 141 per-axis devices grouped
into Assets at stage granularity across the five hutches (two optics, three
experiment), every value carried confirm until DESY staff verify it.

Two things are genuinely new: the control plane (Tango + Sardana, the seam
"EPICS is the floor" generalizes to "Tango / Sardana is the floor", a sibling of
the ESRF BLISS floor), and the technique branch (nuclear resonant scattering +
RIXS, which earn no catalog Method and are carried pending on the Site reusing
the IXS / RIXS slugs the fleet already shares). P01 coins no new Family: the EH2
sample circle binds Goniometer (not the composed Diffractometer Assembly) since
the registry exposes only theta / two-theta, per the catalog's own guidance.

557 deployment unit tests pass; mkdocs build --strict is clean.

Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Coverage report

This PR does not seem to contain any modification to coverable code.

@xmap xmap merged commit c3e410c into main Jun 29, 2026
16 checks passed
@xmap xmap deleted the worktree-petra-p01-deployment branch June 29, 2026 13:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant