Skip to content

feat(isr): scaffold NSLS-II ISR (4-ID) deployment, deliberately partial (optics + Eiger; mission devices deferred), reverse-engineered#399

Merged
xmap merged 2 commits into
mainfrom
worktree-isr-deployment
Jun 26, 2026
Merged

feat(isr): scaffold NSLS-II ISR (4-ID) deployment, deliberately partial (optics + Eiger; mission devices deferred), reverse-engineered#399
xmap merged 2 commits into
mainfrom
worktree-isr-deployment

Conversation

@xmap

@xmap xmap commented Jun 26, 2026

Copy link
Copy Markdown
Owner

What

Reverse-engineers NSLS-II's ISR beamline (4-ID, In Situ and Resonant hard X-ray studies) from the public bluesky profile collection (NSLS2/isr-profile-collection). ISR's mission is resonant scattering near absorption edges, surface / interface diffraction (crystal truncation rods), and in-situ sample environments.

Why partial

The public profile collection is an early / commissioning, optics-and-detectors-first scaffold. It binds the front-end slit, the IVU undulator gap (read-only), the DCM, the focusing + harmonic-rejection mirrors, the attenuator bank, the Eiger 1M, the diagnostic screen cameras, and only two end-station axes (th, zeta, under the Dif:ISD IOC). The devices that make ISR's name, the multi-circle diffractometer, the in-situ sample environment, a wired resonant energy axis, and polarization analysis, are absent or stubbed in source (the flux-monitor electrometers are even commented out, and the energy axis is a non-functional stub). So the scaffold models what is PV-bound and routes the four mission-critical gaps to open questions (DIFF-1 / INSITU-1 / RESONANT-1), the same discipline as the i20-1 (EDE) partial.

What is modelled

11 devices, all real verified PVs, every value confirm, zero new families, zero new Method slugs: the storage ring (loose StorageRing), the IVU undulator gap (InsertionDevice), the DCM (Monochromator), the bendable focusing pair + harmonic-rejection mirror (Mirror), the front-end slit (Slit), the four-foil attenuator bank (Filter), the single bound sample rotation (RotaryStage, not a multi-circle Goniometer, which is absent), the Eiger 1M + diagnostic screen cameras (Camera), and the motorized beam-position-monitor stage (loose BeamPositionMonitor). The resonant / surface-diffraction science reuses the existing pending resonant_scattering (4-ID / CSX) and diffraction (4-ID / 8-ID) Methods, doubly deferred because the diffractometer they run on is not yet in source.

Verification

  • Adversarial single-agent verify against the real source: the partial thesis is confirmed true (all four mission-device absences are real in source), family reuse / hygiene / consistency clean, 9/11 PVs exact. Fixed the two PV-leaf errors it caught (attenuator Cmd:In-Cmd -> Cmd:Opn-Cmd; front-end slit }Mtr -> the virtual-center leaf, since it's a center/gap pseudo-positioner).
  • The isr directory does not collide with the existing APS 4-id (POLAR) deployment (different facility).
  • tests/unit/deployments: 417 passed.
  • make docs-build --strict: clean.
  • Merged latest main (clean auto-merge with the parallel-merged Diamond i13-1).

🤖 Generated with Claude Code

xmap and others added 2 commits June 26, 2026 20:18
…al (optics + Eiger; diffractometer / in-situ / resonant axis deferred), reverse-engineered

Reverse-engineer NSLS-II's ISR beamline (4-ID, In Situ and Resonant hard X-ray
studies) from the public bluesky profile collection (NSLS2/isr-profile-collection).
ISR's mission is resonant scattering near absorption edges, surface / interface
diffraction (crystal truncation rods), and in-situ sample environments.

Why partial: the public profile collection is an early / commissioning,
optics-and-detectors-first scaffold. It binds the front-end slit, the in-vacuum
undulator gap (read-only), the DCM, the focusing and harmonic-rejection mirrors,
the attenuator bank, the Eiger 1M, the diagnostic screen cameras, and only two
end-station axes (th, zeta, under the Dif:ISD diffractometer IOC). The devices
that make ISR's name (the multi-circle DIFFRACTOMETER, the IN-SITU sample
environment, a wired RESONANT energy axis, and POLARIZATION analysis) are ABSENT
or stubbed in the source (the flux-monitor electrometers are commented out, the
energy axis is a non-functional stub), so the scaffold models what is PV-bound and
routes the four mission-critical gaps to open questions (DIFF-1 / INSITU-1 /
RESONANT-1), the same discipline as the i20-1 (EDE) partial.

What is modelled (11 devices, all real verified PVs, every value confirm, zero new
families): the storage ring (loose StorageRing), the IVU undulator gap
(InsertionDevice), the DCM (Monochromator), the bendable focusing pair + the
harmonic-rejection mirror (Mirror), the front-end slit (Slit), the four-foil
attenuator bank (Filter), the single bound sample rotation (RotaryStage, NOT a
multi-circle Goniometer, which is absent), the Eiger 1M + diagnostic screen
cameras (Camera), and the motorized beam-position-monitor stage (loose
BeamPositionMonitor). Zero new families, zero new Method slugs: the resonant /
surface-diffraction science reuses the existing pending resonant_scattering (4-ID
/ CSX) and diffraction (4-ID / 8-ID) Methods, doubly deferred because the
diffractometer they run on is not yet in source.

Adversarial single-agent verify (ultracode off): the partial thesis confirmed
true in source (all four mission-device absences real), family reuse / hygiene /
consistency clean, 9/11 PVs exact; fixed two PV-leaf errors it caught (the
attenuator Cmd:In-Cmd -> Cmd:Opn-Cmd, the front-end slit }Mtr -> the virtual
center leaf). Note: dir `isr` does not collide with the existing APS `4-id`
(POLAR) deployment.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@xmap xmap enabled auto-merge (squash) June 26, 2026 17:21
@github-actions

Copy link
Copy Markdown

Coverage report

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

@xmap xmap merged commit a2d5562 into main Jun 26, 2026
16 checks passed
@xmap xmap deleted the worktree-isr-deployment branch June 26, 2026 17:30
xmap added a commit that referenced this pull request Jun 26, 2026
Resolve the append-only conflicts (NSLS-II beamline list, mkdocs nav, deployments
index row, the FlowController/BeamPositionMonitor promotion-review notes) against the
current main, which has advanced to ISR (#399).

Reconcile CDI against i13-1 (#398, merged after CDI was opened): i13-1 is the fleet's
first coherent diffractive imaging and coined the pending ptychography Method. CDI no
longer claims "first"; it is the second coherent-imaging deployment and the first at
NSLS-II / first full source-to-detector one, reinforcing i13-1's pending ptychography
Method (ptychography reuses it; forward / Bragg CDI are its single-shot variants, not
separately coined). No Practice recorded (CHX discipline). Gate: 424 deployment tests
pass, mkdocs --strict clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
xmap added a commit that referenced this pull request Jun 26, 2026
Resolve the NSLS-II beamline list, mkdocs nav, deployments index, and practices-comment
conflicts against current main (now at ISR #399 + CDI #396); PDF appends after CDI. No
content reconciliation needed: PDF is high-energy total scattering, unrelated to the
coherent-imaging cohort. Gate: 431 deployment tests pass, mkdocs --strict clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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