The EICUG Software Working Group is working on physics and detector simulations that enable for the Yellow Report Initiative a quantitative assessment of the measurement capabilities of the EIC detector(s) and their physics impact. The common simulation tools and workflow environment being setup by the working group allow the EICUG to pursue Yellow Report studies in a manner that is accessible, consistent, and reproducible to the EICUG as a whole.


The EICUG Software Working Group will start to announce software updates, known bugs, and other software related news on the mailing list. While summaries of the announcements will be shared on and the monthly newsletter, we encourage all working groups to subscribe to the


We are preparing JupyterHub resources at BNL and JLAB that will allow you to run the EIC Software in the cloud and to easily share your analyses with other users. A prototype is being tested at JLAB.

Support us to support you better

The common simulation tools and workflow environment can only grow with user input. The EICUG Software Working Group asks interested users to join our support team to ensure fast response to user requests. This is an ideal opportunity to learn more about the software and its development.


The tutorials for fast and detector full simulations are available on the EICUG YouTube channel

Uproot and Awkward Array Tutorial
Advanced Fast Simulations Tutorial

Software Update

In our first Software News, updates on eic_smear and ESCalate are included. Further updates on these and other packages will be in future newsletters.


Legacy version (1.0.3-final) The version used for the EIC White Paper (with a minor fix and some new tests) was fixed to 1.0.3-final for preservation.

Yellow Report versions (1.0.4+) The current version, tentatively named 1.0.4-RC, has a few impactful updates:

  1. The code was made compliant to C++17, the latest stable C++ standard.
  2. A bug was found and fixed that translated negative smeared values into NaN. This affects only a small phase space, mostly for very small phi values, but it is nevertheless recommended to update at your earliest opportunity and check for differences in your studies.
  3. Calculations for x and y according to the Jacquet Blondel method can produce a slew of warnings because values slightly smaller than 0 or larger than 1 are generated through roundoff errors. This is fixed.
  4. Testing and Q&A macros have been added in the tests/ directory.

In the works:

ESCalate framework

A lightweight modular fast and full simulation framework for EIC.

Previously separate packages, G4E and eJana, are now distributed as the ESCalate framework. ESCalate brings together Monte Carlo event generators, eic-smear for fast simulations, G4E for full detector simulations, as well as JANA2 and eJana for reconstruction.

The structure of the ESCalate framework is shown below. Part of ESCalate are ejpm for distributing the software and a variety of smaller tools. In addition to tutorials, examples for Geant4 detectors, eJANA plugins for reconstruction and physics analyses, and analyses in JupyterLab are provided.

ESCalate provides modularity in two ways:

  1. Subpackage modularity: Each package inside the framework can be used solely and separately from the rest of the framework.
  2. Subprocess modularity: JANA2 (and eJana) modularize code in small libraries called plugins allowing to run tasks in a seamless multithreaded way.

The framework itself ensures that data between packages is consistent and output of one package can be correctly read from another. ESCalate provides Python orchestration to facilitate the configuration of each package and allow for a workflow between the packages.

About the Software Working Group

Please see our website for more information about the Software Working Group and engage in the discussion on our mailing list. For software questions, please see our tutorials, contact us via, or join our Slack channel (see QR code below).