v0.31.0
This release of simtools, the simulation toolkit for the CTA Observatory, includes the following main changes:
API Changes
- Rename
general.ensure_iterabletogeneral.ensure_listto clarify function intent (API change). (#2191)
Bugfixes
- Fixed bug in ground-to-shower coordinate transformation of passing angles in degrees where radians are expected. Fixed coordinate system orientation for transformation. (#2194)
- Add 'moon' NSB level to legacy simtel writer. Fix TypeError when writing HDF5 tables with object-dtype string columns (e.g.
file_nameinFILE_INFO). (#2210) - Fix model parameter validation for dimensionless floats. (#2222)
- Fix bug in overwrite-model parameter mechanism for configuration_sim_telarray parameters: parameters were set for all telescopes, rather than only for the specified ones. (#2228)
- Fix
instrumentfield in model parameter schema and restrict it to allowed names defined incommon_definitions.schema.yml. (#2232)
New Features
- Add functionality for generating job configurations for a parameter grid to
simulate_prod_htcondor_generator. (#2174) - Add Apptainer generation step to
simtools-prodcontainer production step. (#2175) - Add functionality to
production_derive_corsika_limitsandplot_simulated_event_distributionsto read in several event data files using glob patterns. (#2176) - Add feature to allow for user-defined cosmic-ray spectra on the trigger rate application. (#2177)
- Add an event-level production comparison application with multi-production trigger-distribution plots. (#2181)
- Add the possibility to run the derivation of CORSIKA limits in parallel - e.g. for several zenith angles. (#2182)
- Improve derivation of CORSIKA limits and allow to define a loss fraction per energy bin ('differential loss'). (#2185)
- Major improvements to simulation production configuration preparation with clear separation introduced between observation grid generation and backend submission code.
Allow NSHOW to follow a pre-defined power law for simulation production grid definition. (#2190) - Add application to plot CORSIKA limits. Rearrange limits plotting for
production_merge_corsika_limits.py. (#2196) - Add schema for CORSIKA limits tables. (#2203)
- Add zenith-angle scaling mode for
showers_per_runin production grid generation (#2207) - Add a file collection step to simtools-run-application. (#2215)
- Allow integration tests to be run from any directory, not only the simtools base directory. (#2216)
- Add glob-pattern collection, multi-output-path support, and zenith/azimuth/NSB-encoded plot filenames to
simtools-production-derive-corsika-limits. (#2219) - Add illuminator_telescope_visibility model parameter schema (#2220)
- Allow a single telescope name (e.g.,
MSTN-05) asarray_layout_name, automatically creating a single-telescope layout without requiring a database entry. (#2221) - Add illuminator-telescope visibility model parameter and parallel multi-pair simulation support. A new
illuminator_telescope_visibilityschema defines which telescopes each illuminator can reach. Thesimulate_illuminatorapplication gains--simulate_alland--max_workersoptions to run all valid pairs in parallel via the newMultiIlluminatorSimulatorclass. (#2224)
Maintenance
- Move code from application scripts into modules to improve unit test coverage and maintainability. (#2162)
- Improve event data list reading performance. (#2180)
- Add unit-test skill to support Copilot. (#2187)
- Add CI tests to ensure that every simtools Python module has a corresponding unit test module. (#2193)
- Minor fixes to API calls, docstrings, and parameter usage. (#2197)
- Allow integration tests configured with
xfail_network_error: trueto xfail on network errors. (#2199) - Address security issues reported by GitHub scanner (https://github.com/gammasim/simtools/security/code-scanning). (#2209)
- Update simtools-run-application and avoid generation of spurious directory named
output. (#2217) - Efficiency improvements for unit tests (mostly in unit tests of the plotting routines). (#2223)
- Minor refactoring of unit tests to clearly follow general rules (e.g., outlined in documentation or skills). (#2226)
- Improve efficiency of integration tests. (#2227)