gammasimtools 0.6.1__py3-none-any.whl → 0.8.1__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.8.1.dist-info/METADATA +172 -0
- gammasimtools-0.8.1.dist-info/RECORD +346 -0
- {gammasimtools-0.6.1.dist-info → gammasimtools-0.8.1.dist-info}/WHEEL +1 -1
- gammasimtools-0.8.1.dist-info/entry_points.txt +31 -0
- simtools/_version.py +2 -2
- simtools/applications/calculate_trigger_rate.py +210 -0
- simtools/applications/convert_all_model_parameters_from_simtel.py +372 -0
- simtools/applications/{print_array_elements.py → convert_geo_coordinates_of_array_elements.py} +58 -63
- simtools/applications/convert_model_parameter_from_simtel.py +119 -0
- simtools/applications/{add_file_to_db.py → db_add_file_to_db.py} +70 -60
- simtools/applications/db_add_model_parameters_from_repository_to_db.py +184 -0
- simtools/applications/db_add_value_from_json_to_db.py +105 -0
- simtools/applications/db_development_tools/write_array_elements_positions_to_repository.py +180 -0
- simtools/applications/db_get_array_layouts_from_db.py +162 -0
- simtools/applications/{get_file_from_db.py → db_get_file_from_db.py} +30 -34
- simtools/applications/db_get_parameter_from_db.py +131 -0
- simtools/applications/db_inspect_databases.py +52 -0
- simtools/applications/derive_mirror_rnda.py +39 -255
- simtools/applications/derive_psf_parameters.py +441 -0
- simtools/applications/generate_array_config.py +82 -0
- simtools/applications/generate_corsika_histograms.py +52 -52
- simtools/applications/generate_default_metadata.py +5 -8
- simtools/applications/generate_regular_arrays.py +117 -0
- simtools/applications/generate_simtel_array_histograms.py +97 -56
- simtools/applications/plot_array_layout.py +345 -115
- simtools/applications/production_generate_simulation_config.py +158 -0
- simtools/applications/production_scale_events.py +168 -0
- simtools/applications/simulate_light_emission.py +478 -0
- simtools/applications/simulate_prod.py +97 -175
- simtools/applications/submit_data_from_external.py +9 -12
- simtools/applications/submit_model_parameter_from_external.py +122 -0
- simtools/applications/validate_camera_efficiency.py +35 -102
- simtools/applications/validate_camera_fov.py +20 -19
- simtools/applications/{compare_cumulative_psf.py → validate_cumulative_psf.py} +45 -44
- simtools/applications/validate_file_using_schema.py +113 -47
- simtools/applications/validate_optics.py +17 -22
- simtools/camera_efficiency.py +193 -202
- simtools/configuration/commandline_parser.py +384 -96
- simtools/configuration/configurator.py +55 -71
- simtools/constants.py +5 -5
- simtools/corsika/corsika_config.py +482 -342
- simtools/corsika/corsika_histograms.py +226 -204
- simtools/corsika/corsika_histograms_visualize.py +23 -24
- simtools/corsika/primary_particle.py +159 -0
- simtools/data_model/data_reader.py +25 -20
- simtools/data_model/format_checkers.py +52 -0
- simtools/data_model/metadata_collector.py +210 -184
- simtools/data_model/metadata_model.py +115 -37
- simtools/data_model/model_data_writer.py +335 -26
- simtools/data_model/validate_data.py +366 -154
- simtools/db/db_array_elements.py +130 -0
- simtools/db/db_from_repo_handler.py +106 -0
- simtools/db/db_handler.py +1246 -0
- simtools/io_operations/hdf5_handler.py +3 -1
- simtools/io_operations/io_handler.py +32 -57
- simtools/job_execution/job_manager.py +82 -69
- simtools/layout/array_layout.py +325 -537
- simtools/layout/geo_coordinates.py +8 -11
- simtools/layout/telescope_position.py +163 -86
- simtools/model/array_model.py +305 -256
- simtools/model/calibration_model.py +50 -0
- simtools/model/camera.py +233 -493
- simtools/model/mirrors.py +61 -44
- simtools/model/model_parameter.py +602 -0
- simtools/model/model_utils.py +7 -35
- simtools/model/site_model.py +161 -0
- simtools/model/telescope_model.py +127 -621
- simtools/production_configuration/calculate_statistical_errors_grid_point.py +454 -0
- simtools/production_configuration/event_scaler.py +146 -0
- simtools/production_configuration/generate_simulation_config.py +193 -0
- simtools/production_configuration/interpolation_handler.py +197 -0
- simtools/ray_tracing/__init__.py +0 -0
- simtools/ray_tracing/mirror_panel_psf.py +280 -0
- simtools/{psf_analysis.py → ray_tracing/psf_analysis.py} +133 -47
- simtools/ray_tracing/ray_tracing.py +646 -0
- simtools/runners/__init__.py +0 -0
- simtools/runners/corsika_runner.py +240 -0
- simtools/runners/corsika_simtel_runner.py +225 -0
- simtools/runners/runner_services.py +307 -0
- simtools/runners/simtel_runner.py +224 -0
- simtools/schemas/array_elements.yml +137 -0
- simtools/schemas/integration_tests_config.metaschema.yml +93 -0
- simtools/schemas/metadata.metaschema.yml +6 -0
- simtools/schemas/model_parameter.metaschema.yml +78 -0
- simtools/schemas/{data.metaschema.yml → model_parameter_and_data_schema.metaschema.yml} +27 -44
- simtools/schemas/model_parameters/adjust_gain.schema.yml +37 -0
- simtools/schemas/model_parameters/altitude.schema.yml +37 -0
- simtools/schemas/model_parameters/array_coordinates.schema.yml +33 -0
- simtools/schemas/model_parameters/array_coordinates_UTM.schema.yml +77 -0
- simtools/schemas/model_parameters/array_element_position_ground.schema.yml +39 -0
- simtools/schemas/model_parameters/array_element_position_utm.schema.yml +39 -0
- simtools/schemas/model_parameters/array_layouts.schema.yml +48 -0
- simtools/schemas/model_parameters/array_triggers.schema.yml +93 -0
- simtools/schemas/model_parameters/asum_clipping.schema.yml +38 -0
- simtools/schemas/model_parameters/asum_offset.schema.yml +35 -0
- simtools/schemas/model_parameters/asum_shaping.schema.yml +35 -0
- simtools/schemas/model_parameters/asum_threshold.schema.yml +38 -0
- simtools/schemas/model_parameters/atmospheric_profile.schema.yml +32 -0
- simtools/schemas/model_parameters/atmospheric_transmission.schema.yml +35 -0
- simtools/schemas/model_parameters/axes_offsets.schema.yml +53 -0
- simtools/schemas/model_parameters/camera_body_diameter.schema.yml +40 -0
- simtools/schemas/model_parameters/camera_body_shape.schema.yml +45 -0
- simtools/schemas/model_parameters/camera_config_file.schema.yml +40 -0
- simtools/schemas/model_parameters/camera_config_rotate.schema.yml +36 -0
- simtools/schemas/model_parameters/camera_degraded_efficiency.schema.yml +43 -0
- simtools/schemas/model_parameters/camera_degraded_map.schema.yml +42 -0
- simtools/schemas/model_parameters/camera_depth.schema.yml +42 -0
- simtools/schemas/model_parameters/camera_filter.schema.yml +45 -0
- simtools/schemas/model_parameters/camera_filter_incidence_angle.schema.yml +29 -0
- simtools/schemas/model_parameters/camera_pixels.schema.yml +36 -0
- simtools/schemas/model_parameters/camera_transmission.schema.yml +41 -0
- simtools/schemas/model_parameters/channels_per_chip.schema.yml +36 -0
- simtools/schemas/model_parameters/correct_nsb_spectrum_to_telescope_altitude.schema.yml +35 -0
- simtools/schemas/model_parameters/corsika_cherenkov_photon_bunch_size.schema.yml +27 -0
- simtools/schemas/model_parameters/corsika_cherenkov_photon_wavelength_range.schema.yml +38 -0
- simtools/schemas/model_parameters/corsika_first_interaction_height.schema.yml +28 -0
- simtools/schemas/model_parameters/corsika_iact_io_buffer.schema.yml +23 -0
- simtools/schemas/model_parameters/corsika_iact_max_bunches.schema.yml +27 -0
- simtools/schemas/model_parameters/corsika_iact_split_auto.schema.yml +28 -0
- simtools/schemas/model_parameters/corsika_longitudinal_shower_development.schema.yml +27 -0
- simtools/schemas/model_parameters/corsika_observation_level.schema.yml +38 -0
- simtools/schemas/model_parameters/corsika_particle_kinetic_energy_cutoff.schema.yml +52 -0
- simtools/schemas/model_parameters/corsika_starting_grammage.schema.yml +27 -0
- simtools/schemas/model_parameters/dark_events.schema.yml +32 -0
- simtools/schemas/model_parameters/default_trigger.schema.yml +35 -0
- simtools/schemas/model_parameters/design_model.schema.yml +31 -0
- simtools/schemas/model_parameters/disc_ac_coupled.schema.yml +32 -0
- simtools/schemas/model_parameters/disc_bins.schema.yml +39 -0
- simtools/schemas/model_parameters/disc_start.schema.yml +41 -0
- simtools/schemas/model_parameters/discriminator_amplitude.schema.yml +42 -0
- simtools/schemas/model_parameters/discriminator_fall_time.schema.yml +41 -0
- simtools/schemas/model_parameters/discriminator_gate_length.schema.yml +41 -0
- simtools/schemas/model_parameters/discriminator_hysteresis.schema.yml +39 -0
- simtools/schemas/model_parameters/discriminator_output_amplitude.schema.yml +40 -0
- simtools/schemas/model_parameters/discriminator_output_var_percent.schema.yml +41 -0
- simtools/schemas/model_parameters/discriminator_pulse_shape.schema.yml +33 -0
- simtools/schemas/model_parameters/discriminator_rise_time.schema.yml +42 -0
- simtools/schemas/model_parameters/discriminator_scale_threshold.schema.yml +37 -0
- simtools/schemas/model_parameters/discriminator_sigsum_over_threshold.schema.yml +44 -0
- simtools/schemas/model_parameters/discriminator_threshold.schema.yml +36 -0
- simtools/schemas/model_parameters/discriminator_time_over_threshold.schema.yml +45 -0
- simtools/schemas/model_parameters/discriminator_var_gate_length.schema.yml +40 -0
- simtools/schemas/model_parameters/discriminator_var_sigsum_over_threshold.schema.yml +41 -0
- simtools/schemas/model_parameters/discriminator_var_threshold.schema.yml +38 -0
- simtools/schemas/model_parameters/discriminator_var_time_over_threshold.schema.yml +38 -0
- simtools/schemas/model_parameters/dish_shape_length.schema.yml +41 -0
- simtools/schemas/model_parameters/dsum_clipping.schema.yml +38 -0
- simtools/schemas/model_parameters/dsum_ignore_below.schema.yml +38 -0
- simtools/schemas/model_parameters/dsum_offset.schema.yml +37 -0
- simtools/schemas/model_parameters/dsum_pedsub.schema.yml +33 -0
- simtools/schemas/model_parameters/dsum_pre_clipping.schema.yml +39 -0
- simtools/schemas/model_parameters/dsum_prescale.schema.yml +44 -0
- simtools/schemas/model_parameters/dsum_presum_max.schema.yml +38 -0
- simtools/schemas/model_parameters/dsum_presum_shift.schema.yml +45 -0
- simtools/schemas/model_parameters/dsum_shaping.schema.yml +44 -0
- simtools/schemas/model_parameters/dsum_shaping_renormalize.schema.yml +32 -0
- simtools/schemas/model_parameters/dsum_threshold.schema.yml +43 -0
- simtools/schemas/model_parameters/dsum_zero_clip.schema.yml +42 -0
- simtools/schemas/model_parameters/effective_focal_length.schema.yml +61 -0
- simtools/schemas/model_parameters/epsg_code.schema.yml +37 -0
- simtools/schemas/model_parameters/fadc_ac_coupled.schema.yml +35 -0
- simtools/schemas/model_parameters/fadc_amplitude.schema.yml +46 -0
- simtools/schemas/model_parameters/fadc_bins.schema.yml +40 -0
- simtools/schemas/model_parameters/fadc_compensate_pedestal.schema.yml +50 -0
- simtools/schemas/model_parameters/fadc_dev_pedestal.schema.yml +38 -0
- simtools/schemas/model_parameters/fadc_err_compensate_pedestal.schema.yml +42 -0
- simtools/schemas/model_parameters/fadc_err_pedestal.schema.yml +49 -0
- simtools/schemas/model_parameters/fadc_lg_amplitude.schema.yml +47 -0
- simtools/schemas/model_parameters/fadc_lg_compensate_pedestal.schema.yml +51 -0
- simtools/schemas/model_parameters/fadc_lg_dev_pedestal.schema.yml +37 -0
- simtools/schemas/model_parameters/fadc_lg_err_compensate_pedestal.schema.yml +43 -0
- simtools/schemas/model_parameters/fadc_lg_err_pedestal.schema.yml +49 -0
- simtools/schemas/model_parameters/fadc_lg_max_signal.schema.yml +43 -0
- simtools/schemas/model_parameters/fadc_lg_max_sum.schema.yml +39 -0
- simtools/schemas/model_parameters/fadc_lg_noise.schema.yml +42 -0
- simtools/schemas/model_parameters/fadc_lg_pedestal.schema.yml +40 -0
- simtools/schemas/model_parameters/fadc_lg_sensitivity.schema.yml +50 -0
- simtools/schemas/model_parameters/fadc_lg_sysvar_pedestal.schema.yml +42 -0
- simtools/schemas/model_parameters/fadc_lg_var_pedestal.schema.yml +41 -0
- simtools/schemas/model_parameters/fadc_lg_var_sensitivity.schema.yml +42 -0
- simtools/schemas/model_parameters/fadc_max_signal.schema.yml +43 -0
- simtools/schemas/model_parameters/fadc_max_sum.schema.yml +39 -0
- simtools/schemas/model_parameters/fadc_mhz.schema.yml +31 -0
- simtools/schemas/model_parameters/fadc_noise.schema.yml +41 -0
- simtools/schemas/model_parameters/fadc_pedestal.schema.yml +40 -0
- simtools/schemas/model_parameters/fadc_pulse_shape.schema.yml +39 -0
- simtools/schemas/model_parameters/fadc_sensitivity.schema.yml +50 -0
- simtools/schemas/model_parameters/fadc_sum_bins.schema.yml +43 -0
- simtools/schemas/model_parameters/fadc_sum_offset.schema.yml +43 -0
- simtools/schemas/model_parameters/fadc_sysvar_pedestal.schema.yml +42 -0
- simtools/schemas/model_parameters/fadc_var_pedestal.schema.yml +41 -0
- simtools/schemas/model_parameters/fadc_var_sensitivity.schema.yml +42 -0
- simtools/schemas/model_parameters/flatfielding.schema.yml +37 -0
- simtools/schemas/model_parameters/focal_length.schema.yml +45 -0
- simtools/schemas/model_parameters/focal_surface_parameters.schema.yml +158 -0
- simtools/schemas/model_parameters/focal_surface_ref_radius.schema.yml +29 -0
- simtools/schemas/model_parameters/focus_offset.schema.yml +66 -0
- simtools/schemas/model_parameters/gain_variation.schema.yml +43 -0
- simtools/schemas/model_parameters/geomag_horizontal.schema.yml +34 -0
- simtools/schemas/model_parameters/geomag_rotation.schema.yml +37 -0
- simtools/schemas/model_parameters/geomag_vertical.schema.yml +34 -0
- simtools/schemas/model_parameters/hg_lg_variation.schema.yml +36 -0
- simtools/schemas/model_parameters/iobuf_maximum.schema.yml +34 -0
- simtools/schemas/model_parameters/iobuf_output_maximum.schema.yml +34 -0
- simtools/schemas/model_parameters/laser_events.schema.yml +36 -0
- simtools/schemas/model_parameters/laser_external_trigger.schema.yml +35 -0
- simtools/schemas/model_parameters/laser_photons.schema.yml +32 -0
- simtools/schemas/model_parameters/laser_pulse_exptime.schema.yml +34 -0
- simtools/schemas/model_parameters/laser_pulse_offset.schema.yml +34 -0
- simtools/schemas/model_parameters/laser_pulse_sigtime.schema.yml +33 -0
- simtools/schemas/model_parameters/laser_pulse_twidth.schema.yml +33 -0
- simtools/schemas/model_parameters/laser_var_photons.schema.yml +33 -0
- simtools/schemas/model_parameters/laser_wavelength.schema.yml +33 -0
- simtools/schemas/model_parameters/led_events.schema.yml +34 -0
- simtools/schemas/model_parameters/led_photons.schema.yml +34 -0
- simtools/schemas/model_parameters/led_pulse_offset.schema.yml +32 -0
- simtools/schemas/model_parameters/led_pulse_sigtime.schema.yml +33 -0
- simtools/schemas/model_parameters/led_var_photons.schema.yml +34 -0
- simtools/schemas/model_parameters/lightguide_efficiency_vs_incidence_angle.schema.yml +41 -0
- simtools/schemas/model_parameters/lightguide_efficiency_vs_wavelength.schema.yml +43 -0
- simtools/schemas/model_parameters/min_photoelectrons.schema.yml +35 -0
- simtools/schemas/model_parameters/min_photons.schema.yml +32 -0
- simtools/schemas/model_parameters/mirror_align_random_distance.schema.yml +36 -0
- simtools/schemas/model_parameters/mirror_align_random_horizontal.schema.yml +64 -0
- simtools/schemas/model_parameters/mirror_align_random_vertical.schema.yml +64 -0
- simtools/schemas/model_parameters/mirror_class.schema.yml +41 -0
- simtools/schemas/model_parameters/mirror_degraded_reflection.schema.yml +51 -0
- simtools/schemas/model_parameters/mirror_focal_length.schema.yml +42 -0
- simtools/schemas/model_parameters/mirror_list.schema.yml +38 -0
- simtools/schemas/model_parameters/mirror_offset.schema.yml +41 -0
- simtools/schemas/model_parameters/mirror_panel_2f_measurements.schema.yml +39 -0
- simtools/schemas/model_parameters/mirror_reflection_random_angle.schema.yml +61 -0
- simtools/schemas/model_parameters/mirror_reflectivity.schema.yml +40 -0
- simtools/schemas/model_parameters/multiplicity_offset.schema.yml +46 -0
- simtools/schemas/model_parameters/nsb_autoscale_airmass.schema.yml +51 -0
- simtools/schemas/model_parameters/nsb_gain_drop_scale.schema.yml +37 -0
- simtools/schemas/model_parameters/nsb_offaxis.schema.yml +79 -0
- simtools/schemas/model_parameters/nsb_pixel_rate.schema.yml +47 -0
- simtools/schemas/model_parameters/nsb_reference_spectrum.schema.yml +34 -0
- simtools/schemas/model_parameters/nsb_reference_value.schema.yml +33 -0
- simtools/schemas/model_parameters/nsb_scaling_factor.schema.yml +35 -0
- simtools/schemas/model_parameters/nsb_skymap.schema.yml +39 -0
- simtools/schemas/model_parameters/nsb_spectrum.schema.yml +50 -0
- simtools/schemas/model_parameters/num_gains.schema.yml +34 -0
- simtools/schemas/model_parameters/only_triggered_telescopes.schema.yml +33 -0
- simtools/schemas/model_parameters/optics_properties.schema.yml +31 -0
- simtools/schemas/model_parameters/parabolic_dish.schema.yml +32 -0
- simtools/schemas/model_parameters/pedestal_events.schema.yml +32 -0
- simtools/schemas/model_parameters/photon_delay.schema.yml +38 -0
- simtools/schemas/model_parameters/photons_per_run.schema.yml +33 -0
- simtools/schemas/model_parameters/pixel_cells.schema.yml +35 -0
- simtools/schemas/model_parameters/pixels_parallel.schema.yml +54 -0
- simtools/schemas/model_parameters/pixeltrg_time_step.schema.yml +40 -0
- simtools/schemas/model_parameters/pm_average_gain.schema.yml +34 -0
- simtools/schemas/model_parameters/pm_collection_efficiency.schema.yml +40 -0
- simtools/schemas/model_parameters/pm_gain_index.schema.yml +36 -0
- simtools/schemas/model_parameters/pm_photoelectron_spectrum.schema.yml +41 -0
- simtools/schemas/model_parameters/pm_transit_time.schema.yml +63 -0
- simtools/schemas/model_parameters/pm_voltage_variation.schema.yml +39 -0
- simtools/schemas/model_parameters/primary_mirror_degraded_map.schema.yml +42 -0
- simtools/schemas/model_parameters/primary_mirror_diameter.schema.yml +33 -0
- simtools/schemas/model_parameters/primary_mirror_hole_diameter.schema.yml +33 -0
- simtools/schemas/model_parameters/primary_mirror_incidence_angle.schema.yml +29 -0
- simtools/schemas/model_parameters/primary_mirror_parameters.schema.yml +168 -0
- simtools/schemas/model_parameters/primary_mirror_ref_radius.schema.yml +36 -0
- simtools/schemas/model_parameters/primary_mirror_segmentation.schema.yml +34 -0
- simtools/schemas/model_parameters/qe_variation.schema.yml +43 -0
- simtools/schemas/model_parameters/quantum_efficiency.schema.yml +42 -0
- simtools/schemas/model_parameters/random_focal_length.schema.yml +45 -0
- simtools/schemas/model_parameters/random_generator.schema.yml +36 -0
- simtools/schemas/model_parameters/reference_point_altitude.schema.yml +35 -0
- simtools/schemas/model_parameters/reference_point_latitude.schema.yml +36 -0
- simtools/schemas/model_parameters/reference_point_longitude.schema.yml +36 -0
- simtools/schemas/model_parameters/reference_point_utm_east.schema.yml +34 -0
- simtools/schemas/model_parameters/reference_point_utm_north.schema.yml +34 -0
- simtools/schemas/model_parameters/sampled_output.schema.yml +31 -0
- simtools/schemas/model_parameters/save_pe_with_amplitude.schema.yml +34 -0
- simtools/schemas/model_parameters/secondary_mirror_baffle.schema.yml +79 -0
- simtools/schemas/model_parameters/secondary_mirror_degraded_map.schema.yml +42 -0
- simtools/schemas/model_parameters/secondary_mirror_degraded_reflection.schema.yml +41 -0
- simtools/schemas/model_parameters/secondary_mirror_diameter.schema.yml +33 -0
- simtools/schemas/model_parameters/secondary_mirror_hole_diameter.schema.yml +36 -0
- simtools/schemas/model_parameters/secondary_mirror_incidence_angle.schema.yml +29 -0
- simtools/schemas/model_parameters/secondary_mirror_parameters.schema.yml +168 -0
- simtools/schemas/model_parameters/secondary_mirror_ref_radius.schema.yml +36 -0
- simtools/schemas/model_parameters/secondary_mirror_reflectivity.schema.yml +35 -0
- simtools/schemas/model_parameters/secondary_mirror_segmentation.schema.yml +37 -0
- simtools/schemas/model_parameters/secondary_mirror_shadow_diameter.schema.yml +40 -0
- simtools/schemas/model_parameters/secondary_mirror_shadow_offset.schema.yml +40 -0
- simtools/schemas/model_parameters/store_photoelectrons.schema.yml +41 -0
- simtools/schemas/model_parameters/tailcut_scale.schema.yml +40 -0
- simtools/schemas/model_parameters/telescope_axis_height.schema.yml +31 -0
- simtools/schemas/model_parameters/telescope_random_angle.schema.yml +35 -0
- simtools/schemas/model_parameters/telescope_random_error.schema.yml +34 -0
- simtools/schemas/model_parameters/telescope_sphere_radius.schema.yml +37 -0
- simtools/schemas/model_parameters/telescope_transmission.schema.yml +113 -0
- simtools/schemas/model_parameters/teltrig_min_sigsum.schema.yml +41 -0
- simtools/schemas/model_parameters/teltrig_min_time.schema.yml +36 -0
- simtools/schemas/model_parameters/transit_time_calib_error.schema.yml +36 -0
- simtools/schemas/model_parameters/transit_time_compensate_error.schema.yml +37 -0
- simtools/schemas/model_parameters/transit_time_compensate_step.schema.yml +38 -0
- simtools/schemas/model_parameters/transit_time_error.schema.yml +45 -0
- simtools/schemas/model_parameters/transit_time_jitter.schema.yml +36 -0
- simtools/schemas/model_parameters/trigger_current_limit.schema.yml +32 -0
- simtools/schemas/model_parameters/trigger_delay_compensation.schema.yml +53 -0
- simtools/schemas/model_parameters/trigger_pixels.schema.yml +40 -0
- simtools/simtel/simtel_config_reader.py +353 -0
- simtools/simtel/simtel_config_writer.py +244 -63
- simtools/simtel/{simtel_events.py → simtel_io_events.py} +26 -25
- simtools/simtel/simtel_io_histogram.py +661 -0
- simtools/simtel/simtel_io_histograms.py +569 -0
- simtools/simtel/simulator_array.py +145 -0
- simtools/simtel/{simtel_runner_camera_efficiency.py → simulator_camera_efficiency.py} +76 -52
- simtools/simtel/simulator_light_emission.py +473 -0
- simtools/simtel/simulator_ray_tracing.py +262 -0
- simtools/simulator.py +220 -446
- simtools/testing/__init__.py +0 -0
- simtools/testing/assertions.py +151 -0
- simtools/testing/configuration.py +226 -0
- simtools/testing/helpers.py +42 -0
- simtools/testing/validate_output.py +240 -0
- simtools/utils/general.py +340 -437
- simtools/utils/geometry.py +12 -12
- simtools/utils/names.py +258 -644
- simtools/utils/value_conversion.py +176 -0
- simtools/version.py +2 -0
- simtools/visualization/legend_handlers.py +135 -152
- simtools/visualization/plot_camera.py +379 -0
- simtools/visualization/visualize.py +346 -167
- gammasimtools-0.6.1.dist-info/METADATA +0 -180
- gammasimtools-0.6.1.dist-info/RECORD +0 -91
- gammasimtools-0.6.1.dist-info/entry_points.txt +0 -23
- simtools/applications/db_development_tools/add_new_parameter_to_db.py +0 -81
- simtools/applications/db_development_tools/add_unit_to_parameter_in_db.py +0 -59
- simtools/applications/db_development_tools/mark_non_optics_parameters_non_applicable.py +0 -102
- simtools/applications/get_parameter.py +0 -92
- simtools/applications/make_regular_arrays.py +0 -160
- simtools/applications/produce_array_config.py +0 -136
- simtools/applications/production.py +0 -313
- simtools/applications/sim_showers_for_trigger_rates.py +0 -187
- simtools/applications/tune_psf.py +0 -334
- simtools/corsika/corsika_default_config.py +0 -282
- simtools/corsika/corsika_runner.py +0 -450
- simtools/corsika_simtel/corsika_simtel_runner.py +0 -197
- simtools/db_handler.py +0 -1480
- simtools/ray_tracing.py +0 -525
- simtools/simtel/simtel_histograms.py +0 -414
- simtools/simtel/simtel_runner.py +0 -244
- simtools/simtel/simtel_runner_array.py +0 -293
- simtools/simtel/simtel_runner_ray_tracing.py +0 -277
- {gammasimtools-0.6.1.dist-info → gammasimtools-0.8.1.dist-info}/LICENSE +0 -0
- {gammasimtools-0.6.1.dist-info → gammasimtools-0.8.1.dist-info}/top_level.txt +0 -0
- /simtools/{corsika_simtel → db}/__init__.py +0 -0
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
from collections import defaultdict
|
|
2
|
-
|
|
3
|
-
import astropy.units as u
|
|
4
|
-
from scipy.interpolate import interp1d
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class CorsikaDefaultConfig:
|
|
8
|
-
"""
|
|
9
|
-
This class contains the default configuration for CORSIKA parameters for
|
|
10
|
-
the various primary particles. It includes all basic dependencies on zenith angles, etc.
|
|
11
|
-
The default values defined in this class assume the full CTAO arrays are simulated,
|
|
12
|
-
including full CTAO energy range and number of events optimized to run for roughly 24 hours
|
|
13
|
-
on a single node on the grid.
|
|
14
|
-
"""
|
|
15
|
-
|
|
16
|
-
def __init__(self, primary=None, zenith_angle=None):
|
|
17
|
-
"""
|
|
18
|
-
Initialize CorsikaDefaultConfig.
|
|
19
|
-
"""
|
|
20
|
-
self.primary = primary
|
|
21
|
-
self.zenith_angle = zenith_angle
|
|
22
|
-
self._energy_slope = -2.0
|
|
23
|
-
self.energy_ranges = self._define_hardcoded_energy_ranges()
|
|
24
|
-
self.number_of_showers = self._define_hardcoded_number_of_showers()
|
|
25
|
-
|
|
26
|
-
@property
|
|
27
|
-
def primary(self):
|
|
28
|
-
"""
|
|
29
|
-
Primary particle.
|
|
30
|
-
|
|
31
|
-
Returns
|
|
32
|
-
-------
|
|
33
|
-
primary: str
|
|
34
|
-
"""
|
|
35
|
-
return self._primary
|
|
36
|
-
|
|
37
|
-
@primary.setter
|
|
38
|
-
def primary(self, primary):
|
|
39
|
-
"""
|
|
40
|
-
Set primary particle.
|
|
41
|
-
|
|
42
|
-
Parameters
|
|
43
|
-
----------
|
|
44
|
-
primary: str
|
|
45
|
-
Which primary to simulate.
|
|
46
|
-
"""
|
|
47
|
-
supported_primaries = [
|
|
48
|
-
"gamma",
|
|
49
|
-
"gamma_diffuse",
|
|
50
|
-
"electron",
|
|
51
|
-
"proton",
|
|
52
|
-
"muon",
|
|
53
|
-
"helium",
|
|
54
|
-
"nitrogen",
|
|
55
|
-
"silicon",
|
|
56
|
-
"iron",
|
|
57
|
-
]
|
|
58
|
-
if primary not in supported_primaries:
|
|
59
|
-
raise ValueError(
|
|
60
|
-
f"Invalid primary particle: {primary}. Must be one of {supported_primaries}"
|
|
61
|
-
)
|
|
62
|
-
self._primary = primary
|
|
63
|
-
|
|
64
|
-
@property
|
|
65
|
-
def zenith_angle(self):
|
|
66
|
-
"""
|
|
67
|
-
Zenith angle.
|
|
68
|
-
|
|
69
|
-
Returns
|
|
70
|
-
-------
|
|
71
|
-
zenith_angle: astropy.units.Quantity
|
|
72
|
-
"""
|
|
73
|
-
return self._zenith_angle
|
|
74
|
-
|
|
75
|
-
@zenith_angle.setter
|
|
76
|
-
@u.quantity_input(zenith_angle=u.deg)
|
|
77
|
-
def zenith_angle(self, zenith_angle):
|
|
78
|
-
"""
|
|
79
|
-
Set zenith angle.
|
|
80
|
-
|
|
81
|
-
Parameters
|
|
82
|
-
----------
|
|
83
|
-
zenith_angle: astropy.units.Quantity
|
|
84
|
-
Which zenith angle to simulate (in degrees).
|
|
85
|
-
"""
|
|
86
|
-
allowed_zenith_angle_interval = [20.0, 60.0] * u.deg
|
|
87
|
-
if (
|
|
88
|
-
zenith_angle < allowed_zenith_angle_interval[0]
|
|
89
|
-
or zenith_angle > allowed_zenith_angle_interval[1]
|
|
90
|
-
):
|
|
91
|
-
raise ValueError(
|
|
92
|
-
f"The zenith angle, {zenith_angle:.1f}, "
|
|
93
|
-
f"is outside of the allowed interval, {allowed_zenith_angle_interval}."
|
|
94
|
-
"This interval is enforced because values can only be interpolated "
|
|
95
|
-
"between zenith angles that were manually optimized."
|
|
96
|
-
)
|
|
97
|
-
|
|
98
|
-
self._zenith_angle = zenith_angle
|
|
99
|
-
|
|
100
|
-
@property
|
|
101
|
-
def energy_slope(self):
|
|
102
|
-
"""
|
|
103
|
-
Energy slope.
|
|
104
|
-
|
|
105
|
-
Returns
|
|
106
|
-
-------
|
|
107
|
-
energy_slope: float
|
|
108
|
-
"""
|
|
109
|
-
return self._energy_slope
|
|
110
|
-
|
|
111
|
-
def _define_hardcoded_energy_ranges(self):
|
|
112
|
-
"""
|
|
113
|
-
Define the hardcoded energy ranges for the various primaries.
|
|
114
|
-
These energy ranges are for the full CTAO energy range (for both sites).
|
|
115
|
-
|
|
116
|
-
Returns
|
|
117
|
-
-------
|
|
118
|
-
energy_ranges: dict
|
|
119
|
-
Dictionary with the default energy ranges for the various primaries.
|
|
120
|
-
"""
|
|
121
|
-
|
|
122
|
-
energy_ranges = defaultdict(dict)
|
|
123
|
-
energy_ranges["gamma"][20] = [3 * u.GeV, 330 * u.TeV]
|
|
124
|
-
energy_ranges["gamma"][40] = [6 * u.GeV, 660 * u.TeV]
|
|
125
|
-
energy_ranges["gamma"][60] = [12 * u.GeV, 990 * u.TeV]
|
|
126
|
-
|
|
127
|
-
for zenith_angle in energy_ranges["gamma"]:
|
|
128
|
-
energy_ranges["gamma_diffuse"][zenith_angle] = energy_ranges["gamma"][zenith_angle]
|
|
129
|
-
energy_ranges["electron"][zenith_angle] = energy_ranges["gamma"][zenith_angle]
|
|
130
|
-
|
|
131
|
-
energy_ranges["proton"][20] = [8 * u.GeV, 600 * u.TeV]
|
|
132
|
-
energy_ranges["proton"][40] = [12 * u.GeV, 800 * u.TeV]
|
|
133
|
-
energy_ranges["proton"][60] = [16 * u.GeV, 1800 * u.TeV]
|
|
134
|
-
|
|
135
|
-
energy_ranges["helium"][20] = [10 * u.GeV, 1200 * u.TeV]
|
|
136
|
-
energy_ranges["helium"][40] = [20 * u.GeV, 2400 * u.TeV]
|
|
137
|
-
energy_ranges["helium"][60] = [40 * u.GeV, 3600 * u.TeV]
|
|
138
|
-
|
|
139
|
-
energy_ranges["nitrogen"][20] = [40 * u.GeV, 4000 * u.TeV]
|
|
140
|
-
energy_ranges["nitrogen"][40] = [80 * u.GeV, 8000 * u.TeV]
|
|
141
|
-
energy_ranges["nitrogen"][60] = [160 * u.GeV, 12000 * u.TeV]
|
|
142
|
-
|
|
143
|
-
energy_ranges["silicon"][20] = [50 * u.GeV, 5000 * u.TeV]
|
|
144
|
-
energy_ranges["silicon"][40] = [100 * u.GeV, 10000 * u.TeV]
|
|
145
|
-
energy_ranges["silicon"][60] = [200 * u.GeV, 15000 * u.TeV]
|
|
146
|
-
|
|
147
|
-
energy_ranges["iron"][20] = [60 * u.GeV, 6000 * u.TeV]
|
|
148
|
-
energy_ranges["iron"][40] = [120 * u.GeV, 12000 * u.TeV]
|
|
149
|
-
energy_ranges["iron"][60] = [240 * u.GeV, 18000 * u.TeV]
|
|
150
|
-
|
|
151
|
-
return energy_ranges
|
|
152
|
-
|
|
153
|
-
def _define_hardcoded_number_of_showers(self):
|
|
154
|
-
"""
|
|
155
|
-
Define the hardcoded number of showers for the various primaries.
|
|
156
|
-
|
|
157
|
-
Returns
|
|
158
|
-
-------
|
|
159
|
-
number_of_showers: dict
|
|
160
|
-
Dictionary with the default number of showers for the various primaries.
|
|
161
|
-
"""
|
|
162
|
-
|
|
163
|
-
number_of_showers = defaultdict(dict)
|
|
164
|
-
number_of_showers["gamma"][20] = 5000
|
|
165
|
-
number_of_showers["gamma"][40] = 5000
|
|
166
|
-
number_of_showers["gamma"][60] = 2500
|
|
167
|
-
|
|
168
|
-
for zenith_angle in number_of_showers["gamma"]:
|
|
169
|
-
number_of_showers["gamma_diffuse"][zenith_angle] = number_of_showers["gamma"][
|
|
170
|
-
zenith_angle
|
|
171
|
-
]
|
|
172
|
-
number_of_showers["electron"][zenith_angle] = number_of_showers["gamma"][zenith_angle]
|
|
173
|
-
|
|
174
|
-
number_of_showers["proton"][20] = 15000
|
|
175
|
-
number_of_showers["proton"][40] = 15000
|
|
176
|
-
number_of_showers["proton"][60] = 7500
|
|
177
|
-
|
|
178
|
-
number_of_showers["helium"][20] = 10000
|
|
179
|
-
number_of_showers["helium"][40] = 10000
|
|
180
|
-
number_of_showers["helium"][60] = 5000
|
|
181
|
-
|
|
182
|
-
number_of_showers["nitrogen"][20] = 2000
|
|
183
|
-
number_of_showers["nitrogen"][40] = 2000
|
|
184
|
-
number_of_showers["nitrogen"][60] = 1000
|
|
185
|
-
|
|
186
|
-
number_of_showers["silicon"][20] = 1000
|
|
187
|
-
number_of_showers["silicon"][40] = 1000
|
|
188
|
-
number_of_showers["silicon"][60] = 500
|
|
189
|
-
|
|
190
|
-
return number_of_showers
|
|
191
|
-
|
|
192
|
-
@staticmethod
|
|
193
|
-
@u.quantity_input(zenith_angle=u.deg)
|
|
194
|
-
def interpolate_to_zenith_angle(
|
|
195
|
-
zenith_angle, zenith_angles_to_interpolate, values_to_interpolate
|
|
196
|
-
):
|
|
197
|
-
"""
|
|
198
|
-
Interpolate values like energy range or number of showers to the provided zenith angle.
|
|
199
|
-
|
|
200
|
-
Parameters
|
|
201
|
-
----------
|
|
202
|
-
zenith_angle: astropy.units.Quantity
|
|
203
|
-
Which zenith angle to interpolate to (in degrees).
|
|
204
|
-
zenith_angles_to_interpolate: list
|
|
205
|
-
List of zenith angles for which we have values to interpolate between.
|
|
206
|
-
values_to_interpolate: list
|
|
207
|
-
List of values to interpolate between.
|
|
208
|
-
|
|
209
|
-
Returns
|
|
210
|
-
-------
|
|
211
|
-
float
|
|
212
|
-
Interpolated value.
|
|
213
|
-
"""
|
|
214
|
-
interpolation_function = interp1d(
|
|
215
|
-
zenith_angles_to_interpolate, values_to_interpolate, kind="quadratic"
|
|
216
|
-
)
|
|
217
|
-
return interpolation_function(zenith_angle.to_value(u.deg)).item()
|
|
218
|
-
|
|
219
|
-
def energy_range_for_primary(self):
|
|
220
|
-
"""
|
|
221
|
-
Get the energy range for the primary particle for the given zenith angle.
|
|
222
|
-
|
|
223
|
-
Returns
|
|
224
|
-
-------
|
|
225
|
-
energy_range: list
|
|
226
|
-
List with the energy range for the primary particle for the given zenith angle.
|
|
227
|
-
"""
|
|
228
|
-
|
|
229
|
-
zenith_angles_to_interpolate = [*self.energy_ranges[self.primary].keys()]
|
|
230
|
-
min_energy_to_interpolate = [
|
|
231
|
-
energy[0].to_value(u.GeV) for energy in self.energy_ranges[self.primary].values()
|
|
232
|
-
]
|
|
233
|
-
max_energy_to_interpolate = [
|
|
234
|
-
energy[1].to_value(u.GeV) for energy in self.energy_ranges[self.primary].values()
|
|
235
|
-
]
|
|
236
|
-
|
|
237
|
-
return [
|
|
238
|
-
self.interpolate_to_zenith_angle(
|
|
239
|
-
self.zenith_angle, zenith_angles_to_interpolate, min_energy_to_interpolate
|
|
240
|
-
)
|
|
241
|
-
* u.GeV,
|
|
242
|
-
(
|
|
243
|
-
self.interpolate_to_zenith_angle(
|
|
244
|
-
self.zenith_angle, zenith_angles_to_interpolate, max_energy_to_interpolate
|
|
245
|
-
)
|
|
246
|
-
* u.GeV
|
|
247
|
-
).to(u.TeV),
|
|
248
|
-
]
|
|
249
|
-
|
|
250
|
-
def number_of_showers_for_primary(self):
|
|
251
|
-
"""
|
|
252
|
-
Get the number of showers for the primary particle for the given zenith angle.
|
|
253
|
-
|
|
254
|
-
Returns
|
|
255
|
-
-------
|
|
256
|
-
number_of_showers: int
|
|
257
|
-
Number of showers for the primary particle for the given zenith angle.
|
|
258
|
-
"""
|
|
259
|
-
|
|
260
|
-
zenith_angles_to_interpolate = [*self.energy_ranges[self.primary].keys()]
|
|
261
|
-
number_of_showers = [*self.number_of_showers[self.primary].values()]
|
|
262
|
-
|
|
263
|
-
return self.interpolate_to_zenith_angle(
|
|
264
|
-
self.zenith_angle,
|
|
265
|
-
zenith_angles_to_interpolate,
|
|
266
|
-
number_of_showers,
|
|
267
|
-
)
|
|
268
|
-
|
|
269
|
-
def view_cone_for_primary(self):
|
|
270
|
-
"""
|
|
271
|
-
Get the view cone for the primary particle.
|
|
272
|
-
All diffuse primaries have a view cone of 10 deg by default.
|
|
273
|
-
|
|
274
|
-
Returns
|
|
275
|
-
-------
|
|
276
|
-
view_cone: list
|
|
277
|
-
List with the view cone for the primary particle.
|
|
278
|
-
"""
|
|
279
|
-
if self.primary == "gamma":
|
|
280
|
-
return [0.0 * u.deg, 0.0 * u.deg]
|
|
281
|
-
|
|
282
|
-
return [0 * u.deg, 10 * u.deg]
|