Skip to content
Snippets Groups Projects
Select Git revision
  • 1205c1b54eb3d2f4ee3110d6579a95be2f3c9419
  • master default protected
  • npsim
  • pr/lowQ2_benchmark
  • pr/diffractive_vm_campaign
  • status-no-github-sha
  • this-epic-sh
  • this-epic.sh
  • pr/u_channel_sweger
  • pi0_and_photon
  • revert-49e6bc61
  • neutron_in_insert
  • sebouh137-patch-1
  • physics_benchmarks
  • pr/dis_snakemake
  • pr/kinematics_correlations_ak_num
  • pdf-report
  • master-patch-9d2b
  • TA-work-branch2
  • TA-work-branch
  • truth_reconstruction
21 results

physics_benchmarks

  • Clone with SSH
  • Clone with HTTPS
  • user avatar
    Dmitry Kalinkin authored
    1205c1b5
    History
    user avatar 1205c1b5

    Physics Benchmarks for the EIC

    Mirror and Trigger EICweb pipeline status

    Documentation Links

    Adding new benchmarks

    See the benchmarks/diffractive_vm directory for a basic example. Note currently the reconstruction is far from perfect.

    Pass/Fail tests

    • Create a script that returns exit status 0 for success.
    • Any non-zero value will be considered failure.

    See common_bench for details.

    Running Locally

    Local development example

    Here we setup to use our local build of the juggler library.

    git clone https://eicweb.phy.anl.gov/EIC/benchmarks/physics_benchmarks.git && cd physics_benchmarks
    git clone https://eicweb.phy.anl.gov/EIC/benchmarks/common_bench.git setup
    source setup/bin/env.sh && ./setup/bin/install_common.sh
    source .local/bin/env.sh && build_detector.sh
    mkdir_local_data_link sim_output
    mkdir -p results config
    

    Repositories and Workflow

    Repositories

    The collaboration uses the EIC group on eicweb which contains the subgroups detectors and benchmarks.

    The main software components locally developed are:

    The key collaboration/user code repositories are:

    Pipelines and Artifacts

    The SWG leverages gitlab's CI/CD features heavily in our workflow. Here are some simplified explanations of these.

    Pipeline

    A pipeline is an automated set of jobs/scripts that are triggered by certain actions, such as pushing a merge request or merging into the master/main branch of a repository. Typically there is one pipeline per repository but there can multiple and a pipline can trigger downstream pipelines ("child" pipelines) or it can be triggered by an upstream pipeline. They can also be triggered manually.

    The graph below show some of the downstream pipeline triggers (arrows) between different repositories.

    graph TD;
      epic[ePIC<br>eic/epic]-->db[Detector Benchmarks<br>eic/detector_benchmarks];
      db-->rb[Reconstruction Benchmarks<br>eicweb:benchmarks/reconstruction_benchmarks];
      db-->pb[Physics Benchmarks<br>eic/physics_benchmarks];
      eicrecon[EICrecon<br>eic/EICrecon]-->container[EIC container/eic-shell<br>eic/container];
      container-->db;

    Note that on any change to the detectors will cause all the benchmarks to be run.

    "OK, pipelines run automatically. What is the big deal?"

    Artifacts

    All pipeline jobs have "artifacts" which are just selected files that are saved and can be downloaded individually or as a zip file.

    Note artifacts are not the output data which is far too big. Artifacts are small files such as images, plots, text files, reports, etc.

    Artifacts can be browsed via the web interface, for example, the latest in reconstruction benchmark results in the summary job can be browsed.