gammasimtools 0.25.0__py3-none-any.whl → 0.26.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {gammasimtools-0.25.0.dist-info → gammasimtools-0.26.0.dist-info}/METADATA +2 -1
- {gammasimtools-0.25.0.dist-info → gammasimtools-0.26.0.dist-info}/RECORD +122 -121
- {gammasimtools-0.25.0.dist-info → gammasimtools-0.26.0.dist-info}/entry_points.txt +2 -1
- {gammasimtools-0.25.0.dist-info → gammasimtools-0.26.0.dist-info}/licenses/LICENSE +1 -1
- simtools/_version.py +2 -2
- simtools/application_control.py +35 -7
- simtools/applications/calculate_incident_angles.py +0 -2
- simtools/applications/convert_geo_coordinates_of_array_elements.py +1 -2
- simtools/applications/db_add_file_to_db.py +1 -1
- simtools/applications/db_add_simulation_model_from_repository_to_db.py +1 -1
- simtools/applications/db_add_value_from_json_to_db.py +1 -1
- simtools/applications/db_generate_compound_indexes.py +1 -1
- simtools/applications/db_get_array_layouts_from_db.py +2 -6
- simtools/applications/db_get_file_from_db.py +1 -1
- simtools/applications/db_get_parameter_from_db.py +1 -1
- simtools/applications/db_inspect_databases.py +1 -1
- simtools/applications/db_upload_model_repository.py +1 -1
- simtools/applications/derive_ctao_array_layouts.py +1 -2
- simtools/applications/derive_mirror_rnda.py +1 -3
- simtools/applications/derive_psf_parameters.py +0 -1
- simtools/applications/derive_pulse_shape_parameters.py +0 -1
- simtools/applications/derive_trigger_rates.py +1 -1
- simtools/applications/docs_produce_array_element_report.py +2 -8
- simtools/applications/docs_produce_calibration_reports.py +1 -3
- simtools/applications/docs_produce_model_parameter_reports.py +0 -2
- simtools/applications/docs_produce_simulation_configuration_report.py +1 -3
- simtools/applications/generate_array_config.py +0 -1
- simtools/applications/generate_corsika_histograms.py +48 -235
- simtools/applications/generate_regular_arrays.py +5 -35
- simtools/applications/generate_simtel_event_data.py +2 -2
- simtools/applications/maintain_simulation_model_add_production.py +2 -2
- simtools/applications/maintain_simulation_model_write_array_element_positions.py +87 -0
- simtools/applications/plot_array_layout.py +5 -111
- simtools/applications/plot_simulated_event_distributions.py +57 -0
- simtools/applications/plot_tabular_data.py +0 -1
- simtools/applications/plot_tabular_data_for_model_parameter.py +1 -6
- simtools/applications/production_derive_corsika_limits.py +1 -1
- simtools/applications/production_generate_grid.py +0 -1
- simtools/applications/run_application.py +1 -1
- simtools/applications/simulate_flasher.py +0 -2
- simtools/applications/simulate_illuminator.py +0 -1
- simtools/applications/simulate_pedestals.py +1 -5
- simtools/applications/simulate_prod.py +1 -5
- simtools/applications/simulate_prod_htcondor_generator.py +1 -1
- simtools/applications/submit_array_layouts.py +2 -4
- simtools/applications/submit_model_parameter_from_external.py +1 -3
- simtools/applications/validate_camera_efficiency.py +0 -1
- simtools/applications/validate_camera_fov.py +0 -1
- simtools/applications/validate_cumulative_psf.py +0 -2
- simtools/applications/validate_optics.py +0 -13
- simtools/camera/camera_efficiency.py +1 -6
- simtools/camera/single_photon_electron_spectrum.py +2 -1
- simtools/configuration/commandline_parser.py +35 -2
- simtools/configuration/configurator.py +6 -11
- simtools/corsika/corsika_config.py +16 -21
- simtools/corsika/corsika_histograms.py +411 -1735
- simtools/corsika/primary_particle.py +1 -1
- simtools/data_model/metadata_collector.py +5 -2
- simtools/data_model/metadata_model.py +0 -4
- simtools/data_model/model_data_writer.py +13 -15
- simtools/data_model/validate_data.py +1 -3
- simtools/db/db_handler.py +19 -8
- simtools/dependencies.py +81 -38
- simtools/io/ascii_handler.py +4 -2
- simtools/io/table_handler.py +1 -1
- simtools/layout/array_layout.py +4 -12
- simtools/layout/array_layout_utils.py +226 -57
- simtools/model/array_model.py +1 -13
- simtools/model/calibration_model.py +0 -4
- simtools/model/legacy_model_parameter.py +134 -0
- simtools/model/model_parameter.py +24 -13
- simtools/model/model_utils.py +1 -6
- simtools/model/site_model.py +0 -4
- simtools/model/telescope_model.py +6 -11
- simtools/production_configuration/derive_corsika_limits.py +6 -11
- simtools/production_configuration/interpolation_handler.py +16 -16
- simtools/ray_tracing/incident_angles.py +5 -11
- simtools/ray_tracing/mirror_panel_psf.py +3 -7
- simtools/ray_tracing/psf_analysis.py +18 -19
- simtools/ray_tracing/psf_parameter_optimisation.py +0 -1
- simtools/ray_tracing/ray_tracing.py +6 -15
- simtools/reporting/docs_auto_report_generator.py +8 -13
- simtools/reporting/docs_read_parameters.py +2 -8
- simtools/runners/corsika_runner.py +5 -9
- simtools/runners/corsika_simtel_runner.py +3 -8
- simtools/runners/simtel_runner.py +0 -5
- simtools/runners/simtools_runner.py +2 -4
- simtools/settings.py +154 -0
- simtools/{io/eventio_handler.py → sim_events/file_info.py} +3 -3
- simtools/{simtel/simtel_io_event_histograms.py → sim_events/histograms.py} +25 -15
- simtools/{simtel/simtel_io_event_reader.py → sim_events/reader.py} +20 -17
- simtools/{simtel/simtel_io_event_writer.py → sim_events/writer.py} +84 -25
- simtools/simtel/pulse_shapes.py +7 -2
- simtools/simtel/simtel_config_writer.py +79 -36
- simtools/simtel/simtel_table_reader.py +6 -4
- simtools/simtel/simulator_array.py +4 -11
- simtools/simtel/simulator_camera_efficiency.py +4 -6
- simtools/simtel/simulator_light_emission.py +69 -24
- simtools/simtel/simulator_ray_tracing.py +4 -10
- simtools/simulator.py +7 -14
- simtools/telescope_trigger_rates.py +3 -4
- simtools/testing/assertions.py +84 -33
- simtools/testing/configuration.py +1 -2
- simtools/testing/helpers.py +2 -3
- simtools/testing/log_inspector.py +1 -0
- simtools/testing/sim_telarray_metadata.py +1 -1
- simtools/testing/validate_output.py +34 -23
- simtools/utils/general.py +37 -0
- simtools/utils/geometry.py +0 -77
- simtools/utils/names.py +5 -5
- simtools/visualization/legend_handlers.py +7 -6
- simtools/visualization/plot_array_layout.py +91 -16
- simtools/visualization/plot_corsika_histograms.py +143 -605
- simtools/visualization/plot_mirrors.py +1 -4
- simtools/visualization/plot_pixels.py +2 -4
- simtools/visualization/plot_psf.py +0 -1
- simtools/visualization/plot_simtel_event_histograms.py +4 -4
- simtools/visualization/plot_simtel_events.py +6 -11
- simtools/visualization/plot_tables.py +8 -19
- simtools/visualization/visualize.py +22 -2
- simtools/applications/db_development_tools/write_array_elements_positions_to_repository.py +0 -160
- simtools/applications/print_version.py +0 -53
- simtools/io/hdf5_handler.py +0 -139
- {gammasimtools-0.25.0.dist-info → gammasimtools-0.26.0.dist-info}/WHEEL +0 -0
- {gammasimtools-0.25.0.dist-info → gammasimtools-0.26.0.dist-info}/top_level.txt +0 -0
|
@@ -6,9 +6,11 @@ from pathlib import Path
|
|
|
6
6
|
import numpy as np
|
|
7
7
|
from astropy import units as u
|
|
8
8
|
|
|
9
|
+
from simtools import settings
|
|
9
10
|
from simtools.corsika.primary_particle import PrimaryParticle
|
|
10
|
-
from simtools.io import
|
|
11
|
+
from simtools.io import io_handler
|
|
11
12
|
from simtools.model.model_parameter import ModelParameter
|
|
13
|
+
from simtools.sim_events import file_info
|
|
12
14
|
from simtools.utils import general as gen
|
|
13
15
|
|
|
14
16
|
|
|
@@ -27,8 +29,6 @@ class CorsikaConfig:
|
|
|
27
29
|
Array model.
|
|
28
30
|
args_dict : dict
|
|
29
31
|
Configuration dictionary.
|
|
30
|
-
db_config : dict
|
|
31
|
-
MongoDB configuration.
|
|
32
32
|
label : str
|
|
33
33
|
Instance label.
|
|
34
34
|
dummy_simulations : bool
|
|
@@ -36,7 +36,7 @@ class CorsikaConfig:
|
|
|
36
36
|
(e.g., sim_telarray requires for some run modes a valid CORSIKA input file).
|
|
37
37
|
"""
|
|
38
38
|
|
|
39
|
-
def __init__(self, array_model, args_dict,
|
|
39
|
+
def __init__(self, array_model, args_dict, label=None, dummy_simulations=False):
|
|
40
40
|
"""Initialize CorsikaConfig."""
|
|
41
41
|
self._logger = logging.getLogger(__name__)
|
|
42
42
|
self._logger.debug("Init CorsikaConfig")
|
|
@@ -53,7 +53,7 @@ class CorsikaConfig:
|
|
|
53
53
|
|
|
54
54
|
self.io_handler = io_handler.IOHandler()
|
|
55
55
|
self.array_model = array_model
|
|
56
|
-
self.config = self._fill_corsika_configuration(args_dict
|
|
56
|
+
self.config = self._fill_corsika_configuration(args_dict)
|
|
57
57
|
self._initialize_from_config(args_dict)
|
|
58
58
|
self.is_file_updated = False
|
|
59
59
|
|
|
@@ -110,7 +110,7 @@ class CorsikaConfig:
|
|
|
110
110
|
except KeyError:
|
|
111
111
|
self._use_curved_atmosphere = False
|
|
112
112
|
|
|
113
|
-
def _fill_corsika_configuration(self, args_dict
|
|
113
|
+
def _fill_corsika_configuration(self, args_dict):
|
|
114
114
|
"""
|
|
115
115
|
Fill CORSIKA configuration.
|
|
116
116
|
|
|
@@ -121,8 +121,6 @@ class CorsikaConfig:
|
|
|
121
121
|
----------
|
|
122
122
|
args_dict : dict
|
|
123
123
|
Configuration dictionary.
|
|
124
|
-
db_config: dict
|
|
125
|
-
Database configuration.
|
|
126
124
|
|
|
127
125
|
Returns
|
|
128
126
|
-------
|
|
@@ -144,23 +142,24 @@ class CorsikaConfig:
|
|
|
144
142
|
|
|
145
143
|
config.update(
|
|
146
144
|
self._fill_corsika_configuration_from_db(
|
|
147
|
-
gen.ensure_iterable(args_dict.get("model_version"))
|
|
145
|
+
gen.ensure_iterable(args_dict.get("model_version"))
|
|
148
146
|
)
|
|
149
147
|
)
|
|
150
148
|
return config
|
|
151
149
|
|
|
152
|
-
def _fill_corsika_configuration_from_db(self, model_versions
|
|
150
|
+
def _fill_corsika_configuration_from_db(self, model_versions):
|
|
153
151
|
"""Fill CORSIKA configuration from database."""
|
|
154
152
|
config = {}
|
|
155
|
-
|
|
153
|
+
# all following parameters require DB
|
|
154
|
+
if settings.config.db_config is None or not model_versions:
|
|
156
155
|
return config
|
|
157
156
|
|
|
158
157
|
# For multiple model versions, check that CORSIKA parameters are identical
|
|
159
|
-
self.assert_corsika_configurations_match(model_versions
|
|
158
|
+
self.assert_corsika_configurations_match(model_versions)
|
|
160
159
|
model_version = model_versions[0]
|
|
161
160
|
|
|
162
161
|
self._logger.debug(f"Using model version {model_version} for CORSIKA parameters from DB")
|
|
163
|
-
db_model_parameters = ModelParameter(
|
|
162
|
+
db_model_parameters = ModelParameter(model_version=model_version)
|
|
164
163
|
parameters_from_db = db_model_parameters.get_simulation_software_parameters("corsika")
|
|
165
164
|
|
|
166
165
|
config["INTERACTION_FLAGS"] = self._corsika_configuration_interaction_flags(
|
|
@@ -206,7 +205,7 @@ class CorsikaConfig:
|
|
|
206
205
|
args_dict.get("curved_atmosphere_min_zenith_angle", 90.0 * u.deg).to("deg").value
|
|
207
206
|
)
|
|
208
207
|
|
|
209
|
-
def assert_corsika_configurations_match(self, model_versions
|
|
208
|
+
def assert_corsika_configurations_match(self, model_versions):
|
|
210
209
|
"""
|
|
211
210
|
Assert that CORSIKA configurations match across all model versions.
|
|
212
211
|
|
|
@@ -214,8 +213,6 @@ class CorsikaConfig:
|
|
|
214
213
|
----------
|
|
215
214
|
model_versions : list
|
|
216
215
|
List of model versions to check.
|
|
217
|
-
db_config : dict, optional
|
|
218
|
-
Database configuration.
|
|
219
216
|
|
|
220
217
|
Raises
|
|
221
218
|
------
|
|
@@ -229,7 +226,7 @@ class CorsikaConfig:
|
|
|
229
226
|
|
|
230
227
|
# Get parameters for all model versions
|
|
231
228
|
for model_version in model_versions:
|
|
232
|
-
db_model_parameters = ModelParameter(
|
|
229
|
+
db_model_parameters = ModelParameter(model_version=model_version)
|
|
233
230
|
parameters_from_db_list.append(
|
|
234
231
|
db_model_parameters.get_simulation_software_parameters("corsika")
|
|
235
232
|
)
|
|
@@ -301,9 +298,7 @@ class CorsikaConfig:
|
|
|
301
298
|
dict
|
|
302
299
|
Dictionary with CORSIKA parameters from input file.
|
|
303
300
|
"""
|
|
304
|
-
run_header, event_header =
|
|
305
|
-
corsika_input_file
|
|
306
|
-
)
|
|
301
|
+
run_header, event_header = file_info.get_corsika_run_and_event_headers(corsika_input_file)
|
|
307
302
|
self._logger.debug(f"CORSIKA run header from {corsika_input_file}")
|
|
308
303
|
|
|
309
304
|
def to_float32(value):
|
|
@@ -621,7 +616,7 @@ class CorsikaConfig:
|
|
|
621
616
|
Value(s) of the parameter.
|
|
622
617
|
"""
|
|
623
618
|
par_value = []
|
|
624
|
-
for
|
|
619
|
+
for values in self.config.values():
|
|
625
620
|
if par_name in values:
|
|
626
621
|
par_value = values[par_name]
|
|
627
622
|
if len(par_value) == 0:
|