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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions