gammasimtools 0.17.0__py3-none-any.whl → 0.19.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.17.0.dist-info → gammasimtools-0.19.0.dist-info}/METADATA +27 -69
- gammasimtools-0.19.0.dist-info/RECORD +393 -0
- {gammasimtools-0.17.0.dist-info → gammasimtools-0.19.0.dist-info}/entry_points.txt +10 -2
- {gammasimtools-0.17.0.dist-info → gammasimtools-0.19.0.dist-info}/licenses/LICENSE +1 -1
- simtools/_version.py +16 -3
- simtools/applications/calculate_trigger_rate.py +1 -1
- simtools/applications/convert_all_model_parameters_from_simtel.py +4 -3
- simtools/applications/convert_geo_coordinates_of_array_elements.py +3 -3
- simtools/applications/db_add_simulation_model_from_repository_to_db.py +10 -1
- simtools/applications/db_add_value_from_json_to_db.py +2 -1
- simtools/applications/db_development_tools/write_array_elements_positions_to_repository.py +8 -13
- simtools/applications/db_generate_compound_indexes.py +61 -0
- simtools/applications/db_get_file_from_db.py +1 -1
- simtools/applications/db_get_parameter_from_db.py +4 -4
- simtools/applications/db_inspect_databases.py +20 -10
- simtools/applications/derive_mirror_rnda.py +18 -12
- simtools/applications/derive_psf_parameters.py +59 -309
- simtools/applications/docs_produce_array_element_report.py +1 -1
- simtools/applications/docs_produce_calibration_reports.py +1 -1
- simtools/applications/docs_produce_model_parameter_reports.py +1 -1
- simtools/applications/docs_produce_simulation_configuration_report.py +1 -1
- simtools/applications/generate_corsika_histograms.py +1 -1
- simtools/applications/generate_default_metadata.py +8 -24
- simtools/applications/generate_sim_telarray_histograms.py +1 -1
- simtools/applications/generate_simtel_event_data.py +97 -5
- simtools/applications/maintain_simulation_model_add_production_table.py +71 -0
- simtools/applications/maintain_simulation_model_compare_productions.py +98 -0
- simtools/applications/{verify_simulation_model_production_tables.py → maintain_simulation_model_verify_production_tables.py} +9 -1
- simtools/applications/merge_tables.py +16 -18
- simtools/applications/plot_array_layout.py +3 -3
- simtools/applications/plot_simtel_events.py +379 -0
- simtools/applications/plot_tabular_data.py +21 -3
- simtools/applications/plot_tabular_data_for_model_parameter.py +104 -0
- simtools/applications/print_version.py +8 -9
- simtools/applications/production_derive_corsika_limits.py +64 -27
- simtools/applications/production_derive_statistics.py +1 -1
- simtools/applications/production_generate_grid.py +2 -2
- simtools/applications/production_merge_corsika_limits.py +214 -0
- simtools/applications/run_application.py +47 -113
- simtools/applications/simulate_calibration_events.py +166 -0
- simtools/applications/simulate_flasher.py +141 -0
- simtools/applications/{simulate_light_emission.py → simulate_illuminator.py} +35 -99
- simtools/applications/simulate_prod.py +6 -24
- simtools/applications/simulate_prod_htcondor_generator.py +7 -0
- simtools/applications/submit_array_layouts.py +2 -1
- simtools/applications/submit_model_parameter_from_external.py +1 -1
- simtools/applications/validate_camera_efficiency.py +30 -12
- simtools/applications/validate_camera_fov.py +1 -1
- simtools/applications/validate_cumulative_psf.py +1 -1
- simtools/applications/validate_file_using_schema.py +2 -1
- simtools/applications/validate_optics.py +1 -1
- simtools/camera/camera_efficiency.py +61 -45
- simtools/camera/single_photon_electron_spectrum.py +1 -1
- simtools/configuration/commandline_parser.py +31 -1
- simtools/configuration/configurator.py +4 -4
- simtools/constants.py +2 -0
- simtools/corsika/corsika_config.py +45 -25
- simtools/corsika/corsika_histograms.py +6 -5
- simtools/data_model/data_reader.py +2 -3
- simtools/data_model/metadata_collector.py +32 -36
- simtools/data_model/metadata_model.py +15 -12
- simtools/data_model/model_data_writer.py +13 -32
- simtools/data_model/schema.py +88 -24
- simtools/data_model/validate_data.py +34 -9
- simtools/db/db_handler.py +48 -37
- simtools/db/db_model_upload.py +3 -3
- simtools/dependencies.py +88 -25
- simtools/io/ascii_handler.py +279 -0
- simtools/{io_operations → io}/io_handler.py +25 -3
- simtools/{io_operations/io_table_handler.py → io/table_handler.py} +1 -1
- simtools/job_execution/htcondor_script_generator.py +15 -4
- simtools/layout/array_layout.py +1 -1
- simtools/layout/array_layout_utils.py +19 -8
- simtools/model/array_model.py +28 -5
- simtools/model/flasher_model.py +106 -0
- simtools/model/model_parameter.py +4 -4
- simtools/model/model_repository.py +197 -2
- simtools/model/telescope_model.py +3 -1
- simtools/production_configuration/derive_corsika_limits.py +361 -427
- simtools/production_configuration/derive_production_statistics_handler.py +7 -6
- simtools/production_configuration/generate_production_grid.py +9 -11
- simtools/production_configuration/merge_corsika_limits.py +528 -0
- simtools/ray_tracing/mirror_panel_psf.py +1 -0
- simtools/ray_tracing/psf_parameter_optimisation.py +792 -0
- simtools/ray_tracing/ray_tracing.py +6 -2
- simtools/reporting/docs_read_parameters.py +150 -62
- simtools/resources/array-element-ids.json +126 -0
- simtools/runners/corsika_runner.py +1 -1
- simtools/runners/corsika_simtel_runner.py +14 -5
- simtools/runners/runner_services.py +10 -5
- simtools/runners/simtools_runner.py +267 -0
- simtools/schemas/application_workflow.metaschema.yml +101 -68
- simtools/schemas/input/MST_mirror_2f_measurements.schema.yml +1 -1
- simtools/schemas/input/single_pe_spectrum.schema.yml +1 -1
- simtools/schemas/metadata.metaschema.yml +577 -3
- simtools/schemas/model_parameter.metaschema.yml +6 -6
- simtools/schemas/model_parameter_and_data_schema.metaschema.yml +7 -3
- simtools/schemas/model_parameters/adjust_gain.schema.yml +1 -1
- simtools/schemas/model_parameters/altitude.schema.yml +1 -1
- simtools/schemas/model_parameters/array_coordinates.schema.yml +1 -1
- simtools/schemas/model_parameters/array_coordinates_UTM.schema.yml +1 -1
- simtools/schemas/model_parameters/array_element_position_ground.schema.yml +1 -1
- simtools/schemas/model_parameters/array_element_position_utm.schema.yml +1 -1
- simtools/schemas/model_parameters/array_layouts.schema.yml +1 -1
- simtools/schemas/model_parameters/array_triggers.schema.yml +1 -1
- simtools/schemas/model_parameters/array_window.schema.yml +1 -1
- simtools/schemas/model_parameters/asum_clipping.schema.yml +1 -1
- simtools/schemas/model_parameters/asum_offset.schema.yml +1 -1
- simtools/schemas/model_parameters/asum_shaping.schema.yml +1 -1
- simtools/schemas/model_parameters/asum_threshold.schema.yml +1 -1
- simtools/schemas/model_parameters/atmospheric_profile.schema.yml +42 -1
- simtools/schemas/model_parameters/atmospheric_transmission.schema.yml +44 -1
- simtools/schemas/model_parameters/axes_offsets.schema.yml +1 -1
- simtools/schemas/model_parameters/camera_body_diameter.schema.yml +1 -1
- simtools/schemas/model_parameters/camera_body_shape.schema.yml +1 -1
- simtools/schemas/model_parameters/camera_config_file.schema.yml +1 -1
- simtools/schemas/model_parameters/camera_config_rotate.schema.yml +1 -1
- simtools/schemas/model_parameters/camera_degraded_efficiency.schema.yml +1 -1
- simtools/schemas/model_parameters/camera_degraded_map.schema.yml +1 -1
- simtools/schemas/model_parameters/camera_depth.schema.yml +1 -1
- simtools/schemas/model_parameters/camera_filter.schema.yml +11 -1
- simtools/schemas/model_parameters/camera_filter_incidence_angle.schema.yml +11 -1
- simtools/schemas/model_parameters/camera_pixels.schema.yml +1 -1
- simtools/schemas/model_parameters/camera_transmission.schema.yml +1 -1
- simtools/schemas/model_parameters/channels_per_chip.schema.yml +1 -1
- simtools/schemas/model_parameters/correct_nsb_spectrum_to_telescope_altitude.schema.yml +1 -1
- simtools/schemas/model_parameters/corsika_cherenkov_photon_bunch_size.schema.yml +1 -1
- simtools/schemas/model_parameters/corsika_cherenkov_photon_wavelength_range.schema.yml +1 -1
- simtools/schemas/model_parameters/corsika_first_interaction_height.schema.yml +1 -1
- simtools/schemas/model_parameters/corsika_iact_io_buffer.schema.yml +1 -1
- simtools/schemas/model_parameters/corsika_iact_max_bunches.schema.yml +1 -1
- simtools/schemas/model_parameters/corsika_iact_split_auto.schema.yml +1 -1
- simtools/schemas/model_parameters/corsika_longitudinal_shower_development.schema.yml +1 -1
- simtools/schemas/model_parameters/corsika_observation_level.schema.yml +1 -1
- simtools/schemas/model_parameters/corsika_particle_kinetic_energy_cutoff.schema.yml +1 -1
- simtools/schemas/model_parameters/corsika_starting_grammage.schema.yml +3 -3
- simtools/schemas/model_parameters/dark_events.schema.yml +1 -1
- simtools/schemas/model_parameters/default_trigger.schema.yml +1 -1
- simtools/schemas/model_parameters/design_model.schema.yml +1 -1
- simtools/schemas/model_parameters/disc_ac_coupled.schema.yml +1 -1
- simtools/schemas/model_parameters/disc_bins.schema.yml +1 -1
- simtools/schemas/model_parameters/disc_start.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_amplitude.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_fall_time.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_gate_length.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_hysteresis.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_output_amplitude.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_output_var_percent.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_pulse_shape.schema.yml +32 -1
- simtools/schemas/model_parameters/discriminator_rise_time.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_scale_threshold.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_sigsum_over_threshold.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_threshold.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_time_over_threshold.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_var_gate_length.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_var_sigsum_over_threshold.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_var_threshold.schema.yml +1 -1
- simtools/schemas/model_parameters/discriminator_var_time_over_threshold.schema.yml +1 -1
- simtools/schemas/model_parameters/dish_shape_length.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_clipping.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_ignore_below.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_offset.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_pedsub.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_pre_clipping.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_prescale.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_presum_max.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_presum_shift.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_shaping.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_shaping_renormalize.schema.yml +1 -1
- simtools/schemas/model_parameters/dsum_threshold.schema.yml +2 -2
- simtools/schemas/model_parameters/dsum_zero_clip.schema.yml +1 -1
- simtools/schemas/model_parameters/effective_focal_length.schema.yml +1 -1
- simtools/schemas/model_parameters/epsg_code.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_ac_coupled.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_amplitude.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_bins.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_compensate_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_dev_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_err_compensate_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_err_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_amplitude.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_compensate_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_dev_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_err_compensate_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_err_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_max_signal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_max_sum.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_noise.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_sensitivity.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_sysvar_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_var_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_lg_var_sensitivity.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_long_event_threshold.schema.yml +35 -0
- simtools/schemas/model_parameters/fadc_long_sum_bins.schema.yml +41 -0
- simtools/schemas/model_parameters/fadc_long_sum_offset.schema.yml +38 -0
- simtools/schemas/model_parameters/fadc_max_signal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_max_sum.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_mhz.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_noise.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_pulse_shape.schema.yml +13 -1
- simtools/schemas/model_parameters/fadc_sensitivity.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_sum_bins.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_sum_offset.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_sysvar_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_var_pedestal.schema.yml +1 -1
- simtools/schemas/model_parameters/fadc_var_sensitivity.schema.yml +1 -1
- simtools/schemas/model_parameters/fake_mirror_list.schema.yml +1 -1
- simtools/schemas/model_parameters/flatfielding.schema.yml +1 -1
- simtools/schemas/model_parameters/focal_length.schema.yml +1 -1
- simtools/schemas/model_parameters/focal_surface_parameters.schema.yml +1 -1
- simtools/schemas/model_parameters/focal_surface_ref_radius.schema.yml +1 -1
- simtools/schemas/model_parameters/focus_offset.schema.yml +1 -1
- simtools/schemas/model_parameters/gain_variation.schema.yml +1 -1
- simtools/schemas/model_parameters/geomag_horizontal.schema.yml +1 -1
- simtools/schemas/model_parameters/geomag_rotation.schema.yml +1 -1
- simtools/schemas/model_parameters/geomag_vertical.schema.yml +1 -1
- simtools/schemas/model_parameters/hg_lg_variation.schema.yml +1 -1
- simtools/schemas/model_parameters/iobuf_maximum.schema.yml +1 -1
- simtools/schemas/model_parameters/iobuf_output_maximum.schema.yml +1 -1
- simtools/schemas/model_parameters/laser_events.schema.yml +1 -1
- simtools/schemas/model_parameters/laser_external_trigger.schema.yml +1 -1
- simtools/schemas/model_parameters/laser_photons.schema.yml +1 -1
- simtools/schemas/model_parameters/laser_pulse_exptime.schema.yml +1 -1
- simtools/schemas/model_parameters/laser_pulse_offset.schema.yml +1 -1
- simtools/schemas/model_parameters/laser_pulse_sigtime.schema.yml +1 -1
- simtools/schemas/model_parameters/laser_pulse_twidth.schema.yml +1 -1
- simtools/schemas/model_parameters/laser_var_photons.schema.yml +1 -1
- simtools/schemas/model_parameters/laser_wavelength.schema.yml +1 -1
- simtools/schemas/model_parameters/led_events.schema.yml +1 -1
- simtools/schemas/model_parameters/led_photons.schema.yml +1 -1
- simtools/schemas/model_parameters/led_pulse_offset.schema.yml +1 -1
- simtools/schemas/model_parameters/led_pulse_sigtime.schema.yml +1 -1
- simtools/schemas/model_parameters/led_var_photons.schema.yml +1 -1
- simtools/schemas/model_parameters/lightguide_efficiency_vs_incidence_angle.schema.yml +11 -1
- simtools/schemas/model_parameters/lightguide_efficiency_vs_wavelength.schema.yml +50 -1
- simtools/schemas/model_parameters/min_photoelectrons.schema.yml +1 -1
- simtools/schemas/model_parameters/min_photons.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_align_random_distance.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_align_random_horizontal.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_align_random_vertical.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_class.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_degraded_reflection.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_focal_length.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_list.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_offset.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_panel_2f_measurements.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_reflection_random_angle.schema.yml +1 -1
- simtools/schemas/model_parameters/mirror_reflectivity.schema.yml +11 -1
- simtools/schemas/model_parameters/multiplicity_offset.schema.yml +1 -1
- simtools/schemas/model_parameters/muon_mono_threshold.schema.yml +1 -1
- simtools/schemas/model_parameters/nsb_autoscale_airmass.schema.yml +1 -1
- simtools/schemas/model_parameters/nsb_gain_drop_scale.schema.yml +1 -1
- simtools/schemas/model_parameters/nsb_offaxis.schema.yml +1 -1
- simtools/schemas/model_parameters/nsb_pixel_rate.schema.yml +1 -1
- simtools/schemas/model_parameters/nsb_reference_spectrum.schema.yml +13 -1
- simtools/schemas/model_parameters/nsb_reference_value.schema.yml +1 -1
- simtools/schemas/model_parameters/nsb_scaling_factor.schema.yml +1 -1
- simtools/schemas/model_parameters/nsb_sky_map.schema.yml +1 -1
- simtools/schemas/model_parameters/nsb_spectrum.schema.yml +1 -1
- simtools/schemas/model_parameters/num_gains.schema.yml +1 -1
- simtools/schemas/model_parameters/only_triggered_telescopes.schema.yml +1 -1
- simtools/schemas/model_parameters/optics_properties.schema.yml +1 -1
- simtools/schemas/model_parameters/parabolic_dish.schema.yml +1 -1
- simtools/schemas/model_parameters/pedestal_events.schema.yml +1 -1
- simtools/schemas/model_parameters/photon_delay.schema.yml +1 -1
- simtools/schemas/model_parameters/photons_per_run.schema.yml +1 -1
- simtools/schemas/model_parameters/pixel_cells.schema.yml +1 -1
- simtools/schemas/model_parameters/pixels_parallel.schema.yml +1 -1
- simtools/schemas/model_parameters/pixeltrg_time_step.schema.yml +1 -1
- simtools/schemas/model_parameters/pm_average_gain.schema.yml +1 -1
- simtools/schemas/model_parameters/pm_collection_efficiency.schema.yml +1 -1
- simtools/schemas/model_parameters/pm_gain_index.schema.yml +1 -1
- simtools/schemas/model_parameters/pm_photoelectron_spectrum.schema.yml +20 -1
- simtools/schemas/model_parameters/pm_transit_time.schema.yml +1 -1
- simtools/schemas/model_parameters/pm_voltage_variation.schema.yml +1 -1
- simtools/schemas/model_parameters/primary_mirror_degraded_map.schema.yml +1 -1
- simtools/schemas/model_parameters/primary_mirror_diameter.schema.yml +1 -1
- simtools/schemas/model_parameters/primary_mirror_hole_diameter.schema.yml +1 -1
- simtools/schemas/model_parameters/primary_mirror_incidence_angle.schema.yml +11 -1
- simtools/schemas/model_parameters/primary_mirror_parameters.schema.yml +1 -1
- simtools/schemas/model_parameters/primary_mirror_ref_radius.schema.yml +1 -1
- simtools/schemas/model_parameters/primary_mirror_segmentation.schema.yml +1 -1
- simtools/schemas/model_parameters/qe_variation.schema.yml +1 -1
- simtools/schemas/model_parameters/quantum_efficiency.schema.yml +11 -1
- simtools/schemas/model_parameters/random_focal_length.schema.yml +1 -1
- simtools/schemas/model_parameters/random_generator.schema.yml +1 -1
- simtools/schemas/model_parameters/random_mono_probability.schema.yml +1 -1
- simtools/schemas/model_parameters/reference_point_altitude.schema.yml +1 -1
- simtools/schemas/model_parameters/reference_point_latitude.schema.yml +1 -1
- simtools/schemas/model_parameters/reference_point_longitude.schema.yml +1 -1
- simtools/schemas/model_parameters/reference_point_utm_east.schema.yml +1 -1
- simtools/schemas/model_parameters/reference_point_utm_north.schema.yml +1 -1
- simtools/schemas/model_parameters/sampled_output.schema.yml +1 -1
- simtools/schemas/model_parameters/save_pe_with_amplitude.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_baffle.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_degraded_map.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_degraded_reflection.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_diameter.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_hole_diameter.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_incidence_angle.schema.yml +11 -1
- simtools/schemas/model_parameters/secondary_mirror_parameters.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_ref_radius.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_reflectivity.schema.yml +11 -1
- simtools/schemas/model_parameters/secondary_mirror_segmentation.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_shadow_diameter.schema.yml +1 -1
- simtools/schemas/model_parameters/secondary_mirror_shadow_offset.schema.yml +1 -1
- simtools/schemas/model_parameters/stars.schema.yml +1 -1
- simtools/schemas/model_parameters/store_photoelectrons.schema.yml +1 -1
- simtools/schemas/model_parameters/tailcut_scale.schema.yml +1 -1
- simtools/schemas/model_parameters/telescope_axis_height.schema.yml +1 -1
- simtools/schemas/model_parameters/telescope_random_angle.schema.yml +1 -1
- simtools/schemas/model_parameters/telescope_random_error.schema.yml +1 -1
- simtools/schemas/model_parameters/telescope_sphere_radius.schema.yml +1 -1
- simtools/schemas/model_parameters/telescope_transmission.schema.yml +1 -1
- simtools/schemas/model_parameters/teltrig_min_sigsum.schema.yml +1 -1
- simtools/schemas/model_parameters/teltrig_min_time.schema.yml +1 -1
- simtools/schemas/model_parameters/transit_time_calib_error.schema.yml +1 -1
- simtools/schemas/model_parameters/transit_time_compensate_error.schema.yml +1 -1
- simtools/schemas/model_parameters/transit_time_compensate_step.schema.yml +1 -1
- simtools/schemas/model_parameters/transit_time_error.schema.yml +1 -1
- simtools/schemas/model_parameters/transit_time_jitter.schema.yml +1 -1
- simtools/schemas/model_parameters/trigger_current_limit.schema.yml +1 -1
- simtools/schemas/model_parameters/trigger_delay_compensation.schema.yml +1 -1
- simtools/schemas/model_parameters/trigger_pixels.schema.yml +1 -1
- simtools/schemas/plot_configuration.metaschema.yml +51 -59
- simtools/schemas/production_configuration_metrics.schema.yml +12 -2
- simtools/schemas/production_tables.schema.yml +2 -2
- simtools/simtel/simtel_config_reader.py +2 -2
- simtools/simtel/simtel_config_writer.py +16 -4
- simtools/simtel/simtel_io_event_histograms.py +746 -0
- simtools/simtel/simtel_io_event_reader.py +16 -43
- simtools/simtel/simtel_io_event_writer.py +46 -10
- simtools/simtel/simtel_io_histogram.py +3 -1
- simtools/simtel/simtel_io_histograms.py +7 -3
- simtools/simtel/simtel_io_metadata.py +99 -3
- simtools/simtel/simtel_table_reader.py +92 -10
- simtools/simtel/simulator_array.py +138 -10
- simtools/simtel/simulator_camera_efficiency.py +32 -23
- simtools/simtel/simulator_light_emission.py +437 -271
- simtools/simtel/simulator_ray_tracing.py +1 -1
- simtools/simulator.py +105 -147
- simtools/testing/configuration.py +24 -26
- simtools/testing/helpers.py +2 -2
- simtools/testing/log_inspector.py +50 -0
- simtools/testing/validate_output.py +87 -37
- simtools/utils/general.py +125 -257
- simtools/utils/geometry.py +36 -0
- simtools/utils/names.py +72 -3
- simtools/visualization/legend_handlers.py +180 -264
- simtools/visualization/plot_array_layout.py +20 -8
- simtools/visualization/plot_pixels.py +1 -2
- simtools/visualization/plot_tables.py +202 -27
- simtools/visualization/simtel_event_plots.py +816 -0
- simtools/visualization/visualize.py +4 -101
- gammasimtools-0.17.0.dist-info/RECORD +0 -374
- simtools/production_configuration/derive_corsika_limits_grid.py +0 -189
- {gammasimtools-0.17.0.dist-info → gammasimtools-0.19.0.dist-info}/WHEEL +0 -0
- {gammasimtools-0.17.0.dist-info → gammasimtools-0.19.0.dist-info}/top_level.txt +0 -0
- /simtools/{io_operations → io}/hdf5_handler.py +0 -0
- /simtools/{io_operations → io}/legacy_data_handler.py +0 -0
- /simtools/{schemas → resources}/array_elements.yml +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import logging
|
|
4
4
|
|
|
5
|
-
from simtools.
|
|
5
|
+
from simtools.io import io_handler
|
|
6
6
|
from simtools.runners.simtel_runner import InvalidOutputFileError, SimtelRunner
|
|
7
7
|
from simtools.utils.general import clear_default_sim_telarray_cfg_directories
|
|
8
8
|
|
|
@@ -68,6 +68,73 @@ class SimulatorArray(SimtelRunner):
|
|
|
68
68
|
str
|
|
69
69
|
Command to run sim_telarray.
|
|
70
70
|
"""
|
|
71
|
+
command = self._common_run_command(run_number, weak_pointing)
|
|
72
|
+
|
|
73
|
+
command += f" {input_file}"
|
|
74
|
+
command += f" | gzip > {self._log_file} 2>&1 || exit"
|
|
75
|
+
command += super().get_config_option(
|
|
76
|
+
"power_law",
|
|
77
|
+
SimulatorArray.get_power_law_for_sim_telarray_histograms(
|
|
78
|
+
self.corsika_config.primary_particle
|
|
79
|
+
),
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
return clear_default_sim_telarray_cfg_directories(command)
|
|
83
|
+
|
|
84
|
+
def make_run_command_for_calibration_simulations(
|
|
85
|
+
self, run_number=None, input_file=None, calibration_runner_args=None
|
|
86
|
+
):
|
|
87
|
+
"""
|
|
88
|
+
Build and return the command to run sim_telarray for calibration simulations.
|
|
89
|
+
|
|
90
|
+
Parameters
|
|
91
|
+
----------
|
|
92
|
+
calibration_runner_args: dict
|
|
93
|
+
Dictionary with calibration runner arguments.
|
|
94
|
+
input_file: str
|
|
95
|
+
Full path of the input CORSIKA file
|
|
96
|
+
run_number: int (optional)
|
|
97
|
+
run number
|
|
98
|
+
|
|
99
|
+
Returns
|
|
100
|
+
-------
|
|
101
|
+
str
|
|
102
|
+
Command to run sim_telarray for pedestal simulations.
|
|
103
|
+
"""
|
|
104
|
+
command = self._common_run_command(run_number)
|
|
105
|
+
|
|
106
|
+
command += super().get_config_option(
|
|
107
|
+
"Altitude",
|
|
108
|
+
self.corsika_config.array_model.site_model.get_parameter_value_with_unit(
|
|
109
|
+
"reference_point_altitude"
|
|
110
|
+
).to_value("m"),
|
|
111
|
+
)
|
|
112
|
+
command += super().get_config_option(
|
|
113
|
+
"nsb_scaling_factor", calibration_runner_args["nsb_scaling_factor"]
|
|
114
|
+
)
|
|
115
|
+
if calibration_runner_args.get("stars"):
|
|
116
|
+
command += super().get_config_option("stars", calibration_runner_args["stars"])
|
|
117
|
+
|
|
118
|
+
if calibration_runner_args.get("run_mode") in ("pedestals", "nsb_only_pedestals"):
|
|
119
|
+
command += super().get_config_option(
|
|
120
|
+
"pedestal_events", calibration_runner_args["number_of_events"]
|
|
121
|
+
)
|
|
122
|
+
if calibration_runner_args.get("run_mode") == "nsb_only_pedestals":
|
|
123
|
+
command += self._nsb_only_pedestals_command()
|
|
124
|
+
if calibration_runner_args.get("run_mode") == "dark_pedestals":
|
|
125
|
+
command += super().get_config_option(
|
|
126
|
+
"dark_events", calibration_runner_args["number_of_events"]
|
|
127
|
+
)
|
|
128
|
+
if calibration_runner_args.get("run_mode") == "flasher":
|
|
129
|
+
command += self._flasher_command(calibration_runner_args)
|
|
130
|
+
|
|
131
|
+
command += f" {input_file}"
|
|
132
|
+
command += f" | gzip > {self._log_file} 2>&1 || exit"
|
|
133
|
+
|
|
134
|
+
return clear_default_sim_telarray_cfg_directories(command)
|
|
135
|
+
|
|
136
|
+
def _common_run_command(self, run_number, weak_pointing=None):
|
|
137
|
+
"""Build generic run command for sim_telarray."""
|
|
71
138
|
config_dir = self.corsika_config.array_model.get_config_directory()
|
|
72
139
|
self._log_file = self.get_file_name(file_type="log", run_number=run_number)
|
|
73
140
|
histogram_file = self.get_file_name(file_type="histogram", run_number=run_number)
|
|
@@ -83,12 +150,6 @@ class SimulatorArray(SimtelRunner):
|
|
|
83
150
|
command += super().get_config_option(
|
|
84
151
|
"telescope_phi", self.corsika_config.azimuth_angle, weak_pointing
|
|
85
152
|
)
|
|
86
|
-
command += super().get_config_option(
|
|
87
|
-
"power_law",
|
|
88
|
-
SimulatorArray.get_power_law_for_sim_telarray_histograms(
|
|
89
|
-
self.corsika_config.primary_particle
|
|
90
|
-
),
|
|
91
|
-
)
|
|
92
153
|
command += super().get_config_option("histogram_file", histogram_file)
|
|
93
154
|
command += super().get_config_option("random_state", "none")
|
|
94
155
|
if self.sim_telarray_seeds and self.sim_telarray_seeds.get("random_instrument_instances"):
|
|
@@ -100,10 +161,77 @@ class SimulatorArray(SimtelRunner):
|
|
|
100
161
|
command += super().get_config_option("random_seed", self.sim_telarray_seeds["seed"])
|
|
101
162
|
command += super().get_config_option("show", "all")
|
|
102
163
|
command += super().get_config_option("output_file", output_file)
|
|
103
|
-
command += f" {input_file}"
|
|
104
|
-
command += f" | gzip > {self._log_file} 2>&1 || exit"
|
|
105
164
|
|
|
106
|
-
return
|
|
165
|
+
return command
|
|
166
|
+
|
|
167
|
+
def _flasher_command(self, calibration_runner_args):
|
|
168
|
+
"""
|
|
169
|
+
Generate the command to run sim_telarray for flasher simulations.
|
|
170
|
+
|
|
171
|
+
Parameters
|
|
172
|
+
----------
|
|
173
|
+
calibration_runner_args: dict
|
|
174
|
+
Dictionary with calibration runner arguments.
|
|
175
|
+
|
|
176
|
+
Returns
|
|
177
|
+
-------
|
|
178
|
+
str
|
|
179
|
+
Command to run sim_telarray for flasher simulations.
|
|
180
|
+
"""
|
|
181
|
+
command = super().get_config_option(
|
|
182
|
+
"laser_events", calibration_runner_args["number_of_events"]
|
|
183
|
+
)
|
|
184
|
+
command += super().get_config_option(
|
|
185
|
+
"laser_photons", calibration_runner_args["flasher_photons"]
|
|
186
|
+
)
|
|
187
|
+
command += super().get_config_option(
|
|
188
|
+
"laser_var_photons", calibration_runner_args["flasher_var_photons"]
|
|
189
|
+
)
|
|
190
|
+
command += super().get_config_option(
|
|
191
|
+
"laser_pulse_exptime", calibration_runner_args["flasher_exp_time"]
|
|
192
|
+
)
|
|
193
|
+
command += super().get_config_option(
|
|
194
|
+
"laser_pulse_sigtime", calibration_runner_args["flasher_sig_time"]
|
|
195
|
+
)
|
|
196
|
+
command += super().get_config_option("laser_external_trigger", 1)
|
|
197
|
+
|
|
198
|
+
return command
|
|
199
|
+
|
|
200
|
+
def _nsb_only_pedestals_command(self):
|
|
201
|
+
"""
|
|
202
|
+
Generate the command to run sim_telarray for nsb-only pedestal simulations.
|
|
203
|
+
|
|
204
|
+
Returns
|
|
205
|
+
-------
|
|
206
|
+
str
|
|
207
|
+
Command to run sim_telarray.
|
|
208
|
+
"""
|
|
209
|
+
null_values = [
|
|
210
|
+
"fadc_noise",
|
|
211
|
+
"fadc_lg_noise",
|
|
212
|
+
"qe_variation",
|
|
213
|
+
"gain_variation",
|
|
214
|
+
"fadc_var_pedestal",
|
|
215
|
+
"fadc_err_pedestal",
|
|
216
|
+
"fadc_sysvar_pedestal",
|
|
217
|
+
"fadc_dev_pedestal",
|
|
218
|
+
]
|
|
219
|
+
null_command_parts = []
|
|
220
|
+
for param in null_values:
|
|
221
|
+
null_command_parts.append(super().get_config_option(param, 0.0))
|
|
222
|
+
command = " ".join(null_command_parts)
|
|
223
|
+
|
|
224
|
+
one_values = [
|
|
225
|
+
"fadc_lg_var_pedestal",
|
|
226
|
+
"fadc_lg_err_pedestal",
|
|
227
|
+
"fadc_lg_dev_pedestal",
|
|
228
|
+
"fadc_lg_sysvar_pedestal",
|
|
229
|
+
]
|
|
230
|
+
one_command_parts = []
|
|
231
|
+
for param in one_values:
|
|
232
|
+
one_command_parts.append(super().get_config_option(param, -1.0))
|
|
233
|
+
command += " " + " ".join(one_command_parts)
|
|
234
|
+
return command
|
|
107
235
|
|
|
108
236
|
def _check_run_result(self, run_number=None):
|
|
109
237
|
"""
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import logging
|
|
4
4
|
from pathlib import Path
|
|
5
5
|
|
|
6
|
-
from simtools.
|
|
6
|
+
from simtools.io import ascii_handler
|
|
7
7
|
from simtools.runners.simtel_runner import SimtelRunner
|
|
8
8
|
from simtools.utils import general
|
|
9
9
|
|
|
@@ -82,41 +82,27 @@ class SimulatorCameraEfficiency(SimtelRunner):
|
|
|
82
82
|
"""Prepare the command used to run testeff."""
|
|
83
83
|
self._logger.debug("Preparing the command to run testeff")
|
|
84
84
|
|
|
85
|
-
# Processing camera pixel features
|
|
86
85
|
pixel_shape = self._telescope_model.camera.get_pixel_shape()
|
|
87
86
|
pixel_shape_cmd = "-hpix" if pixel_shape in [1, 3] else "-spix"
|
|
88
87
|
pixel_diameter = self._telescope_model.camera.get_pixel_diameter()
|
|
89
88
|
|
|
90
|
-
# Processing focal length
|
|
91
89
|
focal_length = self._telescope_model.get_telescope_effective_focal_length("m", True)
|
|
92
90
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
except InvalidModelParameterError:
|
|
98
|
-
pass
|
|
99
|
-
|
|
100
|
-
# Processing camera transmission
|
|
101
|
-
camera_transmission = 1
|
|
102
|
-
try:
|
|
103
|
-
camera_transmission = self._telescope_model.get_parameter_value("camera_transmission")
|
|
104
|
-
except KeyError:
|
|
105
|
-
pass
|
|
106
|
-
|
|
107
|
-
# Processing camera filter
|
|
108
|
-
# A special case is testeff does not support 2D distributions
|
|
91
|
+
mirror_class = self._telescope_model.get_parameter_value("mirror_class")
|
|
92
|
+
curvature_radius = self._get_curvature_radius(mirror_class)
|
|
93
|
+
camera_transmission = self._telescope_model.get_parameter_value("camera_transmission")
|
|
94
|
+
|
|
109
95
|
camera_filter_file = self._telescope_model.get_parameter_value("camera_filter")
|
|
96
|
+
# testeff does not support 2D distributions
|
|
110
97
|
if self._telescope_model.is_file_2d("camera_filter"):
|
|
111
98
|
camera_filter_file = self._get_one_dim_distribution(
|
|
112
99
|
"camera_filter", "camera_filter_incidence_angle"
|
|
113
100
|
)
|
|
114
101
|
|
|
115
|
-
# Processing mirror reflectivity
|
|
116
|
-
# A special case is testeff does not support 2D distributions
|
|
117
102
|
mirror_reflectivity = self._telescope_model.get_parameter_value("mirror_reflectivity")
|
|
118
103
|
if mirror_class == 2:
|
|
119
104
|
mirror_reflectivity_secondary = mirror_reflectivity
|
|
105
|
+
# testeff does not support 2D distributions
|
|
120
106
|
if self._telescope_model.is_file_2d("mirror_reflectivity"):
|
|
121
107
|
mirror_reflectivity = self._get_one_dim_distribution(
|
|
122
108
|
"mirror_reflectivity", "primary_mirror_incidence_angle"
|
|
@@ -136,6 +122,7 @@ class SimulatorCameraEfficiency(SimtelRunner):
|
|
|
136
122
|
command += f" -alt {self._site_model.get_parameter_value('corsika_observation_level')}"
|
|
137
123
|
command += f" -fatm {self._site_model.get_parameter_value('atmospheric_transmission')}"
|
|
138
124
|
command += f" -flen {focal_length}"
|
|
125
|
+
command += f" -fcur {curvature_radius:.3f}"
|
|
139
126
|
command += f" {pixel_shape_cmd} {pixel_diameter}"
|
|
140
127
|
if mirror_class == 0:
|
|
141
128
|
command += f" -fmir {self._telescope_model.get_parameter_value('mirror_list')}"
|
|
@@ -227,7 +214,8 @@ class SimulatorCameraEfficiency(SimtelRunner):
|
|
|
227
214
|
two_dim_distribution, incidence_angle_distribution
|
|
228
215
|
)
|
|
229
216
|
new_file_name = (
|
|
230
|
-
f"weighted_average_1D_{
|
|
217
|
+
f"weighted_average_1D_{weighting_distribution_parameter}"
|
|
218
|
+
f"_{self._telescope_model.get_parameter_value(two_dim_parameter)}"
|
|
231
219
|
)
|
|
232
220
|
return self._telescope_model.export_table_to_model_directory(
|
|
233
221
|
new_file_name, distribution_to_export
|
|
@@ -257,7 +245,7 @@ class SimulatorCameraEfficiency(SimtelRunner):
|
|
|
257
245
|
self._telescope_model.config_file_directory / Path(nsb_spectrum_file).name
|
|
258
246
|
)
|
|
259
247
|
|
|
260
|
-
lines =
|
|
248
|
+
lines = ascii_handler.read_file_encoded_in_utf_or_latin(nsb_spectrum_file)
|
|
261
249
|
|
|
262
250
|
with open(validated_nsb_spectrum_file, "w", encoding="utf-8") as file:
|
|
263
251
|
for line in lines:
|
|
@@ -271,3 +259,24 @@ class SimulatorCameraEfficiency(SimtelRunner):
|
|
|
271
259
|
else:
|
|
272
260
|
file.write(line)
|
|
273
261
|
return validated_nsb_spectrum_file
|
|
262
|
+
|
|
263
|
+
def _get_curvature_radius(self, mirror_class=1):
|
|
264
|
+
"""Get radius of curvature of dish."""
|
|
265
|
+
if mirror_class == 2:
|
|
266
|
+
return (
|
|
267
|
+
self._telescope_model.get_parameter_value_with_unit("primary_mirror_diameter")
|
|
268
|
+
.to("m")
|
|
269
|
+
.value
|
|
270
|
+
)
|
|
271
|
+
|
|
272
|
+
if self._telescope_model.get_parameter_value("parabolic_dish"):
|
|
273
|
+
return (
|
|
274
|
+
2.0
|
|
275
|
+
* self._telescope_model.get_parameter_value_with_unit("dish_shape_length")
|
|
276
|
+
.to("m")
|
|
277
|
+
.value
|
|
278
|
+
)
|
|
279
|
+
|
|
280
|
+
return (
|
|
281
|
+
self._telescope_model.get_parameter_value_with_unit("dish_shape_length").to("m").value
|
|
282
|
+
)
|