Skip to content

Phase 1C: Static XES end-to-end YAML execution #86

Description

@lg345

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

  1. 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/
  2. Validation test — Run both old and new paths on the same data, compare outputs numerically.

  3. 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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions