Tomography plan family (promoted from hex-ob) - #78
Draft
Anthony Sligar (sligara7) wants to merge 12 commits into
Draft
Tomography plan family (promoted from hex-ob)#78Anthony Sligar (sligara7) wants to merge 12 commits into
Anthony Sligar (sligara7) wants to merge 12 commits into
Conversation
…async version. Add classes for Filters and Monochromater. Add plan for changing energies, with auto-tuning of the second crystal pitch
- detectors/kinetix.py: HEXKinetixDetector (+ make_kinetix for Det:1/Det:3) with the HEX workarounds baked in: SWMR off, no flush-now (locks the plugin at HEX), 60 s HDF close for network storage, live-view stop on stage / restart on unstage, NumCaptured-reset race fix at prepare. HEXProcPluginIO adds the recursive-filter (frame averaging) and flat-field fields to Proc1:. SettablePathProvider / set_output_dir let plans retarget the output directory per scan. - detectors/panda.py: make_panda (HDFPanda, settable path provider). - tests/detectors/test_kinetix.py: device tests under mock. Existing modules (germ, phantom) untouched. The tomography plan family that drives these devices follows as its own PR.
…module it was ported from (from PR review)
One module per legacy pyepics tomography script, driving the detectors from the kinetix/panda modules (detectors and motors passed as arguments): scan_1d, take_radiograph, take_dark_flat, alignment_scan, tomo_flyscan (+ frame-averaged variant), the batch runners (+ 2D and averaged variants), reset_detector, enable_flat_correction; plus plans/shutter.py helpers. tests/plans/test_tomography_plans.py runs a representative slice end-to-end under mock devices; the exhaustive behavioral suites (including the simulated-beamline tier) stay with the sim in NSLS2/hex-ob. The Phantom plan family is deliberately not included: it needs reconciling with this package's PhantomDetector surface first (the enums already match; the writer/hdf attribute naming and driver surface differ).
Anthony Sligar (sligara7)
force-pushed
the
tomography-plans
branch
from
August 13, 2026 14:40
30e42ed to
e47ef80
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #77 (which is stacked on #76): this PR's own commit adds the plan layer only — 16 files, all new; the diff includes the parent PRs' commits until they merge, then collapses.
One module per legacy pyepics tomography script (
hex-acq-pyepics/techniques/tomography/kinetix/), driving the detectors from #77 with detectors and motors passed as arguments:scan_1d,take_radiograph,take_dark_flat,alignment_scantomo_flyscan+tomo_flyscan_average(PandA-triggered; Proc-plugin recursive-filter averaging)run_multiple_scans,run_multiple_2d_scans+ averaged variants (dark/flat cadence, restore behaviors)reset_detector,enable_flat_correction;plans/shutter.pyhelperstests/plans/test_tomography_plans.pyruns a representative slice end-to-end under mock devices (pytest tests/on the stack: 65 passed). The exhaustive behavioral suites, including the simulated-beamline tier, stay with the sim in NSLS2/hex-ob.The Phantom plan family is deliberately not included: it needs reconciling with this package's
PhantomDetectorsurface first (the enums already match; the writer/hdfattribute naming and driver surface differ). It follows as its own PR.