Skip to content

v0.26.0

Choose a tag to compare

@GernotMaier GernotMaier released this 08 Jan 15:41
· 2148 commits to main since this release
088b7a1

This release of simtools, the simulation toolkit for the CTA Observatory, includes the following main changes:

API Changes

  • Changes in the environment variables set in the .env file.

    Added explicit setting of the simulation software branches:

    • CORSIKA: e.g., SIMTOOLS_CORSIKA_PATH=/workdir/simulation_software/corsika7
    • sim_telarray: e.g., SIMTOOLS_SIMTEL_PATH=/workdir/simulation_software/sim_telarray

    Added explicit setting of the interaction models:

    • high-energy interaction model: e.g., SIMTOOLS_CORSIKA_HE_INTERACTION=qgs3
    • low-energy interaction model: e.g., SIMTOOLS_CORSIKA_LE_INTERACTION=urqmd

    For images generated before this change, it is enough to set one single variable:

    SIMTOOLS_SIMTEL_PATH=/workdir/sim_telarray/sim_telarray

    (#1917)

  • Change in naming of simtools docker images:

    • CORSIKA image is called e.g. ghcr.io/gammasim/corsika7:0.26.0-78010-avx512f
    • sim_telarray image is called e.g. ghcr.io/gammasim/sim_telarray:0.26.0-<sim_telarray version>
    • simtools-dev image is called e.g. ghcr.io/gammasim/simtools-dev:latest (safe to use the latest tag here)
    • simtools-prod image is called e.g. ghcr.io/gammasim/simtools-prod:0.26.0-corsika<corsika version>-<avx flag>-simtel<sim_telarray version>

    (#1954)

  • Changed path to sim_telarray to SIMTOOLS_SIM_TELARRAY_PATH (from SIMTOOLS_SIMTEL_PATH). Requires changes by the users to their .env files. (#1957)

New Features

  • Add integration tests for newly added flasher types MSFx-NectarCam, MSFx-FlashCam, LSFN-design, LSFS-design. (#1817)

  • Improve handling of model parameters with output schema definition: introduce a legacy model parameter handler. (#1910)

  • Allow output of flasher angular distribution tables for Lambertian distribution. (#1916)

  • Refactoring the image building process (CORSIKA/sim_telarray/simtools):

    • separate images for CORSIKA and sim_telarray
    • simtools image combined both plus adds for the development image the QGSJet tables
    • main directory changed to /workdir/simulation_software/ with e.g.
      • /workdir/simulation_software/corsika
      • /workdir/simulation_software/sim_telarray
    • simulation software packages pulled from git repositories
      • CORSIKA7 from KIT gitlab and CORSIKA build configuration from CTAO gitlab
      • sim_telarray, hessio, and stdtools from CTAO gitlab
    • new build process for CORSIKA7 using coconut and configuration files

    (#1917)

    • Introduce central settings module for configuration args, db_config, and path definitions.
    • Use new settings.config``for simtel_pathusage through all modules.
    • Introduce corsika_path and corsika_he_interaction , corsika_le_interaction settings to indicate CORSIKA installation path and interaction models.
    • Ensure backwards compatibility to legacy simtools images for paths and build opts configuration files.

    (#1921)

  • Allow to fill and plot simulated event distributions from both CORSIKA and sim_telarray output files.
    Add simple plotting application simtools-plot-simulated-event-distributions. (#1934)

  • Use adjustText for the labels in the array layout plot to avoid overlapping labels. (#1937)

  • Improved functionality to plot Cherenkov photon distributions read from CORSIKA IACT files:

    • allow to compare distributions from different files
    • additional 1D and 2D distributions with improved plotting
    • several bug fixes in relation of weighting and density calculation

    This includes a complete refactoring of the class with focus on plotting.

    (#1939)

  • Add building workflow for simtools-prod image.
    Update docker files and building workflows for CORSIKA, sim_telarray, and simtools.
    Simplify package naming. (#1954)

  • Add integration test run to updated production image building. Reuse existing integration tests and simplify building steps. (#1955)

  • Improved version and build info handling:

    • simtools application prints at startup now the simtools, database, CORSIKA, and sim_telarray versions
    • simtools applications output full build information for log level DEBUG
    • added two new command line options:
      • --build_info to print detailed build information of the application
      • --export_build_info EXPORT_BUILD_INFO export build information to file (json or yaml format)
    • removed applications simtools-print-version (above functionality replaces it)
    • Changed path to sim_telarray to SIMTOOLS_SIM_TELARRAY_PATH (from SIMTOOLS_SIMTEL_PATH). This is consistent with the naming of the simulation software packages and the schema values.

    (#1957)

Maintenance

  • Integrate the new unified flasher pulse shape parameter flasher_pulse_shape (now a 3-element list [shape, width_ns, exp_decay_ns]). (#1900)
  • Allow test_generate_production_grid.py::test_convert_altaz_to_radec_and_coordinates to xfail due to intermittent network issues. (#1914)
  • Add logfile pattern checks for full flasher simulations, update integration test files and add a pulse shape mapping. (#1924)
  • Replace db_config by settings.config.db_config throughout all modules. (#1927)
  • Moved simtel_io_event_* modules to sim_events submodule and renamed eventio_handler to file_info.
    Updated imports and class names across dependent modules to reflect generalized event file handling. (#1936)
  • Add ERA (Found commented-out code) to ruff configuration (used with precommit). (#1942)
  • Add PERF settings to ruff (used by pre-commit) for improved maintainability. (#1943)
  • Update pylint configuration to be more aligned with SonarQ requirements. (#1944)
  • Move and rename application simtools-write-array-element-positions-to-repository to simtools-maintain-simulation-model-write-array-element-positions.
    Add integration and unit tests. (#1958)
  • Minor code quality improvements reported by GitHub Code QL. (#1959)
  • Fixed failing unit tests for test_visualize by adding missing plt.close(). (#1967)

Simulation model

  • Change default simulation models version to 0.12.0. (#1918)