Skip to content

feat: add graphicalScan material and field scan pipeline#1106

Open
wdconinc wants to merge 8 commits into
mainfrom
wdconinc/graphical-scans
Open

feat: add graphicalScan material and field scan pipeline#1106
wdconinc wants to merge 8 commits into
mainfrom
wdconinc/graphical-scans

Conversation

@wdconinc

@wdconinc wdconinc commented May 18, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a CI pipeline that runs DD4hep's graphicalScan tool on the epic_craterlake geometry and publishes the resulting images to the GitHub Pages site at /craterlake_scans, analogous to the existing dawn views at /craterlake_views.

New files

  • .github/graphical-scan-configs.yml — documented YAML configuration file defining all scan parameters. Adding or modifying a scan requires editing only this file (no workflow changes needed).
  • bin/render_graphical_scans — Python/PyROOT script that opens the graphicalScan ROOT output, renders each TH2F slice as a PNG with a correct equal-physical-scale aspect ratio (no distortion of cylindrical geometry into ellipses), and overlays the ePIC black-transparent logo from Zenodo in the bottom-right corner.
  • reports/craterlake_scans.md — Jekyll page at /craterlake_scans.

Modified files

  • .github/workflows/linux-eic-shell.yml — four new jobs:
    • load-graphical-scan-configs: reads the YAML config and outputs matrices for the downstream jobs
    • graphical-scan: runs graphicalScan for each scan config × detector config
    • render-graphical-scans: converts ROOT output to logo-stamped PNGs
    • merge-graphical-scans: merges per-scan artifacts into epic_craterlake_scans for Jekyll
    • merge-graphical-scans added to build-artifacts-page needs
  • _config.yml — adds /craterlake_scans to the site navigation bar

Scan configurations

Label Axis X range (cm) Y range (cm) Z range (cm) Slices Bins Samples
XY Z −450 to 450 −450 to 450 −700 to 700 5 200 10
ZY X −10 to 10 −450 to 450 −700 to 700 1 200 10

Both scans use FM (field + material).

Copilot AI review requested due to automatic review settings May 18, 2026 21:27
@github-actions github-actions Bot added topic: documentation Improvements or additions to documentation topic: infrastructure Regarding build system, CI, CD labels May 18, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new CI pipeline that produces field+material graphical scans of the epic_craterlake geometry using DD4hep's graphicalScan, renders the resulting TH2F slices to logo-stamped PNGs, and publishes them to a new /craterlake_scans page on the project's GitHub Pages site, mirroring the existing /craterlake_views dawn-view pipeline.

Changes:

  • New YAML config (.github/graphical-scan-configs.yml) driving the scan matrices and a four-job pipeline (load configs → run graphicalScan → render PNGs with ePIC logo overlay → merge artifacts) wired into build-artifacts-page.
  • New bin/render_graphical_scans Python/PyROOT script that preserves equal physical scale on both axes and composites a transparent ePIC logo into the bottom-right corner.
  • New Jekyll page reports/craterlake_scans.md and corresponding header entry in _config.yml.

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
.github/graphical-scan-configs.yml Declarative scan definitions (XY, ZY) and detector configs consumed by the new workflow jobs.
.github/workflows/linux-eic-shell.yml Adds load-graphical-scan-configs, graphical-scan, render-graphical-scans, and merge-graphical-scans jobs and adds the merge job to build-artifacts-page needs.
bin/render_graphical_scans Python script that downloads the ePIC logo and renders TH2F slices from the graphicalScan ROOT output to aspect-correct PNGs.
reports/craterlake_scans.md Jekyll page listing the produced PNGs at /craterlake_scans.
_config.yml Adds the new page to the site navigation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/linux-eic-shell.yml
Comment thread .github/workflows/linux-eic-shell.yml
Adds a CI pipeline that runs DD4hep's graphicalScan tool on the
epic_craterlake geometry and publishes the resulting images to the
GitHub Pages site at /craterlake_scans, analogous to the existing
dawn views at /craterlake_views.

New files:
- .github/graphical-scan-configs.yml: documented YAML file that
  defines all scan parameters (axis, ranges, slices, bins, samples).
  Adding a new scan requires editing only this file.
- bin/render_graphical_scans: Python/PyROOT script that opens the
  graphicalScan ROOT output, renders each TH2F slice with an
  equal-physical-scale aspect ratio (no distortion of cylindrical
  geometry), and overlays the ePIC white-transparent logo from
  Zenodo (https://zenodo.org/records/14058463) in the bottom-right
  corner of every image.
- reports/craterlake_scans.md: Jekyll page at /craterlake_scans.

Modified files:
- .github/workflows/linux-eic-shell.yml: four new jobs:
  load-graphical-scan-configs, graphical-scan, render-graphical-scans,
  merge-graphical-scans; the last is added to build-artifacts-page
  needs so images are deployed to GitHub Pages.
- _config.yml: adds craterlake_scans to the site navigation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@wdconinc wdconinc force-pushed the wdconinc/graphical-scans branch from b4697ac to ff8eb30 Compare June 6, 2026 16:52
Comment thread bin/render_graphical_scans Outdated
Add functionality to suppress non-zero values for lambda/X0 histograms.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

topic: documentation Improvements or additions to documentation topic: infrastructure Regarding build system, CI, CD

Development

Successfully merging this pull request may close these issues.

2 participants