v0.27.0
This release of simtools, the simulation toolkit for the CTA Observatory, includes the following main changes:
API Changes
-
Changes to the setting of seeds for sim_telarray:
- use
sim_telarray_random_instrument_instancesandsim_telarray_instrument_seedto generate a random seed file for the given number of configurations. - use
sim_telarray_seedtogether withsim_telarray_instrument_seedto set both instrument (configuration) and simulation seeds. These parameters completely fix the seeds and should only be used for testing purposes.
(#1982)
- use
-
Update naming of simtools-prod images to
<simtools version>-corsika<corsika version>-<avx option>-simtel<sim_telarray version>. (#1984) -
CORSIKA interactions tables are not part of the CORSIKA7 container anymore and also not added to the simtools-dev container.
CORSIKA tables are available from the new CTAO gitlab repository corsika7-interaction-tables. This includes QGSJet-II, QGSJet-III, EPOS, EGS4, etc tables.To install and use the interaction tables for both production and development:
- clone that repository into a separate directory from simtools (recommend the example such that it is reachable from inside the simtools-dev container by
/workdir/external/simpipe/simulation_software/corsika7-interaction-tables/interaction-tables/ - ensure Git LFS is installed and, after cloning, run
git lfs install(once per system) andgit lfs pullin the cloned repository so that the actual interaction table files (and not only pointer files) are downloaded - Add a new env variable called
SIMTOOLS_CORSIKA_INTERACTION_TABLE_PATHpointing to that path (see example in.env_table)
Integration tests are cloning this repository and making the interaction tables available during testing.
(#1987)
- clone that repository into a separate directory from simtools (recommend the example such that it is reachable from inside the simtools-dev container by
Bugfixes
- Correct calculation of lateral photon densities for histograms generated from CORSIKA. (#1994)
Documentation
- Improve documentation on available container images. Add new page to users guide with most important available images. (#1953)
- Improve documentation for CORSIKA and related container images. (#1991)
- Add disclosure on using AI tools. (#1992)
- Improve documentation for integration tests with additional details on the different types of tests. (#2017)
New Features
- Implement gradient descent for the derivation of mirror_reflection_random_angle. Implement general tools for multiprocessing. (#1911)
- Rename simtools-calculate-incident-angles to simtools-derive-incident-angle, add histogram calculation and writing functionality and output metadata. (#1938)
- Add functionality to overwrite simulation model parameters from the command line using
--overwrite_model_parameters. (#1960) - Use
DATDIRCORSIKA input file flag to point to directory with interaction table files. (#1970) - Add EPOS as interaction model and include input flags to CORSIKA input file writer. (#1972)
- Simplified and consistent simtools, CORSIKA, and sim_telarray package tagging:
i.e.,simtools-prod-<version>,simtools-dev-<version>,corsika7-<version>-<avx optimization>,sim_telarray-<version>. (#1975) - Add random seed module to generate seeds based on numpy.SeedSequence.
Add SimtelSeeds data class to hold and generate seeds for sim_telarray simulations. (#1982) - Add CORSIKA v78050, see release notes (KIT gitlab; requires access). (#1983)
- Add sim_telarray, hessio, stdtools tagging using the CTAO gitlab release tags. (#1985)
- Change of the default interaction model from qgs3 to epos (this allows to avoid to download the Gigabyte large QGSJet tables). (#1987)
- Adds support for simulating arbitrary telescope layouts with CORSIKA (including “probe” telescopes for lateral density comparisons), and refactors overwrite-parameter handling to be read/validated once and reused across models. Expand functionality to generated regular arrays of telescopes with different shapes. (#1995)
- Add functionality to
simtools-validate-camera-efficiencyto print fraction of light below 290 nm (as required for B-TEL-0095).
Introduce simple module describing the atmosphere. (#1998) - Add
git-lfsto simtools-prod containers. (#2001)
Maintenance
- Add search patterns in integration tests and fix bug when using an isotropic angular distribution in the illuminator simulations. (#1940)
- Unify execution of run scripts by consistently always use
job_manage.submit().
Improved_make_run_commandfor better readability. (#1977) - Improve file management for light emission simulations (flasher/illuminators). Change of output file naming and directory tree. (#1981)
- Simplified setting of
corsika_seedsandsim_telarray_seeds. (#1982) - Solve sphinx errors after update to sphinx 9.10. (#1988)
- Add the ability to pass a label to RayTracing instead of using a cached label from the telescope model. (#1999)
- Ensure that model data writer is not changing the general output path for all other modules.
Change and simplify model data writer API. (#2000) - Reduce the number of unnecessary debug statements. (#2002)
- Improve model parameter overwrite function with an explicit
flat_dictstatement to avoid being flooded by warnings likeWARNING::model_parameter(l519)::overwrite_parameters::Parameter MSTS-05 not found in model MSTS-12, cannot overwrite it.(note the error in the warning). (#2003) - Add values for camera efficiency application to test against reference values. Add YAML-type output for validate_camera_efficiency. (#2017)