v0.34.0
This release of simtools, the simulation toolkit for the CTA Observatory, includes the following main changes:
API Changes
-
Changed
simtools-simulate-prodgrid-registration output handling.The command-line option was renamed from
--pack_for_grid_registerto
--grid_output_path.When
--grid_output_pathis configured, simulation products are now written as
plain files into that directory instead of creating a registration tarball.
This includes copied sim_telarray logs, CORSIKA logs, histogram (.hdata)
files, existing model archives, moved event output files, and a gzipped
simtools.log.gz. (#2320)
Bugfixes
-
Allow integration tests to run from working directories containing a pytest configuration
(see simpipe issue #34). (#2312) -
Fixes
simtools-simulate-prodjob-grid precedence by rejecting ambiguous mixes of--job_grid_file/--job_grid_rowwith explicit production parameters.- Job-grid row resolution now happens inside
simulate_prodbefore settings are loaded; the generic post-load override path was removed. - Added parser/source tracking so CLI/YAML conflicts fail clearly while argparse defaults remain valid.
- Updated tests, docs, and the integration config to cover direct single-row job-grid execution.
(#2328)
- Job-grid row resolution now happens inside
-
Resolve reading of ecsv-style tables for
simtools-validate-cumulative-psf. (#2342) -
Fixed schema validation so dimensionless integer columns in generated job grids stay integer-typed instead of being written to ECSV as floats. (#2343)
Documentation
- Improve documentation on Apptainer ORAS image tags (suffix
-apptainer). (#2317) - Add dedicated documentation pages on unit, integration and science tests plus a description on how to generate test resources. (#2338)
New Features
-
Add application to generate and validate integration test resources:
simtools-resources-test-generate.
Used for simtools-tests test generation. (#2279) -
Allow to run integration and unit tests with resources from a configurable path (
--test_resources_path).
Example:pytest -n auto --no-cov --model_version=7.0.0 \\ --test-resources-path=../simtools-tests/simtools-tests/v0.33.0/integration_tests \\ tests/integration_tests ``` ([#2283](https://github.com/gammasim/simtools/pull/2283))
-
Add generic runtime environment file option to
simtools-run-applicationandsimtools-resources-test-generate.Use
--runtime_environment_filepointing to e.g.runtime_environment: container_engine: podman image: ghcr.io/gammasim/simtools-prod:20260622-v78010-v2025-11-30-rc-generic network: simtools-mongo-network environment_file: .env options: - "--arch amd64" - "-v /<whatever path>/simpipe:/workdir/external/simpipe:ro"
(#2284)
-
Add support for running
simtools-simulate-prodwith parameters sourced directly from a production job grid ECSV file.
Allows to use--job_grid_file/--job_grid_rowto select a specific row from a job grid file to run a simulation with the parameters defined in that row. (#2291) -
Added backend-neutral parameter-scan grids for NSB and proton bias-curve simulations, with optional scan fields supported by the HTCondor submission generator. (#2298)
-
Change simulation production grid from RA/Dec based to HA/Dec based.
Simplify production grid table with less columns and more descriptive column names.
Update sim_telarray metadata to include array Az/Ze and HA/Dec information. (#2313) -
Improve
simtools-plot-corsika-limits:- correctly handle viewcone limits for cases of point-like simulations
- improve plotting by adding projections of distance and energy axes to 2D distribution panels
- set consistent limits to the axes when plotting: always use the broad-range simulation limits
(#2319)
-
Add functionality to
simtools-resources-test-generateto run a single test generation config file using the--config_fileoption.Example:
simtools-resources-test-generate --test_directory . --simtools_version v0.34.0 --overwrite_collection_files \ --config_file simtools-tests/v0.34.0/integration_tests/config_files/generate_array_config_alpha_north_5.0.0.config.yml ``` ([#2321](https://github.com/gammasim/simtools/pull/2321)) -
Enable
--runtime_environment_filesetting of run time environment (e.g., a container environment) with correct path settings for test resource generation and generic application running. (#2323) -
Introduce schema-validation for
sim_telarraymetaparameters.
To export the full metadata description including all model parameters, use applicationsimtools-export-sim-telarray-metadata-schema. (#2324) -
Add schema URL to metadata of job grid table. Add functionality to
simtools-validate-file-using-schemato read this schema from the header file. (#2327) -
Generalize the creation and use of trigger-event histograms with several major improvements:
Add a generic application,
simtools-write-trigger-histograms, to build and write trigger-event
histograms from reduced event-data files. The following applications were updated to use these
generic histograms:simtools-compare-productionssimtools-production-derive-corsika-limitssimtools-plot-simulated-event-distributionssimtools-production-derive-monte-carlo-statistics
Improve the estimation of required Monte Carlo statistics in
simtools-production-derive-monte-carlo-statisticsby using the generic histograms and by
providing a more robust estimate of the relative statistical uncertainty.Improve file-type related utilities:
- add a utility application,
simtools-inspect-file, to print the main structure and metadata of a
simtools-generated file. - add the new modules
simtools.io.file_typeandsimtools.io.file_inspectorwith helper
functions to identify and inspect files.
(#2329)
-
Calculate mean, max, and stdev of shower-reuse as function of energy, core, and angular distance:
- filled and saved with
simtools-write-trigger-histograms - plotted with
simtools-plot-simtel-events
(#2331)
- filled and saved with
Maintenance
-
Improve robustness when writing reduced event-data HDF5 files with
simtools-write-reduced-event-lists. (#2296) -
Increase performance and efficiency of
simtools-write-reduced-event-lists. (#2310) -
Add flake8-cognitive-complexity to pre-commit stage. (#2311)
-
Improve efficiency and memory footprint for reading of reduced event data and histogram filling
forsimtools-production-derive-corsika-limits. (#2316) -
Simplify naming of sim_telarray configuration files written to disk for simulation production:
- telescope configuration files are now of type
CTAO-LSTS-01.cfg,CTAO-SSTS-25.cfg - array configuration files are of type
CTAO-South-beta.cfg - raises an exception if existing configuration files are overwritten by an application.
- add a run-number level to the model sub directory to avoid overwriting for applications using several models.
(#2318)
- telescope configuration files are now of type
-
Review and improve pylint options with less disabled messages. (#2330)
-
Major refactor of application documentation generation:
- read command line parameters from their definition in the configuration module (instead of repeating the help messages in the docstring)
- allow to read the integration test configuration file and use them as use-case examples in the application documentation
(#2333)
-
Improve guidance for coding agents and generalize (so they can now be used with Copilot, Claude, and Codex):
- add a generic
AGENTS.md(replaces.github/copilot-instructions.md) - move skills to
.agents/skillsand add a documentation skill.
(#2337)
- add a generic
-
Change trigger for simtools-prod and simtools-dev container generation. Don't push when running on main. Push for tags of type
vXX.YY.ZZ-rc(release candidates). (#2339) -
Update of tests/resources with re-generated files. General update to model version v7.0.0. (#2340)