gammasimtools 0.26.0__py3-none-any.whl → 0.27.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 (70) hide show
  1. {gammasimtools-0.26.0.dist-info → gammasimtools-0.27.0.dist-info}/METADATA +5 -1
  2. {gammasimtools-0.26.0.dist-info → gammasimtools-0.27.0.dist-info}/RECORD +70 -66
  3. {gammasimtools-0.26.0.dist-info → gammasimtools-0.27.0.dist-info}/WHEEL +1 -1
  4. {gammasimtools-0.26.0.dist-info → gammasimtools-0.27.0.dist-info}/entry_points.txt +1 -1
  5. simtools/_version.py +2 -2
  6. simtools/applications/convert_geo_coordinates_of_array_elements.py +2 -1
  7. simtools/applications/db_get_array_layouts_from_db.py +1 -1
  8. simtools/applications/{calculate_incident_angles.py → derive_incident_angle.py} +16 -16
  9. simtools/applications/derive_mirror_rnda.py +111 -177
  10. simtools/applications/generate_corsika_histograms.py +38 -1
  11. simtools/applications/generate_regular_arrays.py +73 -36
  12. simtools/applications/simulate_flasher.py +3 -13
  13. simtools/applications/simulate_illuminator.py +2 -10
  14. simtools/applications/simulate_pedestals.py +1 -1
  15. simtools/applications/simulate_prod.py +8 -7
  16. simtools/applications/submit_data_from_external.py +2 -1
  17. simtools/applications/validate_camera_efficiency.py +28 -27
  18. simtools/applications/validate_cumulative_psf.py +1 -3
  19. simtools/applications/validate_optics.py +2 -1
  20. simtools/atmosphere.py +83 -0
  21. simtools/camera/camera_efficiency.py +171 -48
  22. simtools/camera/single_photon_electron_spectrum.py +6 -6
  23. simtools/configuration/commandline_parser.py +47 -9
  24. simtools/constants.py +5 -0
  25. simtools/corsika/corsika_config.py +88 -185
  26. simtools/corsika/corsika_histograms.py +246 -69
  27. simtools/data_model/model_data_writer.py +46 -49
  28. simtools/data_model/schema.py +2 -0
  29. simtools/db/db_handler.py +4 -2
  30. simtools/db/mongo_db.py +2 -2
  31. simtools/io/ascii_handler.py +51 -3
  32. simtools/io/io_handler.py +23 -12
  33. simtools/job_execution/job_manager.py +154 -79
  34. simtools/job_execution/process_pool.py +137 -0
  35. simtools/layout/array_layout.py +0 -1
  36. simtools/layout/array_layout_utils.py +143 -21
  37. simtools/model/array_model.py +22 -50
  38. simtools/model/calibration_model.py +4 -4
  39. simtools/model/model_parameter.py +123 -73
  40. simtools/model/model_utils.py +40 -1
  41. simtools/model/site_model.py +4 -4
  42. simtools/model/telescope_model.py +4 -5
  43. simtools/ray_tracing/incident_angles.py +87 -6
  44. simtools/ray_tracing/mirror_panel_psf.py +337 -217
  45. simtools/ray_tracing/psf_analysis.py +57 -42
  46. simtools/ray_tracing/psf_parameter_optimisation.py +3 -2
  47. simtools/ray_tracing/ray_tracing.py +37 -10
  48. simtools/runners/corsika_runner.py +52 -191
  49. simtools/runners/corsika_simtel_runner.py +74 -100
  50. simtools/runners/runner_services.py +214 -213
  51. simtools/runners/simtel_runner.py +27 -155
  52. simtools/runners/simtools_runner.py +9 -69
  53. simtools/schemas/application_workflow.metaschema.yml +8 -0
  54. simtools/settings.py +19 -0
  55. simtools/simtel/simtel_config_writer.py +0 -55
  56. simtools/simtel/simtel_seeds.py +184 -0
  57. simtools/simtel/simulator_array.py +115 -103
  58. simtools/simtel/simulator_camera_efficiency.py +66 -42
  59. simtools/simtel/simulator_light_emission.py +110 -123
  60. simtools/simtel/simulator_ray_tracing.py +78 -63
  61. simtools/simulator.py +135 -346
  62. simtools/testing/sim_telarray_metadata.py +13 -11
  63. simtools/testing/validate_output.py +87 -19
  64. simtools/utils/general.py +6 -17
  65. simtools/utils/random.py +36 -0
  66. simtools/visualization/plot_corsika_histograms.py +2 -0
  67. simtools/visualization/plot_incident_angles.py +48 -1
  68. simtools/visualization/plot_psf.py +160 -18
  69. {gammasimtools-0.26.0.dist-info → gammasimtools-0.27.0.dist-info}/licenses/LICENSE +0 -0
  70. {gammasimtools-0.26.0.dist-info → gammasimtools-0.27.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gammasimtools
3
- Version: 0.26.0
3
+ Version: 0.27.0
4
4
  Summary: Tools for the Simulation System of the CTA Observatory
5
5
  Author-email: simtools developers <simtools-developer@desy.de>
6
6
  License-Expression: BSD-3-Clause
@@ -99,6 +99,10 @@ Please cite this software if it is used for a publication, see the [Zenodo recor
99
99
  [![Coverage](https://sonar-ctao.zeuthen.desy.de/api/project_badges/measure?project=gammasim_simtools_0d23837b-8b2d-4e54-9a98-2f1bde681f14&metric=coverage&token=sqb_5d1fde56fa060247eee7d5e53fa5ac0a4aabe483)](https://sonar-ctao.zeuthen.desy.de/dashboard?id=gammasim_simtools_0d23837b-8b2d-4e54-9a98-2f1bde681f14)
100
100
  [![Quality Gate Status](https://sonar-ctao.zeuthen.desy.de/api/project_badges/measure?project=gammasim_simtools_0d23837b-8b2d-4e54-9a98-2f1bde681f14&metric=alert_status&token=sqb_5d1fde56fa060247eee7d5e53fa5ac0a4aabe483)](https://sonar-ctao.zeuthen.desy.de/dashboard?id=gammasim_simtools_0d23837b-8b2d-4e54-9a98-2f1bde681f14)
101
101
 
102
+ ## Generative AI disclosure
103
+
104
+ Generative AI tools (including, but not limited to, Claude, ChatGPT, and Gemini) were used to assist with code development, debugging, and documentation drafting. All AI-assisted outputs were reviewed, validated, and, where necessary, modified by the authors to ensure accuracy and reliability.
105
+
102
106
  ## Acknowledgements
103
107
 
104
108
  This project is supported by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) - project number 460248186 (*PUNCH4NFDI [https://www.punch4nfdi.de/](https://www.punch4nfdi.de/)*).
@@ -1,28 +1,29 @@
1
- gammasimtools-0.26.0.dist-info/licenses/LICENSE,sha256=WRI7Rs32O2161Mmnbugu9WKJkr_lIXMxEFdf_Kwp008,1548
1
+ gammasimtools-0.27.0.dist-info/licenses/LICENSE,sha256=WRI7Rs32O2161Mmnbugu9WKJkr_lIXMxEFdf_Kwp008,1548
2
2
  simtools/__init__.py,sha256=yvx0i5ygbllmMtF2Tzy7pohvhQNH_dBdj0Bt8bKFYpc,231
3
- simtools/_version.py,sha256=qBDwIqO5NZ5LfJnfL26Fsfqo4yTvSO4KNqKuK6FQqcU,706
3
+ simtools/_version.py,sha256=H3HYRf03jooHw45fP82hixu9fH1oNT7ZmRLYufAm2FI,706
4
4
  simtools/application_control.py,sha256=aXN_CjzteuP_WrzL1RR-_3EdaRXF2jLW5p4wev-xcLc,6079
5
- simtools/constants.py,sha256=3N5bc8MlMWRzcg8EeSJweoioEo_uhStMxAzdb85Apvw,966
5
+ simtools/atmosphere.py,sha256=ESOFeKzo99RWCE4F0wdyZ1J7Pa5kwMytc-m_Vd7vTSQ,2201
6
+ simtools/constants.py,sha256=YvCA6PF3kNwqOfVBihbTYqMfC7CCmkgc03w6xrGqiww,1134
6
7
  simtools/dependencies.py,sha256=-ycj4WUlkrr8UIcBYqlhD4UqRcueGDErwZLvcDxNHQU,8818
7
- simtools/settings.py,sha256=rPltCYvpt8bb0juI3KuOmLNTXl1ij5Vjed0m9EwYSEg,5201
8
- simtools/simulator.py,sha256=MNAQsDm1HzQ8D21XUfyPdxc0f_GSfGr3AWbLv_H90YY,30110
8
+ simtools/settings.py,sha256=GzCZY4lts5SmO6A74zUHGcv4xGKSzCIw4d4ErjSLH2I,5928
9
+ simtools/simulator.py,sha256=duBbTvTPhfVR1oLHXhkOvmNHTlsZqyGqvS_Dohk746o,21997
9
10
  simtools/telescope_trigger_rates.py,sha256=noJi8jSM85lfvlhuayWE49BiQlKgvRdT_TY4RVuM3R8,3930
10
11
  simtools/version.py,sha256=zVXYJYK7Q9c7stKrbbeJekkIZ-KQkGrHUnnKiVxXd20,7246
11
- simtools/applications/calculate_incident_angles.py,sha256=T_xlwLTklxUP8V2VJTkKtbGSQeeBKvglYO_gqmeCS_8,5948
12
12
  simtools/applications/convert_all_model_parameters_from_simtel.py,sha256=ml3rLe9-nRdPQBARpssK9aU0StwQ27RaUa-_6H-ZlA0,11893
13
- simtools/applications/convert_geo_coordinates_of_array_elements.py,sha256=JOPw3BQa2FgoYMDdlvd1u861CyjDtizAuPdmnI0iHC4,5614
13
+ simtools/applications/convert_geo_coordinates_of_array_elements.py,sha256=_pRFchs_Egq8x8TM1br9wTzUWxNXc1QlVZmoQd6ksgc,5724
14
14
  simtools/applications/convert_model_parameter_from_simtel.py,sha256=BRs_oOfXPpLV0XSWD0LMtrwJXn_JAGaj4CBWrc6Lm1c,3602
15
15
  simtools/applications/db_add_file_to_db.py,sha256=UyRhXS_n8LjV-0FcIwu_hE88sWS4fzVThXIgMgwazSA,5695
16
16
  simtools/applications/db_add_simulation_model_from_repository_to_db.py,sha256=pLM2-9rOnXm30Ef-r63G8CWRRkrNS4gnN9wy2hHCVhk,4061
17
17
  simtools/applications/db_add_value_from_json_to_db.py,sha256=TXgyHj1_ZJLgJWsgDjjwvpZMZR5WDn7YHqHdzcihNYA,3879
18
18
  simtools/applications/db_generate_compound_indexes.py,sha256=rhFJTpwABIE3iDzmufSb4kZmiNcLJoA7cxSy2_CjUQA,1454
19
- simtools/applications/db_get_array_layouts_from_db.py,sha256=B_bivyM_TDAYJ6IYwX1L-sVq9YjdgbqWNiLB4LJK0_M,4695
19
+ simtools/applications/db_get_array_layouts_from_db.py,sha256=dpBK2AzziMK92tTRUWvxg_Ryw3g_QETJNavbzSO55OI,4730
20
20
  simtools/applications/db_get_file_from_db.py,sha256=nNQ0bDnNhW9G0LogcfPixby62I0igkurKxlud22-2l4,2427
21
21
  simtools/applications/db_get_parameter_from_db.py,sha256=39xujLKmvdzlRtMB_v891MlzF7--eENGhpvSpJssK00,5272
22
22
  simtools/applications/db_inspect_databases.py,sha256=n_FLzynznyR2uQYjX1TYGpzncPt1sW9XyO9_ru9q1zw,1956
23
23
  simtools/applications/db_upload_model_repository.py,sha256=paoc1oXbGvkg9-p7EX0APhmY1D7RffGa9uwv1Vldv-Q,3453
24
24
  simtools/applications/derive_ctao_array_layouts.py,sha256=IlbSQMlbmrK8JKWlzhfXt5HqNnvysgFE0ajjbQjRKRY,4062
25
- simtools/applications/derive_mirror_rnda.py,sha256=d11YZEEsGVAgTO4Zuw2oNi11c5Y8n3thLBTaXRTG00w,8927
25
+ simtools/applications/derive_incident_angle.py,sha256=-fkuo9peV85gvgwRI24l-Z9p61Z7_un811Z4PssUYTo,5999
26
+ simtools/applications/derive_mirror_rnda.py,sha256=6sN6bHg31qdaVbEJW0vhhIeSMaph65Yg84jIAs5rTao,5100
26
27
  simtools/applications/derive_photon_electron_spectrum.py,sha256=-Drq6QPo7xXjGGmdDzGKJ6x1Byg9_jOaD-fSKG6CJQE,3988
27
28
  simtools/applications/derive_psf_parameters.py,sha256=8ixre0zOwFDDUIVnpIPLf4yj7-KPjo24HPKbQ4cZ2H4,8008
28
29
  simtools/applications/derive_pulse_shape_parameters.py,sha256=0cLOjKuy4IUChfArBRUBHM9kluFq9KN85OCI1nLM8K4,6202
@@ -32,9 +33,9 @@ simtools/applications/docs_produce_calibration_reports.py,sha256=aGSMf8eEVQ2eV1X
32
33
  simtools/applications/docs_produce_model_parameter_reports.py,sha256=7KA1SylSIxd5AVxrJquMInk0XiIMOQ8i0zs--RRzVW8,1863
33
34
  simtools/applications/docs_produce_simulation_configuration_report.py,sha256=jZqq7J5lBUahApeDLrQkq95ZhTPLu0jAvYSB8VhVulk,1438
34
35
  simtools/applications/generate_array_config.py,sha256=VF49V-7iNCTj3DWq39h2HcGTEpWFrjbXiGAqjDUvOYk,1836
35
- simtools/applications/generate_corsika_histograms.py,sha256=G51fgXgCbzqWWIWn5FO4KldHOnseGRJBe54JYzjjSc8,3603
36
+ simtools/applications/generate_corsika_histograms.py,sha256=VBZ4wgg4IU53AzSCCpfIvHG41BhQ5MW9_JnrStuxzkM,5173
36
37
  simtools/applications/generate_default_metadata.py,sha256=yll6cUGl87DhBiov3rQhIPBcT0NIui06oILChjSQAdE,2053
37
- simtools/applications/generate_regular_arrays.py,sha256=SQT8pdida-3BxPQoBytCUZLVSb3O-0RkSzGJS2lvMaA,2749
38
+ simtools/applications/generate_regular_arrays.py,sha256=KrgFMSWysSecTpXT5fsHhTGEOWi36m5yIYrJ6uLotEU,3851
38
39
  simtools/applications/generate_simtel_event_data.py,sha256=2nn43xYd-Dn3t3nZM-pHJbH9L1UJ-w_922dOuXStxwA,9029
39
40
  simtools/applications/maintain_simulation_model_add_production.py,sha256=5493zG5nQuAhmQfGWuueR3_SrotiUz9Ux03DU3aw65s,2389
40
41
  simtools/applications/maintain_simulation_model_compare_productions.py,sha256=aD6eZq1RUMnE4J-AuNjuHCKy_vDmnFnhPCPO0wxshbA,3194
@@ -51,56 +52,57 @@ simtools/applications/production_derive_statistics.py,sha256=NT_EL-jUg151QrCY1E1
51
52
  simtools/applications/production_generate_grid.py,sha256=9HRSALRwxLBxYK0ZP9v7HxfMbeHpW6yl1w6X_J0gk6g,5783
52
53
  simtools/applications/production_merge_corsika_limits.py,sha256=sYOTG731ja0xW5p2Pq4dJdOuKwWi7MphASdZ-dg6osY,7588
53
54
  simtools/applications/run_application.py,sha256=2cyZYsO4a5Q1fy19CY9awmURWU_JPGzhIDd9g3qIBgk,3924
54
- simtools/applications/simulate_flasher.py,sha256=etikNrgk1Tr9j000aCwq87P_9Foof4MWaVz7eMdFFfU,4605
55
- simtools/applications/simulate_illuminator.py,sha256=Bfi5WJSWgwwvD4a1Gzm5m38nF4E0rd6X0jwNtrzv1M8,4179
56
- simtools/applications/simulate_pedestals.py,sha256=PyanXAX2CKwL4qeU2t97ATVLnuN-fzeP6-RNjIaBe4M,3660
57
- simtools/applications/simulate_prod.py,sha256=ZtETPWKncLqFDHXWi3k4SXc4WVjdO66z4YuZlWZ0V0E,5282
55
+ simtools/applications/simulate_flasher.py,sha256=UK0qSXGqJ1b3GQh-_mamkgrJp-d6YFUJeKrFZCXkalE,4335
56
+ simtools/applications/simulate_illuminator.py,sha256=MW2nPAH9Y-ThXvJ1WKr_Rj4p9oNm-QItlzVRb03sBpM,3986
57
+ simtools/applications/simulate_pedestals.py,sha256=q-bSRQM51qcmhM_Aaqy6s6gH5otxn2i77r7SEQzj1TI,3632
58
+ simtools/applications/simulate_prod.py,sha256=oq3GjhMr7E38ioUbVql1sFCVTmU3KTFMH_BGyYIneVM,5379
58
59
  simtools/applications/simulate_prod_htcondor_generator.py,sha256=S_j6laMzFfz105K-77ANX-XzJNJgyZiIk-pCC59sKIQ,3373
59
60
  simtools/applications/submit_array_layouts.py,sha256=vZGfcHLX0Q-3PHCTfKciA2jc4DI7k_DhXtJg9B_L9vA,2785
60
- simtools/applications/submit_data_from_external.py,sha256=4uXI_JSKNpQkSbuUfEWQgtvH-on7nffIgQHbpzjN0Bc,3043
61
+ simtools/applications/submit_data_from_external.py,sha256=2---V9B5CrUFl3h9jhhMvHf3Auu193rNPqFYUGuItPA,3131
61
62
  simtools/applications/submit_model_parameter_from_external.py,sha256=GcVrItLTU1_mWy9GKaHD_Olvsm4u5CD7tT7g9NRumVg,3732
62
- simtools/applications/validate_camera_efficiency.py,sha256=61B9cybO-7jT9DznZmOEEGwYaQHVmncXXKjb-YK2cXA,4908
63
+ simtools/applications/validate_camera_efficiency.py,sha256=lx_-ClqygEHeZgxn2GlvLQv9O_ELR6gTCuW14wPonHo,5039
63
64
  simtools/applications/validate_camera_fov.py,sha256=ZQt83TCAB51k6LuIW50-vGL4huPrUiLRfldCjmR-0Fo,4494
64
- simtools/applications/validate_cumulative_psf.py,sha256=TlKoBVsixPfwJgCoX_khI1MMWB2w22n9OS9EHAcCU4U,6336
65
+ simtools/applications/validate_cumulative_psf.py,sha256=UDhK0F7sLs1nC-oV6c3JI7jWwkI5Oc-7h_JkPqFEzTg,6224
65
66
  simtools/applications/validate_file_using_schema.py,sha256=W1om-MHJA105NAOkRMZ4q7HNjfw7E9Xh8ExZrvic17A,4455
66
- simtools/applications/validate_optics.py,sha256=uS1jdc-jnRZ8aXqq7HatBX5BvbTmqMBImJfdkzxIFb0,5891
67
- simtools/camera/camera_efficiency.py,sha256=4spLfZbq8eDzg45PxaQoy7ZoaWSuFB3A1t7IEfaTQTI,18721
68
- simtools/camera/single_photon_electron_spectrum.py,sha256=M8n58edvTEcW7GtHqXtU0vPwISdb8hw4kxjOia4qwJ4,11593
69
- simtools/configuration/commandline_parser.py,sha256=gujxzJZLd21JhIwFCRcKVtbsdvRDqPTCg8mElgpDKN8,29301
67
+ simtools/applications/validate_optics.py,sha256=gxtVOhZ9pNkRacoZjQ1auad30RuACVNRpEGiii2N3es,5959
68
+ simtools/camera/camera_efficiency.py,sha256=L-m6PSlRJfofBR--WzSXHRisN4e6e0BDe5RNQ8Ovt_o,22983
69
+ simtools/camera/single_photon_electron_spectrum.py,sha256=vxtWX8_cHHHmy4zyIkVkRLavvhF2CugzrKb6rni7Lbk,11616
70
+ simtools/configuration/commandline_parser.py,sha256=P5linbEgbqkdVeFJgvvNFrXKbKeCvD6C63HaQ2zYfnM,30761
70
71
  simtools/configuration/configurator.py,sha256=FonVxlnyNbCorb11FERiBvsC3h5TVHlVSpLNQC1OsSU,14539
71
- simtools/corsika/corsika_config.py,sha256=otLidGUHFD57KXevgFzzNqRJly7LO8rvTwRtylvm8KQ,33951
72
- simtools/corsika/corsika_histograms.py,sha256=2ugTQHObQPghnCePaXDzaLuOyzAjGdhFIuR5KSdhu_c,20977
72
+ simtools/corsika/corsika_config.py,sha256=0BoPhW_QzV71CNJ0LpB4-eLkzNwR_8kILvWXnqt1ZGU,30407
73
+ simtools/corsika/corsika_histograms.py,sha256=HxpzqWqKl_E7qjcw662Gj4jaCmU2N73yMb1QfrLZNto,28586
73
74
  simtools/corsika/primary_particle.py,sha256=HxpfPu8untscXRf8KZTrNGHAcmhn_wmgQQmRg3GupV4,6611
74
75
  simtools/data_model/data_reader.py,sha256=abqVujfDYu1SHbMhpqRA851_WDWZr2SOoi35p0hZ_7s,4051
75
76
  simtools/data_model/format_checkers.py,sha256=bXF9dItkpZCGXAHdCH7vhgxEsIhXLLVFLOha-hKRspY,1949
76
77
  simtools/data_model/metadata_collector.py,sha256=UbzivfylhOtlTvB8QmP8_qsrLs2Zzb_oXRTiVX8vWYQ,23739
77
78
  simtools/data_model/metadata_model.py,sha256=THuKbkhNlRGTS1W1Lhp8_hun6D2yXo1iEgK4DzfaMOY,4587
78
- simtools/data_model/model_data_writer.py,sha256=7Iztw4brC-a99JurpHOAsrHYlpmsFP8QKAgKtnT9dqo,17169
79
- simtools/data_model/schema.py,sha256=VkmWByIY9fkRMbCJRBLlg-G33deGHYPs0AShTv23f6Q,14257
79
+ simtools/data_model/model_data_writer.py,sha256=YdaDRenvZ9oyhUuQrwD405CPzdcxZTinViud5_sN5gA,17180
80
+ simtools/data_model/schema.py,sha256=JCmkh1xugzMge4Md2uJJ89U66kTkshhd9-MD2TgNUqo,14300
80
81
  simtools/data_model/validate_data.py,sha256=1j2EDdz2Fk8OzRxdOoGNbrat3BVThSBoR8lRi0IvTrQ,32519
81
- simtools/db/db_handler.py,sha256=prIb8KqaphUrfQYRY4BjIHZ3Oj-AFoMtKY9SEseeSqQ,29722
82
+ simtools/db/db_handler.py,sha256=Nl9WJfoV4U91VN6rhkDz67IARCp0ywjxPTVMd-swHCE,29906
82
83
  simtools/db/db_model_upload.py,sha256=zHPmvNM5QG4BTIfHFCo3qJn8f5pnuNScdKKOUGQORnc,11872
83
- simtools/db/mongo_db.py,sha256=Efgxk_0dJMnwW6fPaPbEfvNU2tEbJcDDTlVTGwqTkxQ,19393
84
- simtools/io/ascii_handler.py,sha256=Dul2vmc32cXn_f0URHJqTT86so-qfB9rdunfokQuBNs,7842
85
- simtools/io/io_handler.py,sha256=qC4-htBLvHcHgHfsZeDJllevadpMBN7KtFPnuHSXrpI,3439
84
+ simtools/db/mongo_db.py,sha256=BUOgfwOTVU3qtNR6SI2V2cppbR5-sue2dcMVfB-8Zqg,19403
85
+ simtools/io/ascii_handler.py,sha256=OXMif-R3VB_2L6_Zq2i4Eesc-BRYFZuDoWtenQNRgMk,9225
86
+ simtools/io/io_handler.py,sha256=epv-FYm1X8O3W7ZfSYnddY44xVb0KAboE2yjZGXz1-4,3981
86
87
  simtools/io/legacy_data_handler.py,sha256=ZJunKgO0gjCLHtBqVtYUAiD88ouJio1_w_XJHjjp_6U,1260
87
88
  simtools/io/table_handler.py,sha256=F6nRzdHYVkRhfcpS9SkIWwufyuviFW0RdJ2Q2JrqyMo,10714
88
89
  simtools/job_execution/htcondor_script_generator.py,sha256=np_mPnu8HdTQdTlb_MpTsNcBa9g6K3PJfJ1mmLiL2xE,4179
89
- simtools/job_execution/job_manager.py,sha256=xWZlf1t6RuKvTEp1nNkNkkrUtR6smulxGfV8_WN_vG8,4716
90
- simtools/layout/array_layout.py,sha256=SMVEsP5h4ngP1JP6phBCktQ4t1fh0EC1i3Rww290fHM,24879
91
- simtools/layout/array_layout_utils.py,sha256=yQ6sEAfJisGDEgFenM3NtLJ1ErVbPpz7JC8m6npwTRo,18564
90
+ simtools/job_execution/job_manager.py,sha256=aPSFks3KKscvdXCjjGQApwo8vDIl-LLF90-VRmgdIiA,6698
91
+ simtools/job_execution/process_pool.py,sha256=jG1SiOiNmCllsL04TwI96pQg2UI1Kb_1odwByCcmbts,3993
92
+ simtools/layout/array_layout.py,sha256=BP9KLRJqGZc5rRW9zLJhJy8BYZ5WvNEtX_8kEJYRjNo,24798
93
+ simtools/layout/array_layout_utils.py,sha256=xCDl_Twi02vNyKD8HBUTQQAhoao1SCzFT1xF5bSni8E,22160
92
94
  simtools/layout/geo_coordinates.py,sha256=9kKnXFi9vrfYKG_9elzFuzzssGFEUzxMubaclITkW_g,5944
93
95
  simtools/layout/telescope_position.py,sha256=tXXf2_kr6ouPrDXWx20vf6c-yEo11AjN8_gJ2EwL5-g,20097
94
- simtools/model/array_model.py,sha256=FImtscin64SnPLpKIQSZpL8r-nr5fupsasO6LVAoZ8s,18568
95
- simtools/model/calibration_model.py,sha256=KRTrnT-XwuJ401h2n76I93xFwzMnakjEeeKBJTlGeTI,1459
96
+ simtools/model/array_model.py,sha256=2ugcsoYFhFxIyeRk_mfPOQa2zWytnjcWqkVA8_VKdCM,17992
97
+ simtools/model/calibration_model.py,sha256=y3WwHPCBruC-Dq2Q74GCH6ms-o0W62ril_RzzQJYJvY,1477
96
98
  simtools/model/camera.py,sha256=ewqhjovhxIX8a2hEHzxqZy2Mcfp621xk2nikxGDXDO4,21381
97
99
  simtools/model/legacy_model_parameter.py,sha256=HJRrOwpA0meArmIdkmfsba_EvOx3Ed9MaJuFEppcsog,4573
98
100
  simtools/model/mirrors.py,sha256=g0eS4qFzUmo9UIakC4CDo7ourAGuFd3EfzL9RdrF9zg,9098
99
- simtools/model/model_parameter.py,sha256=83ps869Hv3v5sqQ09KU1CQgev5z0ATijKm0RNl6o5vc,23468
101
+ simtools/model/model_parameter.py,sha256=ixY5R39MwLy5qKui9oOV8Dv0b3baazx8uTVvoiGiMDU,25389
100
102
  simtools/model/model_repository.py,sha256=32B4CaZgSZuWj9GckmfwBhKVApd3UikL_hsfjtuDs0k,18557
101
- simtools/model/model_utils.py,sha256=Bmq2YinuK__s9rmaQMOPbRo9GxkW3cE1IuCYPc5OUxc,2809
102
- simtools/model/site_model.py,sha256=6iiysPzz9nbCXQJ2C5r23D3r1N9m10WuK-UCnq5x-Wk,6956
103
- simtools/model/telescope_model.py,sha256=7anPhYV7T_UBRqT8vWMqRCJLIcbi6GfM8oVE_O6xXKA,14286
103
+ simtools/model/model_utils.py,sha256=FEbC7RuRSyV-NYg-oq17mLXMjwh-86m29jHaW9dsIzc,4114
104
+ simtools/model/site_model.py,sha256=vgm9GhofxX5zgZLY6chEP4cuedbBYrxZekZRNDP3z7o,6974
105
+ simtools/model/telescope_model.py,sha256=c3zFgzKD5rMYQUBanria203VdejRkFKhc5wfqwe487M,14226
104
106
  simtools/production_configuration/calculate_statistical_uncertainties_grid_point.py,sha256=ahUJYM4SWZAAk4qXTQlBEkhmLfZRntXRaTG6FmL3tNs,15503
105
107
  simtools/production_configuration/derive_corsika_limits.py,sha256=HJp3OPa9HsYrQrD6ek1aMphNM4AR_oZQc8xCYPm-6y4,10387
106
108
  simtools/production_configuration/derive_production_statistics.py,sha256=njjQuKgm-yRvykLLuivXF3cmCduAYKunvL13KbEWjQ0,5716
@@ -108,21 +110,21 @@ simtools/production_configuration/derive_production_statistics_handler.py,sha256
108
110
  simtools/production_configuration/generate_production_grid.py,sha256=DlR2hqyG0jU1yU21QU38ucAdmHZWPa7snFW26vmGEuI,13323
109
111
  simtools/production_configuration/interpolation_handler.py,sha256=hEEvuFncDd4iiGXiQSNmLYbjCp6dSvj4Oct1qCgff5Q,14045
110
112
  simtools/production_configuration/merge_corsika_limits.py,sha256=t9JDvrpkP33ISCRCPVLE8GunjHDF_RYlRPqXI469l0w,20838
111
- simtools/ray_tracing/incident_angles.py,sha256=r4TgQFG3vs7n1Y0FVWnjVUI__9IDC4rQEJHhJ2wZxzM,25585
112
- simtools/ray_tracing/mirror_panel_psf.py,sha256=ug416rpekNEH4lClHkBMXYXy1uMBUnJIv9VFpaA4ciY,11073
113
- simtools/ray_tracing/psf_analysis.py,sha256=PLqXMGRmT-Pw_NLLcOQ7YIWKBjEjoEDIN4TZFNvb7Ck,18249
114
- simtools/ray_tracing/psf_parameter_optimisation.py,sha256=HJg26wKS9JoQDZYtoIHVHP8PWAZbpqEB9khJTOOTbUM,51575
115
- simtools/ray_tracing/ray_tracing.py,sha256=YNuY1r6iapciMA6_-G9r8Kptbylbt3d1jC5S2X7SqPw,21655
113
+ simtools/ray_tracing/incident_angles.py,sha256=sgcTJWASNtnr8ZkI3mynfr1v0-m_-C1FeEHTcaw29CA,28477
114
+ simtools/ray_tracing/mirror_panel_psf.py,sha256=9mxStvRhrb8CIduDcHdNw0zYnVrG3QtnZFSyFmjz844,14882
115
+ simtools/ray_tracing/psf_analysis.py,sha256=N_YfkAQQWOCxijk0dWIc0utqIMgyPyIZQSPikgw7t1w,18815
116
+ simtools/ray_tracing/psf_parameter_optimisation.py,sha256=9ADYPB3mouSCh6rk2nAWvPaIkiu1PYFfdL_g3P0eYGU,51675
117
+ simtools/ray_tracing/ray_tracing.py,sha256=xGqXlQ5ylN-P5peIPkvNtCSYC8GLZSaBupbzGThTAHk,22464
116
118
  simtools/reporting/docs_auto_report_generator.py,sha256=HDNYOTFv4YX7h_PLcJPpMOOiXCUoD7tRZl3a3qpugds,13877
117
119
  simtools/reporting/docs_read_parameters.py,sha256=YWsd14t87Wn9u5MryvB78UEkn4k6lTtVGj-QlcddLcg,41353
118
120
  simtools/resources/array-element-ids.json,sha256=W8cijMEmHJ28RLIyixVVdHr16-iUbIuURT9QIoIzCoY,4566
119
121
  simtools/resources/array_elements.yml,sha256=MG-TyocXQCj6htA8af4nBzCxcfFZHs1XXtSfSl4kmBo,4285
120
- simtools/runners/corsika_runner.py,sha256=HjisgnXbOrkdSwxaFQzzgSgw0Umbd3sZW1nBzdndYjU,9466
121
- simtools/runners/corsika_simtel_runner.py,sha256=qG3LN5J3jjEBhGFCjHOYd2GUArGXepQxUoqpXb82bok,7603
122
- simtools/runners/runner_services.py,sha256=_UhgQOOsIFpF2fiB6C7WhQA8jPIZhafzGbuErvlLLXI,10774
123
- simtools/runners/simtel_runner.py,sha256=Crje4MCZ8wCtd7IoxxXeAQ_OrZU4xNI-WRmz5rCqLDA,6413
124
- simtools/runners/simtools_runner.py,sha256=sU4uyIdP9hGvNQZYMYB5fd01gfzvSaZ1kGTXLqcfw7M,8188
125
- simtools/schemas/application_workflow.metaschema.yml,sha256=Gd2YIXT7DgdnlP0P-08ywGlle3RMhFqdPcHdrxNw6Gk,5657
122
+ simtools/runners/corsika_runner.py,sha256=TVmhMa4miNO3fjjKPhj2iFK2qXTt1wuXDj5uy1yUi_U,4697
123
+ simtools/runners/corsika_simtel_runner.py,sha256=kwWEVEr5rtOrvCJy82r5SiHu-48q6BN23tocYT8HdPI,7099
124
+ simtools/runners/runner_services.py,sha256=_1Es_Wp5liBgtpbRLxPMRuhAikZRqXz5yXo-MvSJ6Xo,9742
125
+ simtools/runners/simtel_runner.py,sha256=NzVY8wnKxmplY49PBFYT3uHLpcg2U17NDTR0ejXdZLs,2703
126
+ simtools/runners/simtools_runner.py,sha256=XZ6sPMTl4SVevG0zaLOr9TgPz0MUmiTSAVY53S2Jvbs,6566
127
+ simtools/schemas/application_workflow.metaschema.yml,sha256=vzzjPP4Ssb3e8N8qAjFjYXM95ZztDT7eZmK5nhPhSFQ,5982
126
128
  simtools/schemas/common_definitions.schema.yml,sha256=_vzwIM-qIqi32HrjMHIH0dO0STeCZFsAIli6acFol7Y,1180
127
129
  simtools/schemas/metadata.metaschema.yml,sha256=bgsIFwBlaC9HGNN8hlMSy2vMwwnG2DEfprXZuxfU2Kk,33556
128
130
  simtools/schemas/model_parameter.metaschema.yml,sha256=glHfhhHkhAaUhaVJLA0Uoon48YE39GoyVxKLe_swMM8,6819
@@ -383,37 +385,39 @@ simtools/sim_events/reader.py,sha256=6fldNvZKsXCRxq8oZ23JPScNWuqFOlp9eJ3lr0NayNI
383
385
  simtools/sim_events/writer.py,sha256=2jn2-ED47ngLHOS0QFcKkjc5H8Kk9D7EtXGppDpJi38,15066
384
386
  simtools/simtel/pulse_shapes.py,sha256=iWN_sUKw82kn0NARmgk4BgJcKeVChNgv3Ei6cNXw95s,8412
385
387
  simtools/simtel/simtel_config_reader.py,sha256=_R1eLpZPqSu2MbiEfN1zYTdr8jJl1uameGyaxupACe0,15005
386
- simtools/simtel/simtel_config_writer.py,sha256=8aYUAslOlftiQFMrHBES0XzHhQmlVENNSMH7qnH59Kk,35842
388
+ simtools/simtel/simtel_config_writer.py,sha256=CULufM_pEENxt0LbShMEgZGF339um-eTJANiGd6nt0w,33748
387
389
  simtools/simtel/simtel_io_metadata.py,sha256=1BA32c-wHVD2MMfrXYdQuYPq2uPDyWBIpNGbwRMwjtc,6084
390
+ simtools/simtel/simtel_seeds.py,sha256=XNJ19QbXs1GBA9HOVqFufnWHtGUa8J0OL2Lm0oEP8Wk,6769
388
391
  simtools/simtel/simtel_table_reader.py,sha256=iEufa1nb7dtxlMlLlkqjLFqpkTA9WAaPKiwARVrWPXM,15127
389
- simtools/simtel/simulator_array.py,sha256=-BoeQ3JJk3_yvdm0Q7wF_DOSZU2kbkXl3GmYIVdjuuw,10300
390
- simtools/simtel/simulator_camera_efficiency.py,sha256=H4auL2a1F2MMJXxiafTc6V5ztD1bL1e-SHcDVgV0Ggw,11623
391
- simtools/simtel/simulator_light_emission.py,sha256=SoSsrOfmmSA8m0XEQeK2oU-2V1qMHJFKbN8CcPO0CDk,23702
392
- simtools/simtel/simulator_ray_tracing.py,sha256=GRDWKo5YtJHG1a6r4hUeTnJ24ZxstPmMTkyitG4Ixes,11200
392
+ simtools/simtel/simulator_array.py,sha256=VRzOWGpLNFinBM2fy6kiBJp5OTAFlBCbTo7KB2cDSCQ,9687
393
+ simtools/simtel/simulator_camera_efficiency.py,sha256=mgtWQ8stXXheKM7hySoxW-dmCMs7AOXXEJtYsjQMwBk,11691
394
+ simtools/simtel/simulator_light_emission.py,sha256=oNQru5Rp8XIZL50aycsXwMEpUgbHPVLamTx6zbjj5A8,22932
395
+ simtools/simtel/simulator_ray_tracing.py,sha256=jZ3h0M4sHh7mT8KmDoMVmX4EkIQJvqiSl0BNzVTouFw,10878
393
396
  simtools/testing/assertions.py,sha256=xm4sdq55WPwlo7uvhnQPMzG6Xtr4Fx_J-yVz_JaxzYM,9449
394
397
  simtools/testing/configuration.py,sha256=f15d09dSlb0EIinU7PIUGOj7Ez-ksV0J8RX7JJSigcM,8229
395
398
  simtools/testing/helpers.py,sha256=kcTd9kVgZ72FB_5p1pkIan2StH6T8hXzSdQcusChqqg,1805
396
399
  simtools/testing/log_inspector.py,sha256=GCbpSRLZxTgwMMCYbJ-JR8bWGZ5P3IYb7N28X4Ypces,1589
397
- simtools/testing/sim_telarray_metadata.py,sha256=FylOEkrhIeVyTx3LKmRRoqYZZ0x7Wlwu4zDoOcuw9BE,7939
398
- simtools/testing/validate_output.py,sha256=dyel1O8HzPF_HdGyuBcmFATD1U_etLJO8La724yqjPY,15342
399
- simtools/utils/general.py,sha256=78nJ77euhO7RwY2RPuqc_FYyNLIsQFwufJvK9vMYhto,25147
400
+ simtools/testing/sim_telarray_metadata.py,sha256=lcrVX997t0aRVKTytuw4I5rmwmW2KNXyxDuzkdXOyyc,7955
401
+ simtools/testing/validate_output.py,sha256=WNQprhgbngquCwnsyeWouJjXFJJQaZPk0d7woF2nWL8,18087
402
+ simtools/utils/general.py,sha256=tIrTkDbaGyOsXeJGBCmCUx260W-HSclK5F0mUldJ-vc,24953
400
403
  simtools/utils/geometry.py,sha256=SYwtW5Hovu7oz48dhQtii8I4AMKxYFujp0Pds2qIvO0,5847
401
404
  simtools/utils/names.py,sha256=S5FUnFufxfkg_QKydOpeYpE5xJNK6JwDKW9eNFVhMAY,21812
405
+ simtools/utils/random.py,sha256=yEgLkmJ5mMK4Z2yYunuvhcYXW_Z1haeAliS4-cyk10g,924
402
406
  simtools/utils/value_conversion.py,sha256=UNPNjqCeuYRscZ6UJbVK2VhbViU97TsYulc7s23Mwao,6482
403
407
  simtools/visualization/legend_handlers.py,sha256=gKVPTz1EyXXTrurdTCNk-m6krDHTbf88UBgpE1tzyr4,10707
404
408
  simtools/visualization/plot_array_layout.py,sha256=tv3GvAthqCHioSlIIG455Rgd1P-dLg0nmq5zclyI6xk,19281
405
409
  simtools/visualization/plot_camera.py,sha256=dLXKHYfY_elqaKhj91HlntASoVixTrpc_Kf0jPU8RmU,11167
406
- simtools/visualization/plot_corsika_histograms.py,sha256=54BR1pdd4NExvxrvQh5h_n6_ZzP5lTT0TXPlADEYJnU,7056
407
- simtools/visualization/plot_incident_angles.py,sha256=kj_YcBrFRR6C9IUe4bhekfXR9UrPBmwXBtSvrFdMRf0,13424
410
+ simtools/visualization/plot_corsika_histograms.py,sha256=x3F3j1maU8KJt6_0m3m5xBcMf1DkCId0YoKAouA_Oy8,7174
411
+ simtools/visualization/plot_incident_angles.py,sha256=LRifj9SvFxD_YbMFdR3PPQ8Qc_azLGEE1ZIc8faC-GQ,15298
408
412
  simtools/visualization/plot_mirrors.py,sha256=apRYGJXJLFGwqLkLgYjPmoljDGMfBj2EjDAxBwGzs1A,26044
409
413
  simtools/visualization/plot_pixels.py,sha256=9wjsA9unFRTEoGHJItRRoVhz71sCRqADRQ-fVctNlls,20466
410
- simtools/visualization/plot_psf.py,sha256=Q6YS_E0Tn0sYMw7nRhRAGYWRTj5vf3B4cNWtDP4r_wE,25253
414
+ simtools/visualization/plot_psf.py,sha256=33EGCv5_FmFNcDmL694x95eUHz6P-zPetSoXwLsTGo8,30310
411
415
  simtools/visualization/plot_simtel_event_histograms.py,sha256=uoYLty4BLuLBt7LCwIcoS-4bj47iR43t-vbXtA0DdSQ,12723
412
416
  simtools/visualization/plot_simtel_events.py,sha256=7o1KMGWsWTn0Ljga8nyhVjxnlA4F8kFqs-_N30Clc80,31338
413
417
  simtools/visualization/plot_tables.py,sha256=1RRoB_J9FfkQX7n-t-ULyrJgvsptw7zi5WJrXqRgqG8,8186
414
418
  simtools/visualization/visualize.py,sha256=kbjY47jVJubYMFNXRMqjkEHxdXOqZ58-QsSnyIzWp_8,19346
415
- gammasimtools-0.26.0.dist-info/METADATA,sha256=U3W4UZ_zMBYh0CHDQlTwWGc7TRPtVIU9bWArcPUaiqU,6003
416
- gammasimtools-0.26.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
417
- gammasimtools-0.26.0.dist-info/entry_points.txt,sha256=OWg7_ymlyTftpDE8gh_Yl-nfMj6hxQ3fiRgg5WlV76o,5320
418
- gammasimtools-0.26.0.dist-info/top_level.txt,sha256=9Yi7Q7aQX6alvpP2YGQtIYo208wdGkXUApHboEdj-ys,9
419
- gammasimtools-0.26.0.dist-info/RECORD,,
419
+ gammasimtools-0.27.0.dist-info/METADATA,sha256=Guld5qhSgPXd1nrAVCzSm4NHQsJ20F6HLQulUHMAYSM,6328
420
+ gammasimtools-0.27.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
421
+ gammasimtools-0.27.0.dist-info/entry_points.txt,sha256=Kx1rb3XBcDbhJB_FhEaOcTfliaPGRf7H2b4X-dODlU8,5312
422
+ gammasimtools-0.27.0.dist-info/top_level.txt,sha256=9Yi7Q7aQX6alvpP2YGQtIYo208wdGkXUApHboEdj-ys,9
423
+ gammasimtools-0.27.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,5 +1,4 @@
1
1
  [console_scripts]
2
- simtools-calculate-incident-angles = simtools.applications.calculate_incident_angles:main
3
2
  simtools-convert-all-model-parameters-from-simtel = simtools.applications.convert_all_model_parameters_from_simtel:main
4
3
  simtools-convert-geo-coordinates-of-array-elements = simtools.applications.convert_geo_coordinates_of_array_elements:main
5
4
  simtools-convert-model-parameter-from-simtel = simtools.applications.convert_model_parameter_from_simtel:main
@@ -13,6 +12,7 @@ simtools-db-get-parameter-from-db = simtools.applications.db_get_parameter_from_
13
12
  simtools-db-inspect-databases = simtools.applications.db_inspect_databases:main
14
13
  simtools-db-upload-model-repository = simtools.applications.db_upload_model_repository:main
15
14
  simtools-derive-ctao-array-layouts = simtools.applications.derive_ctao_array_layouts:main
15
+ simtools-derive-incident-angle = simtools.applications.derive_incident_angle:main
16
16
  simtools-derive-mirror-rnda = simtools.applications.derive_mirror_rnda:main
17
17
  simtools-derive-photon-electron-spectrum = simtools.applications.derive_photon_electron_spectrum:main
18
18
  simtools-derive-psf-parameters = simtools.applications.derive_psf_parameters:main
simtools/_version.py CHANGED
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.26.0'
32
- __version_tuple__ = version_tuple = (0, 26, 0)
31
+ __version__ = version = '0.27.0'
32
+ __version_tuple__ = version_tuple = (0, 27, 0)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -157,7 +157,8 @@ def main():
157
157
  else layout.export_telescope_list_table(crs_name=app_context.args["export"])
158
158
  )
159
159
  writer.ModelDataWriter.dump(
160
- args_dict=app_context.args,
160
+ output_file=app_context.args.get("output_file"),
161
+ output_file_format=app_context.args.get("output_file_format", "ascii.ecsv"),
161
162
  metadata=metadata,
162
163
  product_data=product_data,
163
164
  validate_schema_file=validate_schema_file,
@@ -129,8 +129,8 @@ def main():
129
129
 
130
130
  if not app_context.args.get("output_file_from_default", False):
131
131
  writer.ModelDataWriter.dump(
132
- args_dict=app_context.args,
133
132
  output_file=app_context.args["output_file"],
133
+ output_file_format=app_context.args.get("output_file_format"),
134
134
  metadata=None,
135
135
  product_data=layout,
136
136
  )
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python
2
2
  r"""
3
- Calculate photon incident angles on focal plane and primary/secondary mirrors.
3
+ Derive photon incident angles on focal plane and primary/secondary mirrors.
4
4
 
5
5
  Creates photon files with additional columns for incident angles calculation.
6
6
  Outputs files and histograms of the incidence angles at
@@ -14,7 +14,7 @@ Example usage
14
14
 
15
15
  .. code-block:: console
16
16
 
17
- simtools-calculate-incident-angles \
17
+ simtools-derive-incident-angle \
18
18
  --off_axis_angles 0 1 2 3 4 \
19
19
  --source_distance 10 \
20
20
  --number_of_photons 1000000 \
@@ -47,27 +47,27 @@ The application writes:
47
47
 
48
48
  Example of a focal-plane incident angle plot for a SST:
49
49
 
50
- .. _plot_calculate_incident_angles_plot:
51
- .. image:: images/incident_angles_multi_calculate_incident_angles_SSTS-04.png
50
+ .. _plot_derive_incident_angle_plot:
51
+ .. image:: images/incident_angles_multi_derive_incident_angle_SSTS-04.png
52
52
  :width: 49 %
53
53
 
54
54
  Example of a primary mirror incident angle plot for a SST:
55
55
 
56
- .. _plot_calculate_incident_angles_plot_primary:
57
- .. image:: images/incident_angles_primary_multi_calculate_incident_angles_SSTS-04.png
56
+ .. _plot_derive_incident_angle_plot_primary:
57
+ .. image:: images/incident_angles_primary_multi_derive_incident_angle_SSTS-04.png
58
58
  :width: 49 %
59
59
 
60
60
  Note also the relation between radius and primary mirror incident angles, and how this relates to
61
61
  the peak seen in the primary mirror incident angle distribution:
62
62
 
63
- .. _plot_calculate_incident_angles_plot_angle_vs_radius:
63
+ .. _plot_derive_incident_angle_plot_angle_vs_radius:
64
64
  .. image:: images/primary_angle_vs_radius.png
65
65
  :width: 49 %
66
66
 
67
67
  Example of a secondary mirror incident angle plot for a SST:
68
68
 
69
- .. _plot_calculate_incident_angles_plot_secondary:
70
- .. image:: images/incident_angles_secondary_multi_calculate_incident_angles_SSTS-04.png
69
+ .. _plot_derive_incident_angle_plot_secondary:
70
+ .. image:: images/incident_angles_secondary_multi_derive_incident_angle_SSTS-04.png
71
71
  :width: 49 %
72
72
  """
73
73
 
@@ -82,9 +82,7 @@ def _parse():
82
82
  """Parse command line configuration."""
83
83
  config = configurator.Configurator(
84
84
  label=get_application_label(__file__),
85
- description=(
86
- "Calculate photon incident angles on focal plane and primary/secondary mirrors."
87
- ),
85
+ description=("Derive photon incident angles on focal plane and primary/secondary mirrors."),
88
86
  )
89
87
  config.parser.add_argument(
90
88
  "--off_axis_angles",
@@ -123,7 +121,7 @@ def _parse():
123
121
  config.parser.add_argument(
124
122
  "--calculate_primary_secondary_angles",
125
123
  dest="calculate_primary_secondary_angles",
126
- help="Also compute angles of incidence on primary and secondary mirrors",
124
+ help="Compute angles of incidence on primary and secondary mirrors",
127
125
  required=False,
128
126
  action="store_true",
129
127
  )
@@ -134,10 +132,10 @@ def _parse():
134
132
 
135
133
 
136
134
  def main():
137
- """Calculate photon incident angles on focal plane and primary/secondary mirrors."""
135
+ """Derive photon incident angles on focal plane and primary/secondary mirrors."""
138
136
  app_context = startup_application(_parse)
139
137
 
140
- app_context.logger.info("Starting calculation of incident angles")
138
+ app_context.logger.info("Starting derivation of incident angles")
141
139
 
142
140
  output_dir = app_context.io_handler.get_output_directory()
143
141
  base_label = app_context.args.get("label", get_application_label(__file__))
@@ -157,10 +155,12 @@ def main():
157
155
  output_dir,
158
156
  label_with_telescope,
159
157
  debug_plots=app_context.args.get("debug_plots", False),
158
+ model_version=app_context.args.get("model_version", None),
160
159
  )
160
+ calculator.save_model_parameters(results_by_offset)
161
161
  total = sum(len(t) for t in results_by_offset.values())
162
162
  summary_msg = (
163
- f"Calculated incident angles for {len(results_by_offset)} offsets,\n"
163
+ f"Derived incident angles for {len(results_by_offset)} offsets,\n"
164
164
  f"total photon statistics {total}"
165
165
  )
166
166
  if total < 1_000_000: