v0.26.0
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
.envfile.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)
- CORSIKA: e.g.,
-
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)
- CORSIKA image is called e.g.
-
Changed path to
sim_telarraytoSIMTOOLS_SIM_TELARRAY_PATH(fromSIMTOOLS_SIMTEL_PATH). Requires changes by the users to their.envfiles. (#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_pathandcorsika_he_interaction,corsika_le_interactionsettings 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 applicationsimtools-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_infoto print detailed build information of the application--export_build_info EXPORT_BUILD_INFOexport build information to file (json or yaml format)
- removed applications
simtools-print-version(above functionality replaces it) - Changed path to
sim_telarraytoSIMTOOLS_SIM_TELARRAY_PATH(fromSIMTOOLS_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_configbysettings.config.db_configthroughout all modules. (#1927) - Moved
simtel_io_event_*modules tosim_eventssubmodule and renamedeventio_handlertofile_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-repositorytosimtools-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_visualizeby adding missingplt.close(). (#1967)
Simulation model
- Change default simulation models version to 0.12.0. (#1918)