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
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
"""Tools for running applications in the simtools framework."""
|
|
2
|
+
|
|
3
|
+
import shutil
|
|
4
|
+
import subprocess
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
|
|
7
|
+
import simtools.utils.general as gen
|
|
8
|
+
from simtools import dependencies
|
|
9
|
+
from simtools.io import ascii_handler
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def run_applications(args_dict, db_config, logger):
|
|
13
|
+
"""
|
|
14
|
+
Run simtools applications step-by-step as defined in a configuration file.
|
|
15
|
+
|
|
16
|
+
Parameters
|
|
17
|
+
----------
|
|
18
|
+
args_dict : dict
|
|
19
|
+
Dictionary containing command line arguments.
|
|
20
|
+
db_config : dict
|
|
21
|
+
Database configuration
|
|
22
|
+
logger : logging.Logger
|
|
23
|
+
Logger for logging application output.
|
|
24
|
+
"""
|
|
25
|
+
configurations, runtime_environment, log_file = _read_application_configuration(
|
|
26
|
+
args_dict["configuration_file"], args_dict.get("steps"), logger
|
|
27
|
+
)
|
|
28
|
+
run_time = (
|
|
29
|
+
read_runtime_environment(runtime_environment)
|
|
30
|
+
if not args_dict["ignore_runtime_environment"]
|
|
31
|
+
else []
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
with log_file.open("w", encoding="utf-8") as file:
|
|
35
|
+
file.write("Running simtools applications\n")
|
|
36
|
+
file.write(dependencies.get_version_string(db_config, run_time))
|
|
37
|
+
|
|
38
|
+
for config in configurations:
|
|
39
|
+
app = config.get("application")
|
|
40
|
+
if not config.get("run_application"):
|
|
41
|
+
logger.info(f"Skipping application: {app}")
|
|
42
|
+
continue
|
|
43
|
+
logger.info(f"Running application: {app}")
|
|
44
|
+
stdout, stderr = run_application(run_time, app, config.get("configuration"), logger)
|
|
45
|
+
file.write("=" * 80 + "\n")
|
|
46
|
+
file.write(f"Application: {app}\nSTDOUT:\n{stdout}\nSTDERR:\n{stderr}\n")
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def run_application(runtime_environment, application, configuration, logger):
|
|
50
|
+
"""
|
|
51
|
+
Run a simtools application and return stdout and stderr.
|
|
52
|
+
|
|
53
|
+
Allow to specify a runtime environment (e.g., Docker) and a working directory.
|
|
54
|
+
|
|
55
|
+
Parameters
|
|
56
|
+
----------
|
|
57
|
+
runtime_environment : list
|
|
58
|
+
Command to run the application in the specified runtime environment.
|
|
59
|
+
application : str
|
|
60
|
+
Name of the application to run.
|
|
61
|
+
configuration : dict
|
|
62
|
+
Configuration for the application.
|
|
63
|
+
logger : logging.Logger
|
|
64
|
+
Logger for logging application output.
|
|
65
|
+
|
|
66
|
+
Returns
|
|
67
|
+
-------
|
|
68
|
+
tuple
|
|
69
|
+
stdout and stderr from the application run.
|
|
70
|
+
|
|
71
|
+
"""
|
|
72
|
+
command = [application, *_convert_dict_to_args(configuration)]
|
|
73
|
+
if runtime_environment:
|
|
74
|
+
command = runtime_environment + command
|
|
75
|
+
try:
|
|
76
|
+
result = subprocess.run(
|
|
77
|
+
command,
|
|
78
|
+
check=True,
|
|
79
|
+
capture_output=True,
|
|
80
|
+
text=True,
|
|
81
|
+
)
|
|
82
|
+
except subprocess.CalledProcessError as exc:
|
|
83
|
+
logger.error(f"Error running application {application}: {exc.stderr}")
|
|
84
|
+
raise exc
|
|
85
|
+
|
|
86
|
+
return result.stdout, result.stderr
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def _convert_dict_to_args(parameters):
|
|
90
|
+
"""
|
|
91
|
+
Convert a dictionary of parameters to a list of command line arguments.
|
|
92
|
+
|
|
93
|
+
Parameters
|
|
94
|
+
----------
|
|
95
|
+
parameters : dict
|
|
96
|
+
Dictionary containing parameters to convert.
|
|
97
|
+
|
|
98
|
+
Returns
|
|
99
|
+
-------
|
|
100
|
+
list
|
|
101
|
+
List of command line arguments.
|
|
102
|
+
"""
|
|
103
|
+
args = []
|
|
104
|
+
for key, value in parameters.items():
|
|
105
|
+
if isinstance(value, bool):
|
|
106
|
+
if value:
|
|
107
|
+
args.append(f"--{key}")
|
|
108
|
+
elif isinstance(value, list):
|
|
109
|
+
args.extend([f"--{key}", *(str(item) for item in value)])
|
|
110
|
+
else:
|
|
111
|
+
args.extend([f"--{key}", str(value)])
|
|
112
|
+
return args
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
def _read_application_configuration(configuration_file, steps, logger):
|
|
116
|
+
"""
|
|
117
|
+
Read application configuration from file and modify for setting workflows.
|
|
118
|
+
|
|
119
|
+
Strong assumptions on the structure of input and output files:
|
|
120
|
+
|
|
121
|
+
- configuration file is expected to be in './input/<workflow directory>/<yaml file>'
|
|
122
|
+
- output files will be written out to './output/<workflow directory>/'
|
|
123
|
+
|
|
124
|
+
Replaces the placeholders in the configuration file with the actual values.
|
|
125
|
+
Sets 'USE_PLAIN_OUTPUT_PATH' to True for all applications.
|
|
126
|
+
|
|
127
|
+
Parameters
|
|
128
|
+
----------
|
|
129
|
+
configuration_file : str
|
|
130
|
+
Configuration file name.
|
|
131
|
+
steps : list
|
|
132
|
+
List of steps to be executed (None: all steps).
|
|
133
|
+
logger : Logger
|
|
134
|
+
Logger object.
|
|
135
|
+
|
|
136
|
+
Returns
|
|
137
|
+
-------
|
|
138
|
+
dict
|
|
139
|
+
Application configuration.
|
|
140
|
+
dict:
|
|
141
|
+
Runtime environment configuration.
|
|
142
|
+
Path
|
|
143
|
+
Path to the log file.
|
|
144
|
+
|
|
145
|
+
"""
|
|
146
|
+
job_configuration = ascii_handler.collect_data_from_file(configuration_file)
|
|
147
|
+
configurations = job_configuration.get("applications")
|
|
148
|
+
output_path, setting_workflow = _set_input_output_directories(configuration_file)
|
|
149
|
+
logger.info(f"Setting workflow output path to {output_path}")
|
|
150
|
+
for step_count, config in enumerate(configurations, start=1):
|
|
151
|
+
config["run_application"] = step_count in steps if steps else True
|
|
152
|
+
config = gen.change_dict_keys_case(config, True)
|
|
153
|
+
config["configuration"] = _replace_placeholders_in_configuration(
|
|
154
|
+
config.get("configuration", {}),
|
|
155
|
+
output_path,
|
|
156
|
+
setting_workflow,
|
|
157
|
+
)
|
|
158
|
+
configurations[step_count - 1] = config
|
|
159
|
+
|
|
160
|
+
return (
|
|
161
|
+
configurations,
|
|
162
|
+
job_configuration.get("runtime_environment"),
|
|
163
|
+
output_path / "simtools.log",
|
|
164
|
+
)
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
def _replace_placeholders_in_configuration(
|
|
168
|
+
configuration, output_path, setting_workflow, place_holder="__SETTING_WORKFLOW__"
|
|
169
|
+
):
|
|
170
|
+
"""
|
|
171
|
+
Replace placeholders in the configuration dictionary.
|
|
172
|
+
|
|
173
|
+
Parameters
|
|
174
|
+
----------
|
|
175
|
+
configuration : dict
|
|
176
|
+
Configuration dictionary.
|
|
177
|
+
output_path : Path
|
|
178
|
+
Path to the output directory.
|
|
179
|
+
setting_workflow : str
|
|
180
|
+
The setting workflow to replace the placeholder with.
|
|
181
|
+
place_holder : str
|
|
182
|
+
Placeholder to be replaced.
|
|
183
|
+
|
|
184
|
+
Returns
|
|
185
|
+
-------
|
|
186
|
+
dict
|
|
187
|
+
Configuration dictionary with placeholders replaced.
|
|
188
|
+
"""
|
|
189
|
+
for key, value in configuration.items():
|
|
190
|
+
if isinstance(value, str):
|
|
191
|
+
configuration[key] = value.replace(place_holder, setting_workflow)
|
|
192
|
+
if isinstance(value, list):
|
|
193
|
+
configuration[key] = [
|
|
194
|
+
item.replace(place_holder, setting_workflow) if isinstance(item, str) else item
|
|
195
|
+
for item in value
|
|
196
|
+
]
|
|
197
|
+
if output_path:
|
|
198
|
+
configuration["use_plain_output_path"] = True
|
|
199
|
+
configuration["output_path"] = str(output_path)
|
|
200
|
+
|
|
201
|
+
return configuration
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
def _set_input_output_directories(path):
|
|
205
|
+
"""
|
|
206
|
+
Set input and output directories based on the configuration file path.
|
|
207
|
+
|
|
208
|
+
Tuned to simulation models setting workflows.
|
|
209
|
+
|
|
210
|
+
Parameters
|
|
211
|
+
----------
|
|
212
|
+
path : str or Path
|
|
213
|
+
Path to the configuration file.
|
|
214
|
+
|
|
215
|
+
Returns
|
|
216
|
+
-------
|
|
217
|
+
tuple
|
|
218
|
+
The first part is the 'input' directory, the second part is the subdirectory name
|
|
219
|
+
"""
|
|
220
|
+
path = Path(path).resolve()
|
|
221
|
+
try:
|
|
222
|
+
input_index = path.parts.index("input")
|
|
223
|
+
# Get all parts after 'input', excluding the filename
|
|
224
|
+
subdirs = path.parts[input_index + 1 : -1]
|
|
225
|
+
setting_workflow = "/".join(subdirs)
|
|
226
|
+
workflow_dir = path.parts[input_index]
|
|
227
|
+
except (ValueError, IndexError) as exc:
|
|
228
|
+
raise ValueError(f"Could not find subdirectory under 'input': {exc}") from exc
|
|
229
|
+
|
|
230
|
+
output_path = Path(str(workflow_dir).replace("input", "output")) / Path(setting_workflow)
|
|
231
|
+
output_path.mkdir(parents=True, exist_ok=True)
|
|
232
|
+
return output_path, "/".join(subdirs)
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
def read_runtime_environment(runtime_environment, workdir="/workdir/external/"):
|
|
236
|
+
"""
|
|
237
|
+
Read the runtime environment (e.g. docker runtime) and generate the required command.
|
|
238
|
+
|
|
239
|
+
Parameters
|
|
240
|
+
----------
|
|
241
|
+
runtime_environment : str or None
|
|
242
|
+
Path to the runtime environment configuration file.
|
|
243
|
+
|
|
244
|
+
Returns
|
|
245
|
+
-------
|
|
246
|
+
list
|
|
247
|
+
Runtime command.
|
|
248
|
+
"""
|
|
249
|
+
if runtime_environment is None:
|
|
250
|
+
return []
|
|
251
|
+
|
|
252
|
+
engine = runtime_environment.get("container_engine", "docker")
|
|
253
|
+
if shutil.which(engine) is None:
|
|
254
|
+
raise RuntimeError(f"Container engine '{engine}' not found.")
|
|
255
|
+
cmd = [engine, "run", "--rm", "-v", f"{Path.cwd()}:{workdir}", "-w", workdir]
|
|
256
|
+
|
|
257
|
+
if options := runtime_environment.get("options"):
|
|
258
|
+
for opt in options:
|
|
259
|
+
cmd.extend(opt.split())
|
|
260
|
+
|
|
261
|
+
if env := runtime_environment.get("env_file"):
|
|
262
|
+
cmd += ["--env-file", env]
|
|
263
|
+
if net := runtime_environment.get("network"):
|
|
264
|
+
cmd += ["--network", net]
|
|
265
|
+
|
|
266
|
+
cmd.append(runtime_environment["image"])
|
|
267
|
+
return cmd
|
|
@@ -3,8 +3,8 @@ $schema: http://json-schema.org/draft-06/schema#
|
|
|
3
3
|
$ref: '#/definitions/SimtoolsApplicationWorkflowConfiguration'
|
|
4
4
|
title: SimPipe application workflow configuration metaschema
|
|
5
5
|
description: YAML representation of application workflow configuration metaschema
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
schema_version: 0.4.0
|
|
7
|
+
schema_name: application_workflow.metaschema
|
|
8
8
|
type: object
|
|
9
9
|
additionalProperties: false
|
|
10
10
|
|
|
@@ -13,103 +13,136 @@ definitions:
|
|
|
13
13
|
type: object
|
|
14
14
|
additionalProperties: false
|
|
15
15
|
properties:
|
|
16
|
-
|
|
17
|
-
"$ref": "#/definitions/
|
|
18
|
-
|
|
16
|
+
applications:
|
|
17
|
+
"$ref": "#/definitions/applications"
|
|
18
|
+
schema_version:
|
|
19
19
|
type: string
|
|
20
20
|
description: "Version of the schema."
|
|
21
|
-
|
|
21
|
+
schema_url:
|
|
22
22
|
type: string
|
|
23
23
|
format: uri
|
|
24
24
|
description: "URL of the schema."
|
|
25
|
-
|
|
25
|
+
schema_name:
|
|
26
26
|
type: string
|
|
27
27
|
description: "Name of the schema."
|
|
28
|
+
runtime_environment:
|
|
29
|
+
"$ref": "#/definitions/runtime_environment"
|
|
28
30
|
required:
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
31
|
+
- applications
|
|
32
|
+
- schema_version
|
|
33
|
+
- schema_name
|
|
32
34
|
title: ""
|
|
33
|
-
|
|
34
|
-
type: object
|
|
35
|
+
runtime_environment:
|
|
35
36
|
additionalProperties: false
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
37
|
+
type: array
|
|
38
|
+
items:
|
|
39
|
+
type: object
|
|
40
|
+
properties:
|
|
41
|
+
image:
|
|
42
|
+
type: string
|
|
43
|
+
description: "Container image to use for the application."
|
|
44
|
+
network:
|
|
45
|
+
type: string
|
|
46
|
+
description: "Network configuration for the container."
|
|
47
|
+
environment_file:
|
|
48
|
+
type: string
|
|
49
|
+
description: "Path to the environment file for the container."
|
|
50
|
+
container_engine:
|
|
51
|
+
type: string
|
|
52
|
+
description: "Container engine to use (e.g., docker, podman)."
|
|
53
|
+
default: "docker"
|
|
54
|
+
applications:
|
|
55
|
+
additionalProperties: false
|
|
56
|
+
type: array
|
|
57
|
+
items:
|
|
58
|
+
type: object
|
|
59
|
+
properties:
|
|
60
|
+
application:
|
|
61
|
+
type: string
|
|
62
|
+
description: "Name of simtools application"
|
|
63
|
+
test_name:
|
|
64
|
+
type: string
|
|
65
|
+
description: "Test name. Should be unique for this application."
|
|
66
|
+
skip_for_production_db:
|
|
67
|
+
type: boolean
|
|
68
|
+
description: "Skip test if production DB is used."
|
|
69
|
+
model_version_use_current:
|
|
70
|
+
type: boolean
|
|
71
|
+
description: |
|
|
72
|
+
"Skip test if model version is changed via command line.
|
|
73
|
+
Important e.g., for cases where DB model is incomplete for some
|
|
74
|
+
model versions."
|
|
75
|
+
configuration:
|
|
76
|
+
"$ref": "#/definitions/configuration"
|
|
77
|
+
integration_tests:
|
|
78
|
+
type: array
|
|
79
|
+
items:
|
|
80
|
+
"$ref": "#/definitions/integration_test"
|
|
81
|
+
test_requirement:
|
|
82
|
+
type: string
|
|
83
|
+
description: "Requirement ID of the test."
|
|
84
|
+
test_use_case:
|
|
85
|
+
type: string
|
|
86
|
+
description: "Use case ID of the test."
|
|
87
|
+
required:
|
|
88
|
+
- application
|
|
89
|
+
- configuration
|
|
90
|
+
title: Applications
|
|
91
|
+
configuration:
|
|
77
92
|
description: "Command line configuration of simtools application."
|
|
78
93
|
type: object
|
|
79
94
|
additionalProperties: true
|
|
80
95
|
title: Configuration
|
|
81
|
-
|
|
96
|
+
integration_test:
|
|
82
97
|
description: "List of integration tests."
|
|
83
98
|
type: object
|
|
84
99
|
additionalProperties: false
|
|
85
100
|
properties:
|
|
86
|
-
|
|
101
|
+
output_file:
|
|
87
102
|
description: |
|
|
88
103
|
"Path of output file tested to be generated by integration test."
|
|
89
104
|
type: string
|
|
90
|
-
|
|
105
|
+
test_output_files:
|
|
91
106
|
type: array
|
|
92
107
|
items:
|
|
93
108
|
type: object
|
|
94
109
|
properties:
|
|
95
|
-
|
|
110
|
+
path_descriptor:
|
|
96
111
|
type: string
|
|
97
|
-
|
|
112
|
+
file:
|
|
98
113
|
type: string
|
|
99
|
-
|
|
114
|
+
expected_output:
|
|
100
115
|
description: |
|
|
101
116
|
"Expected output of integration test."
|
|
102
117
|
type: object
|
|
103
|
-
required: ["
|
|
104
|
-
|
|
118
|
+
required: ["path_descriptor", "file"]
|
|
119
|
+
file_type:
|
|
105
120
|
description: |
|
|
106
121
|
"Expected file type of output file generated by integration test."
|
|
107
122
|
type: string
|
|
108
|
-
|
|
123
|
+
reference_output_file:
|
|
109
124
|
description: |
|
|
110
125
|
"Reference file used for comparison."
|
|
111
126
|
type: string
|
|
112
|
-
|
|
127
|
+
model_parameter_validation:
|
|
128
|
+
description: |
|
|
129
|
+
"Validation of model parameters against reference values."
|
|
130
|
+
type: object
|
|
131
|
+
additionalProperties: false
|
|
132
|
+
properties:
|
|
133
|
+
parameter_file:
|
|
134
|
+
description: |
|
|
135
|
+
"Path to the JSON file containing model parameters."
|
|
136
|
+
type: string
|
|
137
|
+
reference_parameter_name:
|
|
138
|
+
description: |
|
|
139
|
+
"Name of the parameter to validate against the reference."
|
|
140
|
+
type: string
|
|
141
|
+
tolerance:
|
|
142
|
+
description: |
|
|
143
|
+
"Allowed tolerance for floating point comparison."
|
|
144
|
+
type: number
|
|
145
|
+
test_simtel_cfg_files:
|
|
113
146
|
description: |
|
|
114
147
|
"Reference file used for comparison of sim_telarray configuration files."
|
|
115
148
|
type: object
|
|
@@ -119,22 +152,22 @@ definitions:
|
|
|
119
152
|
type: string
|
|
120
153
|
description: Path to the configuration file for the given version.
|
|
121
154
|
minProperties: 1
|
|
122
|
-
|
|
155
|
+
tolerance:
|
|
123
156
|
description: "Allowed tolerance for floating point comparison."
|
|
124
157
|
type: number
|
|
125
|
-
|
|
158
|
+
test_columns:
|
|
126
159
|
description: "List of columns to be compared, each with optional cut conditions."
|
|
127
160
|
type: array
|
|
128
161
|
items:
|
|
129
162
|
type: object
|
|
130
163
|
properties:
|
|
131
|
-
|
|
164
|
+
test_column_name:
|
|
132
165
|
description: "Name of the column to compare."
|
|
133
166
|
type: string
|
|
134
|
-
|
|
167
|
+
cut_column_name:
|
|
135
168
|
description: "Name of the column for applying the cut."
|
|
136
169
|
type: string
|
|
137
|
-
|
|
170
|
+
cut_condition:
|
|
138
171
|
description: "Condition to apply to the cut column."
|
|
139
172
|
type: string
|
|
140
173
|
title: ApplicationWorkflow
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
%YAML 1.2
|
|
2
2
|
---
|
|
3
3
|
title: Schema for mirror panel 2F measurements
|
|
4
|
-
|
|
4
|
+
schema_version: 0.1.0
|
|
5
5
|
meta_schema: simpipe-schema
|
|
6
6
|
meta_schema_url: https://raw.githubusercontent.com/gammasim/simtools/main/src/simtools/schemas/model_parameter_and_data_schema.metaschema.yml
|
|
7
7
|
meta_schema_version: 0.1.0
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
%YAML 1.2
|
|
2
2
|
---
|
|
3
3
|
title: Schema for single photon electron spectrum
|
|
4
|
-
|
|
4
|
+
schema_version: 0.1.0
|
|
5
5
|
meta_schema: simpipe-schema
|
|
6
6
|
meta_schema_url: https://raw.githubusercontent.com/gammasim/simtools/main/src/simtools/schemas/model_parameter_and_data_schema.metaschema.yml
|
|
7
7
|
meta_schema_version: 0.1.0
|