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.
Files changed (363) hide show
  1. {gammasimtools-0.17.0.dist-info → gammasimtools-0.19.0.dist-info}/METADATA +27 -69
  2. gammasimtools-0.19.0.dist-info/RECORD +393 -0
  3. {gammasimtools-0.17.0.dist-info → gammasimtools-0.19.0.dist-info}/entry_points.txt +10 -2
  4. {gammasimtools-0.17.0.dist-info → gammasimtools-0.19.0.dist-info}/licenses/LICENSE +1 -1
  5. simtools/_version.py +16 -3
  6. simtools/applications/calculate_trigger_rate.py +1 -1
  7. simtools/applications/convert_all_model_parameters_from_simtel.py +4 -3
  8. simtools/applications/convert_geo_coordinates_of_array_elements.py +3 -3
  9. simtools/applications/db_add_simulation_model_from_repository_to_db.py +10 -1
  10. simtools/applications/db_add_value_from_json_to_db.py +2 -1
  11. simtools/applications/db_development_tools/write_array_elements_positions_to_repository.py +8 -13
  12. simtools/applications/db_generate_compound_indexes.py +61 -0
  13. simtools/applications/db_get_file_from_db.py +1 -1
  14. simtools/applications/db_get_parameter_from_db.py +4 -4
  15. simtools/applications/db_inspect_databases.py +20 -10
  16. simtools/applications/derive_mirror_rnda.py +18 -12
  17. simtools/applications/derive_psf_parameters.py +59 -309
  18. simtools/applications/docs_produce_array_element_report.py +1 -1
  19. simtools/applications/docs_produce_calibration_reports.py +1 -1
  20. simtools/applications/docs_produce_model_parameter_reports.py +1 -1
  21. simtools/applications/docs_produce_simulation_configuration_report.py +1 -1
  22. simtools/applications/generate_corsika_histograms.py +1 -1
  23. simtools/applications/generate_default_metadata.py +8 -24
  24. simtools/applications/generate_sim_telarray_histograms.py +1 -1
  25. simtools/applications/generate_simtel_event_data.py +97 -5
  26. simtools/applications/maintain_simulation_model_add_production_table.py +71 -0
  27. simtools/applications/maintain_simulation_model_compare_productions.py +98 -0
  28. simtools/applications/{verify_simulation_model_production_tables.py → maintain_simulation_model_verify_production_tables.py} +9 -1
  29. simtools/applications/merge_tables.py +16 -18
  30. simtools/applications/plot_array_layout.py +3 -3
  31. simtools/applications/plot_simtel_events.py +379 -0
  32. simtools/applications/plot_tabular_data.py +21 -3
  33. simtools/applications/plot_tabular_data_for_model_parameter.py +104 -0
  34. simtools/applications/print_version.py +8 -9
  35. simtools/applications/production_derive_corsika_limits.py +64 -27
  36. simtools/applications/production_derive_statistics.py +1 -1
  37. simtools/applications/production_generate_grid.py +2 -2
  38. simtools/applications/production_merge_corsika_limits.py +214 -0
  39. simtools/applications/run_application.py +47 -113
  40. simtools/applications/simulate_calibration_events.py +166 -0
  41. simtools/applications/simulate_flasher.py +141 -0
  42. simtools/applications/{simulate_light_emission.py → simulate_illuminator.py} +35 -99
  43. simtools/applications/simulate_prod.py +6 -24
  44. simtools/applications/simulate_prod_htcondor_generator.py +7 -0
  45. simtools/applications/submit_array_layouts.py +2 -1
  46. simtools/applications/submit_model_parameter_from_external.py +1 -1
  47. simtools/applications/validate_camera_efficiency.py +30 -12
  48. simtools/applications/validate_camera_fov.py +1 -1
  49. simtools/applications/validate_cumulative_psf.py +1 -1
  50. simtools/applications/validate_file_using_schema.py +2 -1
  51. simtools/applications/validate_optics.py +1 -1
  52. simtools/camera/camera_efficiency.py +61 -45
  53. simtools/camera/single_photon_electron_spectrum.py +1 -1
  54. simtools/configuration/commandline_parser.py +31 -1
  55. simtools/configuration/configurator.py +4 -4
  56. simtools/constants.py +2 -0
  57. simtools/corsika/corsika_config.py +45 -25
  58. simtools/corsika/corsika_histograms.py +6 -5
  59. simtools/data_model/data_reader.py +2 -3
  60. simtools/data_model/metadata_collector.py +32 -36
  61. simtools/data_model/metadata_model.py +15 -12
  62. simtools/data_model/model_data_writer.py +13 -32
  63. simtools/data_model/schema.py +88 -24
  64. simtools/data_model/validate_data.py +34 -9
  65. simtools/db/db_handler.py +48 -37
  66. simtools/db/db_model_upload.py +3 -3
  67. simtools/dependencies.py +88 -25
  68. simtools/io/ascii_handler.py +279 -0
  69. simtools/{io_operations → io}/io_handler.py +25 -3
  70. simtools/{io_operations/io_table_handler.py → io/table_handler.py} +1 -1
  71. simtools/job_execution/htcondor_script_generator.py +15 -4
  72. simtools/layout/array_layout.py +1 -1
  73. simtools/layout/array_layout_utils.py +19 -8
  74. simtools/model/array_model.py +28 -5
  75. simtools/model/flasher_model.py +106 -0
  76. simtools/model/model_parameter.py +4 -4
  77. simtools/model/model_repository.py +197 -2
  78. simtools/model/telescope_model.py +3 -1
  79. simtools/production_configuration/derive_corsika_limits.py +361 -427
  80. simtools/production_configuration/derive_production_statistics_handler.py +7 -6
  81. simtools/production_configuration/generate_production_grid.py +9 -11
  82. simtools/production_configuration/merge_corsika_limits.py +528 -0
  83. simtools/ray_tracing/mirror_panel_psf.py +1 -0
  84. simtools/ray_tracing/psf_parameter_optimisation.py +792 -0
  85. simtools/ray_tracing/ray_tracing.py +6 -2
  86. simtools/reporting/docs_read_parameters.py +150 -62
  87. simtools/resources/array-element-ids.json +126 -0
  88. simtools/runners/corsika_runner.py +1 -1
  89. simtools/runners/corsika_simtel_runner.py +14 -5
  90. simtools/runners/runner_services.py +10 -5
  91. simtools/runners/simtools_runner.py +267 -0
  92. simtools/schemas/application_workflow.metaschema.yml +101 -68
  93. simtools/schemas/input/MST_mirror_2f_measurements.schema.yml +1 -1
  94. simtools/schemas/input/single_pe_spectrum.schema.yml +1 -1
  95. simtools/schemas/metadata.metaschema.yml +577 -3
  96. simtools/schemas/model_parameter.metaschema.yml +6 -6
  97. simtools/schemas/model_parameter_and_data_schema.metaschema.yml +7 -3
  98. simtools/schemas/model_parameters/adjust_gain.schema.yml +1 -1
  99. simtools/schemas/model_parameters/altitude.schema.yml +1 -1
  100. simtools/schemas/model_parameters/array_coordinates.schema.yml +1 -1
  101. simtools/schemas/model_parameters/array_coordinates_UTM.schema.yml +1 -1
  102. simtools/schemas/model_parameters/array_element_position_ground.schema.yml +1 -1
  103. simtools/schemas/model_parameters/array_element_position_utm.schema.yml +1 -1
  104. simtools/schemas/model_parameters/array_layouts.schema.yml +1 -1
  105. simtools/schemas/model_parameters/array_triggers.schema.yml +1 -1
  106. simtools/schemas/model_parameters/array_window.schema.yml +1 -1
  107. simtools/schemas/model_parameters/asum_clipping.schema.yml +1 -1
  108. simtools/schemas/model_parameters/asum_offset.schema.yml +1 -1
  109. simtools/schemas/model_parameters/asum_shaping.schema.yml +1 -1
  110. simtools/schemas/model_parameters/asum_threshold.schema.yml +1 -1
  111. simtools/schemas/model_parameters/atmospheric_profile.schema.yml +42 -1
  112. simtools/schemas/model_parameters/atmospheric_transmission.schema.yml +44 -1
  113. simtools/schemas/model_parameters/axes_offsets.schema.yml +1 -1
  114. simtools/schemas/model_parameters/camera_body_diameter.schema.yml +1 -1
  115. simtools/schemas/model_parameters/camera_body_shape.schema.yml +1 -1
  116. simtools/schemas/model_parameters/camera_config_file.schema.yml +1 -1
  117. simtools/schemas/model_parameters/camera_config_rotate.schema.yml +1 -1
  118. simtools/schemas/model_parameters/camera_degraded_efficiency.schema.yml +1 -1
  119. simtools/schemas/model_parameters/camera_degraded_map.schema.yml +1 -1
  120. simtools/schemas/model_parameters/camera_depth.schema.yml +1 -1
  121. simtools/schemas/model_parameters/camera_filter.schema.yml +11 -1
  122. simtools/schemas/model_parameters/camera_filter_incidence_angle.schema.yml +11 -1
  123. simtools/schemas/model_parameters/camera_pixels.schema.yml +1 -1
  124. simtools/schemas/model_parameters/camera_transmission.schema.yml +1 -1
  125. simtools/schemas/model_parameters/channels_per_chip.schema.yml +1 -1
  126. simtools/schemas/model_parameters/correct_nsb_spectrum_to_telescope_altitude.schema.yml +1 -1
  127. simtools/schemas/model_parameters/corsika_cherenkov_photon_bunch_size.schema.yml +1 -1
  128. simtools/schemas/model_parameters/corsika_cherenkov_photon_wavelength_range.schema.yml +1 -1
  129. simtools/schemas/model_parameters/corsika_first_interaction_height.schema.yml +1 -1
  130. simtools/schemas/model_parameters/corsika_iact_io_buffer.schema.yml +1 -1
  131. simtools/schemas/model_parameters/corsika_iact_max_bunches.schema.yml +1 -1
  132. simtools/schemas/model_parameters/corsika_iact_split_auto.schema.yml +1 -1
  133. simtools/schemas/model_parameters/corsika_longitudinal_shower_development.schema.yml +1 -1
  134. simtools/schemas/model_parameters/corsika_observation_level.schema.yml +1 -1
  135. simtools/schemas/model_parameters/corsika_particle_kinetic_energy_cutoff.schema.yml +1 -1
  136. simtools/schemas/model_parameters/corsika_starting_grammage.schema.yml +3 -3
  137. simtools/schemas/model_parameters/dark_events.schema.yml +1 -1
  138. simtools/schemas/model_parameters/default_trigger.schema.yml +1 -1
  139. simtools/schemas/model_parameters/design_model.schema.yml +1 -1
  140. simtools/schemas/model_parameters/disc_ac_coupled.schema.yml +1 -1
  141. simtools/schemas/model_parameters/disc_bins.schema.yml +1 -1
  142. simtools/schemas/model_parameters/disc_start.schema.yml +1 -1
  143. simtools/schemas/model_parameters/discriminator_amplitude.schema.yml +1 -1
  144. simtools/schemas/model_parameters/discriminator_fall_time.schema.yml +1 -1
  145. simtools/schemas/model_parameters/discriminator_gate_length.schema.yml +1 -1
  146. simtools/schemas/model_parameters/discriminator_hysteresis.schema.yml +1 -1
  147. simtools/schemas/model_parameters/discriminator_output_amplitude.schema.yml +1 -1
  148. simtools/schemas/model_parameters/discriminator_output_var_percent.schema.yml +1 -1
  149. simtools/schemas/model_parameters/discriminator_pulse_shape.schema.yml +32 -1
  150. simtools/schemas/model_parameters/discriminator_rise_time.schema.yml +1 -1
  151. simtools/schemas/model_parameters/discriminator_scale_threshold.schema.yml +1 -1
  152. simtools/schemas/model_parameters/discriminator_sigsum_over_threshold.schema.yml +1 -1
  153. simtools/schemas/model_parameters/discriminator_threshold.schema.yml +1 -1
  154. simtools/schemas/model_parameters/discriminator_time_over_threshold.schema.yml +1 -1
  155. simtools/schemas/model_parameters/discriminator_var_gate_length.schema.yml +1 -1
  156. simtools/schemas/model_parameters/discriminator_var_sigsum_over_threshold.schema.yml +1 -1
  157. simtools/schemas/model_parameters/discriminator_var_threshold.schema.yml +1 -1
  158. simtools/schemas/model_parameters/discriminator_var_time_over_threshold.schema.yml +1 -1
  159. simtools/schemas/model_parameters/dish_shape_length.schema.yml +1 -1
  160. simtools/schemas/model_parameters/dsum_clipping.schema.yml +1 -1
  161. simtools/schemas/model_parameters/dsum_ignore_below.schema.yml +1 -1
  162. simtools/schemas/model_parameters/dsum_offset.schema.yml +1 -1
  163. simtools/schemas/model_parameters/dsum_pedsub.schema.yml +1 -1
  164. simtools/schemas/model_parameters/dsum_pre_clipping.schema.yml +1 -1
  165. simtools/schemas/model_parameters/dsum_prescale.schema.yml +1 -1
  166. simtools/schemas/model_parameters/dsum_presum_max.schema.yml +1 -1
  167. simtools/schemas/model_parameters/dsum_presum_shift.schema.yml +1 -1
  168. simtools/schemas/model_parameters/dsum_shaping.schema.yml +1 -1
  169. simtools/schemas/model_parameters/dsum_shaping_renormalize.schema.yml +1 -1
  170. simtools/schemas/model_parameters/dsum_threshold.schema.yml +2 -2
  171. simtools/schemas/model_parameters/dsum_zero_clip.schema.yml +1 -1
  172. simtools/schemas/model_parameters/effective_focal_length.schema.yml +1 -1
  173. simtools/schemas/model_parameters/epsg_code.schema.yml +1 -1
  174. simtools/schemas/model_parameters/fadc_ac_coupled.schema.yml +1 -1
  175. simtools/schemas/model_parameters/fadc_amplitude.schema.yml +1 -1
  176. simtools/schemas/model_parameters/fadc_bins.schema.yml +1 -1
  177. simtools/schemas/model_parameters/fadc_compensate_pedestal.schema.yml +1 -1
  178. simtools/schemas/model_parameters/fadc_dev_pedestal.schema.yml +1 -1
  179. simtools/schemas/model_parameters/fadc_err_compensate_pedestal.schema.yml +1 -1
  180. simtools/schemas/model_parameters/fadc_err_pedestal.schema.yml +1 -1
  181. simtools/schemas/model_parameters/fadc_lg_amplitude.schema.yml +1 -1
  182. simtools/schemas/model_parameters/fadc_lg_compensate_pedestal.schema.yml +1 -1
  183. simtools/schemas/model_parameters/fadc_lg_dev_pedestal.schema.yml +1 -1
  184. simtools/schemas/model_parameters/fadc_lg_err_compensate_pedestal.schema.yml +1 -1
  185. simtools/schemas/model_parameters/fadc_lg_err_pedestal.schema.yml +1 -1
  186. simtools/schemas/model_parameters/fadc_lg_max_signal.schema.yml +1 -1
  187. simtools/schemas/model_parameters/fadc_lg_max_sum.schema.yml +1 -1
  188. simtools/schemas/model_parameters/fadc_lg_noise.schema.yml +1 -1
  189. simtools/schemas/model_parameters/fadc_lg_pedestal.schema.yml +1 -1
  190. simtools/schemas/model_parameters/fadc_lg_sensitivity.schema.yml +1 -1
  191. simtools/schemas/model_parameters/fadc_lg_sysvar_pedestal.schema.yml +1 -1
  192. simtools/schemas/model_parameters/fadc_lg_var_pedestal.schema.yml +1 -1
  193. simtools/schemas/model_parameters/fadc_lg_var_sensitivity.schema.yml +1 -1
  194. simtools/schemas/model_parameters/fadc_long_event_threshold.schema.yml +35 -0
  195. simtools/schemas/model_parameters/fadc_long_sum_bins.schema.yml +41 -0
  196. simtools/schemas/model_parameters/fadc_long_sum_offset.schema.yml +38 -0
  197. simtools/schemas/model_parameters/fadc_max_signal.schema.yml +1 -1
  198. simtools/schemas/model_parameters/fadc_max_sum.schema.yml +1 -1
  199. simtools/schemas/model_parameters/fadc_mhz.schema.yml +1 -1
  200. simtools/schemas/model_parameters/fadc_noise.schema.yml +1 -1
  201. simtools/schemas/model_parameters/fadc_pedestal.schema.yml +1 -1
  202. simtools/schemas/model_parameters/fadc_pulse_shape.schema.yml +13 -1
  203. simtools/schemas/model_parameters/fadc_sensitivity.schema.yml +1 -1
  204. simtools/schemas/model_parameters/fadc_sum_bins.schema.yml +1 -1
  205. simtools/schemas/model_parameters/fadc_sum_offset.schema.yml +1 -1
  206. simtools/schemas/model_parameters/fadc_sysvar_pedestal.schema.yml +1 -1
  207. simtools/schemas/model_parameters/fadc_var_pedestal.schema.yml +1 -1
  208. simtools/schemas/model_parameters/fadc_var_sensitivity.schema.yml +1 -1
  209. simtools/schemas/model_parameters/fake_mirror_list.schema.yml +1 -1
  210. simtools/schemas/model_parameters/flatfielding.schema.yml +1 -1
  211. simtools/schemas/model_parameters/focal_length.schema.yml +1 -1
  212. simtools/schemas/model_parameters/focal_surface_parameters.schema.yml +1 -1
  213. simtools/schemas/model_parameters/focal_surface_ref_radius.schema.yml +1 -1
  214. simtools/schemas/model_parameters/focus_offset.schema.yml +1 -1
  215. simtools/schemas/model_parameters/gain_variation.schema.yml +1 -1
  216. simtools/schemas/model_parameters/geomag_horizontal.schema.yml +1 -1
  217. simtools/schemas/model_parameters/geomag_rotation.schema.yml +1 -1
  218. simtools/schemas/model_parameters/geomag_vertical.schema.yml +1 -1
  219. simtools/schemas/model_parameters/hg_lg_variation.schema.yml +1 -1
  220. simtools/schemas/model_parameters/iobuf_maximum.schema.yml +1 -1
  221. simtools/schemas/model_parameters/iobuf_output_maximum.schema.yml +1 -1
  222. simtools/schemas/model_parameters/laser_events.schema.yml +1 -1
  223. simtools/schemas/model_parameters/laser_external_trigger.schema.yml +1 -1
  224. simtools/schemas/model_parameters/laser_photons.schema.yml +1 -1
  225. simtools/schemas/model_parameters/laser_pulse_exptime.schema.yml +1 -1
  226. simtools/schemas/model_parameters/laser_pulse_offset.schema.yml +1 -1
  227. simtools/schemas/model_parameters/laser_pulse_sigtime.schema.yml +1 -1
  228. simtools/schemas/model_parameters/laser_pulse_twidth.schema.yml +1 -1
  229. simtools/schemas/model_parameters/laser_var_photons.schema.yml +1 -1
  230. simtools/schemas/model_parameters/laser_wavelength.schema.yml +1 -1
  231. simtools/schemas/model_parameters/led_events.schema.yml +1 -1
  232. simtools/schemas/model_parameters/led_photons.schema.yml +1 -1
  233. simtools/schemas/model_parameters/led_pulse_offset.schema.yml +1 -1
  234. simtools/schemas/model_parameters/led_pulse_sigtime.schema.yml +1 -1
  235. simtools/schemas/model_parameters/led_var_photons.schema.yml +1 -1
  236. simtools/schemas/model_parameters/lightguide_efficiency_vs_incidence_angle.schema.yml +11 -1
  237. simtools/schemas/model_parameters/lightguide_efficiency_vs_wavelength.schema.yml +50 -1
  238. simtools/schemas/model_parameters/min_photoelectrons.schema.yml +1 -1
  239. simtools/schemas/model_parameters/min_photons.schema.yml +1 -1
  240. simtools/schemas/model_parameters/mirror_align_random_distance.schema.yml +1 -1
  241. simtools/schemas/model_parameters/mirror_align_random_horizontal.schema.yml +1 -1
  242. simtools/schemas/model_parameters/mirror_align_random_vertical.schema.yml +1 -1
  243. simtools/schemas/model_parameters/mirror_class.schema.yml +1 -1
  244. simtools/schemas/model_parameters/mirror_degraded_reflection.schema.yml +1 -1
  245. simtools/schemas/model_parameters/mirror_focal_length.schema.yml +1 -1
  246. simtools/schemas/model_parameters/mirror_list.schema.yml +1 -1
  247. simtools/schemas/model_parameters/mirror_offset.schema.yml +1 -1
  248. simtools/schemas/model_parameters/mirror_panel_2f_measurements.schema.yml +1 -1
  249. simtools/schemas/model_parameters/mirror_reflection_random_angle.schema.yml +1 -1
  250. simtools/schemas/model_parameters/mirror_reflectivity.schema.yml +11 -1
  251. simtools/schemas/model_parameters/multiplicity_offset.schema.yml +1 -1
  252. simtools/schemas/model_parameters/muon_mono_threshold.schema.yml +1 -1
  253. simtools/schemas/model_parameters/nsb_autoscale_airmass.schema.yml +1 -1
  254. simtools/schemas/model_parameters/nsb_gain_drop_scale.schema.yml +1 -1
  255. simtools/schemas/model_parameters/nsb_offaxis.schema.yml +1 -1
  256. simtools/schemas/model_parameters/nsb_pixel_rate.schema.yml +1 -1
  257. simtools/schemas/model_parameters/nsb_reference_spectrum.schema.yml +13 -1
  258. simtools/schemas/model_parameters/nsb_reference_value.schema.yml +1 -1
  259. simtools/schemas/model_parameters/nsb_scaling_factor.schema.yml +1 -1
  260. simtools/schemas/model_parameters/nsb_sky_map.schema.yml +1 -1
  261. simtools/schemas/model_parameters/nsb_spectrum.schema.yml +1 -1
  262. simtools/schemas/model_parameters/num_gains.schema.yml +1 -1
  263. simtools/schemas/model_parameters/only_triggered_telescopes.schema.yml +1 -1
  264. simtools/schemas/model_parameters/optics_properties.schema.yml +1 -1
  265. simtools/schemas/model_parameters/parabolic_dish.schema.yml +1 -1
  266. simtools/schemas/model_parameters/pedestal_events.schema.yml +1 -1
  267. simtools/schemas/model_parameters/photon_delay.schema.yml +1 -1
  268. simtools/schemas/model_parameters/photons_per_run.schema.yml +1 -1
  269. simtools/schemas/model_parameters/pixel_cells.schema.yml +1 -1
  270. simtools/schemas/model_parameters/pixels_parallel.schema.yml +1 -1
  271. simtools/schemas/model_parameters/pixeltrg_time_step.schema.yml +1 -1
  272. simtools/schemas/model_parameters/pm_average_gain.schema.yml +1 -1
  273. simtools/schemas/model_parameters/pm_collection_efficiency.schema.yml +1 -1
  274. simtools/schemas/model_parameters/pm_gain_index.schema.yml +1 -1
  275. simtools/schemas/model_parameters/pm_photoelectron_spectrum.schema.yml +20 -1
  276. simtools/schemas/model_parameters/pm_transit_time.schema.yml +1 -1
  277. simtools/schemas/model_parameters/pm_voltage_variation.schema.yml +1 -1
  278. simtools/schemas/model_parameters/primary_mirror_degraded_map.schema.yml +1 -1
  279. simtools/schemas/model_parameters/primary_mirror_diameter.schema.yml +1 -1
  280. simtools/schemas/model_parameters/primary_mirror_hole_diameter.schema.yml +1 -1
  281. simtools/schemas/model_parameters/primary_mirror_incidence_angle.schema.yml +11 -1
  282. simtools/schemas/model_parameters/primary_mirror_parameters.schema.yml +1 -1
  283. simtools/schemas/model_parameters/primary_mirror_ref_radius.schema.yml +1 -1
  284. simtools/schemas/model_parameters/primary_mirror_segmentation.schema.yml +1 -1
  285. simtools/schemas/model_parameters/qe_variation.schema.yml +1 -1
  286. simtools/schemas/model_parameters/quantum_efficiency.schema.yml +11 -1
  287. simtools/schemas/model_parameters/random_focal_length.schema.yml +1 -1
  288. simtools/schemas/model_parameters/random_generator.schema.yml +1 -1
  289. simtools/schemas/model_parameters/random_mono_probability.schema.yml +1 -1
  290. simtools/schemas/model_parameters/reference_point_altitude.schema.yml +1 -1
  291. simtools/schemas/model_parameters/reference_point_latitude.schema.yml +1 -1
  292. simtools/schemas/model_parameters/reference_point_longitude.schema.yml +1 -1
  293. simtools/schemas/model_parameters/reference_point_utm_east.schema.yml +1 -1
  294. simtools/schemas/model_parameters/reference_point_utm_north.schema.yml +1 -1
  295. simtools/schemas/model_parameters/sampled_output.schema.yml +1 -1
  296. simtools/schemas/model_parameters/save_pe_with_amplitude.schema.yml +1 -1
  297. simtools/schemas/model_parameters/secondary_mirror_baffle.schema.yml +1 -1
  298. simtools/schemas/model_parameters/secondary_mirror_degraded_map.schema.yml +1 -1
  299. simtools/schemas/model_parameters/secondary_mirror_degraded_reflection.schema.yml +1 -1
  300. simtools/schemas/model_parameters/secondary_mirror_diameter.schema.yml +1 -1
  301. simtools/schemas/model_parameters/secondary_mirror_hole_diameter.schema.yml +1 -1
  302. simtools/schemas/model_parameters/secondary_mirror_incidence_angle.schema.yml +11 -1
  303. simtools/schemas/model_parameters/secondary_mirror_parameters.schema.yml +1 -1
  304. simtools/schemas/model_parameters/secondary_mirror_ref_radius.schema.yml +1 -1
  305. simtools/schemas/model_parameters/secondary_mirror_reflectivity.schema.yml +11 -1
  306. simtools/schemas/model_parameters/secondary_mirror_segmentation.schema.yml +1 -1
  307. simtools/schemas/model_parameters/secondary_mirror_shadow_diameter.schema.yml +1 -1
  308. simtools/schemas/model_parameters/secondary_mirror_shadow_offset.schema.yml +1 -1
  309. simtools/schemas/model_parameters/stars.schema.yml +1 -1
  310. simtools/schemas/model_parameters/store_photoelectrons.schema.yml +1 -1
  311. simtools/schemas/model_parameters/tailcut_scale.schema.yml +1 -1
  312. simtools/schemas/model_parameters/telescope_axis_height.schema.yml +1 -1
  313. simtools/schemas/model_parameters/telescope_random_angle.schema.yml +1 -1
  314. simtools/schemas/model_parameters/telescope_random_error.schema.yml +1 -1
  315. simtools/schemas/model_parameters/telescope_sphere_radius.schema.yml +1 -1
  316. simtools/schemas/model_parameters/telescope_transmission.schema.yml +1 -1
  317. simtools/schemas/model_parameters/teltrig_min_sigsum.schema.yml +1 -1
  318. simtools/schemas/model_parameters/teltrig_min_time.schema.yml +1 -1
  319. simtools/schemas/model_parameters/transit_time_calib_error.schema.yml +1 -1
  320. simtools/schemas/model_parameters/transit_time_compensate_error.schema.yml +1 -1
  321. simtools/schemas/model_parameters/transit_time_compensate_step.schema.yml +1 -1
  322. simtools/schemas/model_parameters/transit_time_error.schema.yml +1 -1
  323. simtools/schemas/model_parameters/transit_time_jitter.schema.yml +1 -1
  324. simtools/schemas/model_parameters/trigger_current_limit.schema.yml +1 -1
  325. simtools/schemas/model_parameters/trigger_delay_compensation.schema.yml +1 -1
  326. simtools/schemas/model_parameters/trigger_pixels.schema.yml +1 -1
  327. simtools/schemas/plot_configuration.metaschema.yml +51 -59
  328. simtools/schemas/production_configuration_metrics.schema.yml +12 -2
  329. simtools/schemas/production_tables.schema.yml +2 -2
  330. simtools/simtel/simtel_config_reader.py +2 -2
  331. simtools/simtel/simtel_config_writer.py +16 -4
  332. simtools/simtel/simtel_io_event_histograms.py +746 -0
  333. simtools/simtel/simtel_io_event_reader.py +16 -43
  334. simtools/simtel/simtel_io_event_writer.py +46 -10
  335. simtools/simtel/simtel_io_histogram.py +3 -1
  336. simtools/simtel/simtel_io_histograms.py +7 -3
  337. simtools/simtel/simtel_io_metadata.py +99 -3
  338. simtools/simtel/simtel_table_reader.py +92 -10
  339. simtools/simtel/simulator_array.py +138 -10
  340. simtools/simtel/simulator_camera_efficiency.py +32 -23
  341. simtools/simtel/simulator_light_emission.py +437 -271
  342. simtools/simtel/simulator_ray_tracing.py +1 -1
  343. simtools/simulator.py +105 -147
  344. simtools/testing/configuration.py +24 -26
  345. simtools/testing/helpers.py +2 -2
  346. simtools/testing/log_inspector.py +50 -0
  347. simtools/testing/validate_output.py +87 -37
  348. simtools/utils/general.py +125 -257
  349. simtools/utils/geometry.py +36 -0
  350. simtools/utils/names.py +72 -3
  351. simtools/visualization/legend_handlers.py +180 -264
  352. simtools/visualization/plot_array_layout.py +20 -8
  353. simtools/visualization/plot_pixels.py +1 -2
  354. simtools/visualization/plot_tables.py +202 -27
  355. simtools/visualization/simtel_event_plots.py +816 -0
  356. simtools/visualization/visualize.py +4 -101
  357. gammasimtools-0.17.0.dist-info/RECORD +0 -374
  358. simtools/production_configuration/derive_corsika_limits_grid.py +0 -189
  359. {gammasimtools-0.17.0.dist-info → gammasimtools-0.19.0.dist-info}/WHEEL +0 -0
  360. {gammasimtools-0.17.0.dist-info → gammasimtools-0.19.0.dist-info}/top_level.txt +0 -0
  361. /simtools/{io_operations → io}/hdf5_handler.py +0 -0
  362. /simtools/{io_operations → io}/legacy_data_handler.py +0 -0
  363. /simtools/{schemas → resources}/array_elements.yml +0 -0
@@ -1,7 +1,7 @@
1
1
  %YAML 1.2
2
2
  ---
3
3
  title: Schema for store_photoelectrons model parameter
4
- version: 0.1.0
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 tailcut_scale model parameter
4
- version: 0.1.0
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 telescope_axis_height model parameter
4
- version: 0.1.0
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 telescope_random_angle model parameter
4
- version: 0.1.0
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 telescope_random_error model parameter
4
- version: 0.1.0
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 telescope_sphere_radius model parameter
4
- version: 0.1.0
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 telescope_transmission model parameter
4
- version: 0.1.0
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 teltrig_min_sigsum model parameter
4
- version: 0.1.0
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 teltrig_min_time model parameter
4
- version: 0.1.0
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 transit_time_calib_error model parameter
4
- version: 0.1.0
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 transit_time_compensate_error model parameter
4
- version: 0.1.0
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 transit_time_compensate_step model parameter
4
- version: 0.1.0
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 transit_time_error model parameter
4
- version: 0.1.0
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 transit_time_jitter model parameter
4
- version: 0.1.0
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 trigger_current_limit model parameter
4
- version: 0.1.0
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 trigger_delay_compensation model parameter
4
- version: 0.1.0
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 trigger_pixels model parameter
4
- version: 0.1.0
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
@@ -3,160 +3,152 @@ $schema: http://json-schema.org/draft-06/schema#
3
3
  $ref: '#/definitions/SimtoolsPlotConfiguration'
4
4
  title: SimPipe plot configuration metaschema
5
5
  description: YAML representation of plot configuration metaschema
6
- version: 0.1.0
7
- name: plot_configuration.metaschema
6
+ schema_version: 0.1.0
7
+ schema_name: plot_configuration.metaschema
8
8
  type: object
9
- additionalProperties: false
10
9
 
11
10
  definitions:
12
11
  SimtoolsPlotConfiguration:
13
12
  type: object
14
13
  additionalProperties: false
15
14
  properties:
16
- CTA_SIMPIPE:
17
- "$ref": "#/definitions/CTASIMPIPE"
18
- SCHEMA_VERSION:
15
+ plot:
16
+ "$ref": "#/definitions/plot"
17
+ schema_version:
19
18
  type: string
20
19
  description: "Version of the schema."
21
- SCHEMA_URL:
20
+ schema_url:
22
21
  type: string
23
22
  format: uri
24
23
  description: "URL of the schema."
25
- SCHEMA_NAME:
24
+ schema_name:
26
25
  type: string
27
26
  description: "Name of the schema."
28
27
  required:
29
- - CTA_SIMPIPE
28
+ - plot
30
29
  title: "SimtoolsPlotConfiguration"
31
- CTASIMPIPE:
32
- type: object
33
- additionalProperties: false
34
- properties:
35
- PLOT:
36
- "$ref": "#/definitions/Plot"
37
- required:
38
- - PLOT
39
- title: "CTASimpipe"
40
- Plot:
30
+ plot:
41
31
  description: "Plot configuration of simtools data visualization."
42
32
  type: object
43
33
  additionalProperties: false
44
34
  properties:
45
- TYPE:
35
+ type:
46
36
  type: string
47
37
  description: "Type of the plot (e.g., mirror reflectivity, quantum_efficiency)."
48
- TITLE:
38
+ title:
49
39
  type: string
50
40
  description: "Title of the plot."
51
- XTITLE:
41
+ xtitle:
52
42
  type: string
53
43
  description: "Title of x-axis."
54
- YTITLE:
44
+ ytitle:
55
45
  type: string
56
46
  description: "Title of y-axis."
57
- XSCALE:
47
+ xscale:
58
48
  type: string
59
49
  enum: ["linear", "log"]
60
50
  description: "Scale of x-axis (linear or log)."
61
- YSCALE:
51
+ yscale:
62
52
  type: string
63
53
  enum: ["linear", "log"]
64
54
  description: "Scale of y-axis (linear or log)."
65
- XLIM:
55
+ xlim:
66
56
  type: array
67
57
  items:
68
58
  type: [number, "null"]
69
59
  description: "Limits for x-axis [min, max]. Use null for auto-limit."
70
60
  minItems: 2
71
61
  maxItems: 2
72
- YLIM:
62
+ ylim:
73
63
  type: array
74
64
  items:
75
65
  type: [number, "null"]
76
66
  description: "Limits for y-axis [min, max]. Use null for auto-limit."
77
67
  minItems: 2
78
68
  maxItems: 2
79
- ERROR_TYPE:
69
+ error_type:
80
70
  type: string
81
71
  enum: ["fill_between", "errorbar", "none"]
82
72
  description: "Type of errors."
83
- NO_MARKERS:
73
+ no_markers:
84
74
  type: boolean
85
75
  description: "Whether to display markers on data points."
86
- PLOT_RATIO:
76
+ plot_ratio:
87
77
  type: boolean
88
78
  description: "Whether to display ratio plot."
89
- TABLES:
79
+ tables:
90
80
  type: array
91
81
  description: "List of tables to plot."
92
82
  items:
93
- "$ref": "#/definitions/TableConfig"
83
+ "$ref": "#/definitions/table_config"
94
84
  required:
95
- - TYPE
96
- - TITLE
97
- - XTITLE
98
- - YTITLE
99
- - TABLES
85
+ - type
86
+ - title
87
+ - xtitle
88
+ - ytitle
89
+ - tables
100
90
  title: "Plot"
101
- TableConfig:
91
+ table_config:
102
92
  type: object
103
93
  description: "Configuration for a data table to plot."
104
94
  additionalProperties: false
105
95
  properties:
106
- PARAMETER:
96
+ parameter:
107
97
  type: string
108
98
  description: "Parameter name to retrieve data for."
109
- FILE_NAME:
99
+ file_name:
110
100
  type: string
111
101
  description: "Path to the data file."
112
- TYPE:
102
+ ignore_table_data_path:
103
+ type: boolean
104
+ description: "Ignore table data path from command line."
105
+ type:
113
106
  type: string
114
107
  description: "Type of data file."
115
- TELESCOPE:
108
+ telescope:
116
109
  type: string
117
110
  description: "Telescope descriptor to retrieve data for."
118
- SITE:
111
+ site:
119
112
  type: string
120
113
  description: "Site name (North/South)."
121
- MODEL_VERSION:
114
+ model_version:
122
115
  type: string
123
116
  description: "Model version to use."
124
- PARAMETER_VERSION:
117
+ parameter_version:
125
118
  type: string
126
119
  description: "Parameter version to use."
127
- LABEL:
120
+ label:
128
121
  type: string
129
122
  description: "Label for the plot legend."
130
- COLUMN_X:
123
+ column_x:
131
124
  type: string
132
125
  description: "Column name to use for x-axis."
133
- COLUMN_Y:
126
+ column_y:
134
127
  type: string
135
128
  description: "Column name to use for y-axis."
136
- COLUMN_X_ERR:
129
+ column_x_err:
137
130
  type: string
138
131
  description: "Column name to use for x-axis error."
139
- COLUMN_Y_ERR:
132
+ column_y_err:
140
133
  type: string
141
134
  description: "Column name to use for y-axis error."
142
- NORMALIZE_Y:
135
+ normalize_y:
143
136
  type: boolean
144
137
  description: "Whether to normalize y values."
145
- SELECT_VALUES:
138
+ select_values:
146
139
  type: object
147
140
  description: "Selection criteria for data filtering."
148
141
  properties:
149
- COLUMN_NAME:
142
+ column_name:
150
143
  type: string
151
144
  description: "Column name to use for filtering."
152
- VALUE:
145
+ value:
153
146
  type: [number, string]
154
147
  description: "Value to filter by."
155
148
  required:
156
- - COLUMN_NAME
157
- - VALUE
149
+ - column_name
150
+ - value
158
151
  required:
159
- - COLUMN_X
160
- - COLUMN_Y
161
- - LABEL
152
+ - column_x
153
+ - column_y
162
154
  title: "TableConfig"
@@ -5,8 +5,8 @@ title: Statistical Error Metrics Schema
5
5
  description: |
6
6
  YAML representation of simulation production configuration
7
7
  metrics.
8
- version: 0.1.0
9
- name: production_configuration_metrics.metaschema
8
+ schema_version: 0.1.0
9
+ schema_name: production_configuration_metrics.metaschema
10
10
  type: object
11
11
  additionalProperties: false
12
12
 
@@ -20,6 +20,16 @@ definitions:
20
20
  $ref: '#/definitions/ErrorMetric'
21
21
  energy_estimate:
22
22
  $ref: '#/definitions/ErrorMetric'
23
+ schema_version:
24
+ type: string
25
+ description: "Version of the schema."
26
+ schema_url:
27
+ type: string
28
+ format: uri
29
+ description: "URL of the schema."
30
+ schema_name:
31
+ type: string
32
+ description: "Name of the schema."
23
33
 
24
34
  ErrorMetric:
25
35
  type: object
@@ -5,8 +5,8 @@ title: SimPipe DB Production Model Metaschema
5
5
  description: |
6
6
  YAML representation of DB production model metaschema
7
7
  (based on simulation model DB).
8
- version: 0.1.0
9
- name: production_table.metaschema
8
+ schema_version: 0.1.0
9
+ schema_name: production_table.metaschema
10
10
  type: object
11
11
  additionalProperties: false
12
12
 
@@ -7,7 +7,7 @@ import re
7
7
  import astropy.units as u
8
8
  import numpy as np
9
9
 
10
- import simtools.utils.general as gen
10
+ from simtools.io import ascii_handler
11
11
  from simtools.utils import names
12
12
 
13
13
  __all__ = ["SimtelConfigReader"]
@@ -81,7 +81,7 @@ class SimtelConfigReader:
81
81
 
82
82
  self.schema_file = schema_file
83
83
  self.schema_dict = (
84
- gen.collect_data_from_file(file_name=self.schema_file, yaml_document=0)
84
+ ascii_handler.collect_data_from_file(file_name=self.schema_file, yaml_document=0)
85
85
  if self.schema_file is not None
86
86
  else None
87
87
  )
@@ -10,6 +10,7 @@ import numpy as np
10
10
 
11
11
  import simtools.utils.general as gen
12
12
  import simtools.version
13
+ from simtools.io import ascii_handler
13
14
  from simtools.utils import names
14
15
 
15
16
  __all__ = ["SimtelConfigWriter"]
@@ -404,7 +405,9 @@ class SimtelConfigWriter:
404
405
  "simtools_model_production_version": self._model_version,
405
406
  }
406
407
  try:
407
- build_opts = gen.collect_data_from_file(Path(self._simtel_path) / "build_opts.yml")
408
+ build_opts = ascii_handler.collect_data_from_file(
409
+ Path(self._simtel_path) / "build_opts.yml"
410
+ )
408
411
  for key, value in build_opts.items():
409
412
  meta_items[f"simtools_{key}"] = value
410
413
  except (FileNotFoundError, TypeError):
@@ -506,7 +509,9 @@ class SimtelConfigWriter:
506
509
 
507
510
  trigger_lines = {}
508
511
  for tel_type, tel_list in trigger_per_telescope_type.items():
509
- trigger_dict = self._get_array_triggers_for_telescope_type(array_triggers, tel_type)
512
+ trigger_dict = self._get_array_triggers_for_telescope_type(
513
+ array_triggers, tel_type, len(tel_list)
514
+ )
510
515
  trigger_lines[tel_type] = f"Trigger {trigger_dict['multiplicity']['value']} of "
511
516
  trigger_lines[tel_type] += ", ".join(map(str, tel_list))
512
517
  width = trigger_dict["width"]["value"] * u.Unit(trigger_dict["width"]["unit"]).to("ns")
@@ -526,7 +531,9 @@ class SimtelConfigWriter:
526
531
 
527
532
  return array_triggers_file
528
533
 
529
- def _get_array_triggers_for_telescope_type(self, array_triggers, telescope_type):
534
+ def _get_array_triggers_for_telescope_type(
535
+ self, array_triggers, telescope_type, num_telescopes_of_type
536
+ ):
530
537
  """
531
538
  Get array trigger for a specific telescope type.
532
539
 
@@ -536,14 +543,19 @@ class SimtelConfigWriter:
536
543
  Array trigger definitions.
537
544
  telescope_type: str
538
545
  Telescope type.
546
+ num_telescopes_of_type: int
547
+ Number of telescopes of the specified type.
539
548
 
540
549
  Returns
541
550
  -------
542
551
  dict
543
552
  Array trigger for the telescope type.
544
553
  """
554
+ suffix = "_array"
555
+ if num_telescopes_of_type == 1:
556
+ suffix = "_single_telescope"
545
557
  for trigger_dict in array_triggers:
546
- if trigger_dict["name"] == telescope_type + "_array":
558
+ if trigger_dict["name"] == telescope_type + suffix:
547
559
  return trigger_dict
548
560
  return None
549
561