Parent: #82
Scope
Wire everything together: write a YAML config for the static XES workflow, run it through the Pipeline class, and verify results match the current XESBatchAnalysisRotation.primary_analysis_static output.
Deliverables
-
Example YAML — A complete config file reproducing the XSpect_P23820.py example workflow:
experiment:
hutch: xcs
experiment_id: xcsp23820
lcls_run: 21
data:
runs: [162-181, 183-190]
keys:
tt/ttCorr: time_tool_correction
epics/lxt_ttc: lxt_ttc
enc/lasDelay: encoder
ipm4/sum: ipm
tt/AMPL: time_tool_ampl
detector_keys:
epix_1/ROI_0_area:
name: epix
rois: [[0, -1]]
combine_rois: true
pipeline:
- step: filter_shots
on: xray
filter_key: ipm
threshold: 1.0e3
- step: union_shots
on: epix
filters: [xray, xray]
- step: filter_detector_adu
on: epix
threshold: [30, 9909]
- step: hit_finding
on: epix
cutoff_multiplier: 1
- step: reduce_detector_shots
on: epix
- step: patch_pixels
on: epix
pixels: [225, 350, 351, 352, 353, 354, 355, 356, 436, 437]
mode: average
- step: rotate
on: epix
angle: 1.3
- step: reduce_detector_spatial
on: epix
rois: [[0, -1]]
combine: true
reduction:
- step: combine_runs
output:
format: hdf5
path: ./results/
-
Validation test — Run both old and new paths on the same data, compare outputs numerically.
-
model/von_hamos.py — Move vonHamos class to model layer.
Acceptance criteria
Pipeline.from_yaml("xcsp23820_static.yaml").run(cores=16, batch_size=2000) produces results matching the old XESBatchAnalysisRotation.primary_analysis_static path
- Execution log captures all step statuses
- Results saved to HDF5 at specified path
Parent: #82
Scope
Wire everything together: write a YAML config for the static XES workflow, run it through the Pipeline class, and verify results match the current
XESBatchAnalysisRotation.primary_analysis_staticoutput.Deliverables
Example YAML — A complete config file reproducing the
XSpect_P23820.pyexample workflow:Validation test — Run both old and new paths on the same data, compare outputs numerically.
model/von_hamos.py— MovevonHamosclass to model layer.Acceptance criteria
Pipeline.from_yaml("xcsp23820_static.yaml").run(cores=16, batch_size=2000)produces results matching the oldXESBatchAnalysisRotation.primary_analysis_staticpath