gammasimtools 0.24.0__py3-none-any.whl → 0.26.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.24.0.dist-info → gammasimtools-0.26.0.dist-info}/METADATA +2 -1
- {gammasimtools-0.24.0.dist-info → gammasimtools-0.26.0.dist-info}/RECORD +134 -130
- {gammasimtools-0.24.0.dist-info → gammasimtools-0.26.0.dist-info}/entry_points.txt +3 -1
- {gammasimtools-0.24.0.dist-info → gammasimtools-0.26.0.dist-info}/licenses/LICENSE +1 -1
- simtools/_version.py +2 -2
- simtools/application_control.py +78 -0
- simtools/applications/calculate_incident_angles.py +0 -2
- simtools/applications/convert_geo_coordinates_of_array_elements.py +1 -2
- simtools/applications/db_add_file_to_db.py +1 -1
- simtools/applications/db_add_simulation_model_from_repository_to_db.py +1 -1
- simtools/applications/db_add_value_from_json_to_db.py +1 -1
- simtools/applications/db_generate_compound_indexes.py +1 -1
- simtools/applications/db_get_array_layouts_from_db.py +2 -6
- simtools/applications/db_get_file_from_db.py +1 -1
- simtools/applications/db_get_parameter_from_db.py +1 -1
- simtools/applications/db_inspect_databases.py +1 -1
- simtools/applications/db_upload_model_repository.py +1 -1
- simtools/applications/derive_ctao_array_layouts.py +1 -2
- simtools/applications/derive_mirror_rnda.py +1 -3
- simtools/applications/derive_psf_parameters.py +5 -1
- simtools/applications/derive_pulse_shape_parameters.py +194 -0
- simtools/applications/derive_trigger_rates.py +1 -1
- simtools/applications/docs_produce_array_element_report.py +2 -8
- simtools/applications/docs_produce_calibration_reports.py +1 -3
- simtools/applications/docs_produce_model_parameter_reports.py +0 -2
- simtools/applications/docs_produce_simulation_configuration_report.py +1 -3
- simtools/applications/generate_array_config.py +0 -1
- simtools/applications/generate_corsika_histograms.py +48 -235
- simtools/applications/generate_regular_arrays.py +5 -35
- simtools/applications/generate_simtel_event_data.py +2 -2
- simtools/applications/maintain_simulation_model_add_production.py +2 -2
- simtools/applications/maintain_simulation_model_write_array_element_positions.py +87 -0
- simtools/applications/plot_array_layout.py +64 -108
- simtools/applications/plot_simulated_event_distributions.py +57 -0
- simtools/applications/plot_tabular_data.py +0 -1
- simtools/applications/plot_tabular_data_for_model_parameter.py +1 -6
- simtools/applications/production_derive_corsika_limits.py +1 -1
- simtools/applications/production_generate_grid.py +0 -1
- simtools/applications/run_application.py +1 -1
- simtools/applications/simulate_flasher.py +3 -4
- simtools/applications/simulate_illuminator.py +0 -1
- simtools/applications/simulate_pedestals.py +2 -6
- simtools/applications/simulate_prod.py +9 -28
- simtools/applications/simulate_prod_htcondor_generator.py +8 -1
- simtools/applications/submit_array_layouts.py +7 -7
- simtools/applications/submit_model_parameter_from_external.py +1 -3
- simtools/applications/validate_camera_efficiency.py +0 -1
- simtools/applications/validate_camera_fov.py +0 -1
- simtools/applications/validate_cumulative_psf.py +0 -2
- simtools/applications/validate_file_using_schema.py +49 -123
- simtools/applications/validate_optics.py +0 -13
- simtools/camera/camera_efficiency.py +1 -6
- simtools/camera/single_photon_electron_spectrum.py +2 -1
- simtools/configuration/commandline_parser.py +43 -8
- simtools/configuration/configurator.py +6 -11
- simtools/corsika/corsika_config.py +204 -99
- simtools/corsika/corsika_histograms.py +411 -1735
- simtools/corsika/primary_particle.py +1 -1
- simtools/data_model/metadata_collector.py +5 -2
- simtools/data_model/metadata_model.py +0 -4
- simtools/data_model/model_data_writer.py +27 -17
- simtools/data_model/schema.py +112 -5
- simtools/data_model/validate_data.py +80 -48
- simtools/db/db_handler.py +19 -8
- simtools/db/db_model_upload.py +2 -1
- simtools/db/mongo_db.py +133 -42
- simtools/dependencies.py +83 -44
- simtools/io/ascii_handler.py +4 -2
- simtools/io/table_handler.py +1 -1
- simtools/job_execution/htcondor_script_generator.py +0 -2
- simtools/layout/array_layout.py +4 -12
- simtools/layout/array_layout_utils.py +227 -58
- simtools/model/array_model.py +37 -18
- simtools/model/calibration_model.py +0 -4
- simtools/model/legacy_model_parameter.py +134 -0
- simtools/model/model_parameter.py +24 -14
- simtools/model/model_repository.py +18 -5
- simtools/model/model_utils.py +1 -6
- simtools/model/site_model.py +0 -4
- simtools/model/telescope_model.py +6 -11
- simtools/production_configuration/derive_corsika_limits.py +6 -11
- simtools/production_configuration/interpolation_handler.py +16 -16
- simtools/ray_tracing/incident_angles.py +5 -11
- simtools/ray_tracing/mirror_panel_psf.py +3 -7
- simtools/ray_tracing/psf_analysis.py +29 -27
- simtools/ray_tracing/psf_parameter_optimisation.py +822 -680
- simtools/ray_tracing/ray_tracing.py +6 -15
- simtools/reporting/docs_auto_report_generator.py +8 -13
- simtools/reporting/docs_read_parameters.py +70 -16
- simtools/runners/corsika_runner.py +15 -10
- simtools/runners/corsika_simtel_runner.py +9 -8
- simtools/runners/runner_services.py +17 -7
- simtools/runners/simtel_runner.py +11 -58
- simtools/runners/simtools_runner.py +2 -4
- simtools/schemas/model_parameters/flasher_pulse_exp_decay.schema.yml +2 -0
- simtools/schemas/model_parameters/flasher_pulse_shape.schema.yml +50 -0
- simtools/schemas/model_parameters/flasher_pulse_width.schema.yml +2 -0
- simtools/schemas/simulation_models_info.schema.yml +2 -0
- simtools/settings.py +154 -0
- simtools/sim_events/file_info.py +128 -0
- simtools/{simtel/simtel_io_event_histograms.py → sim_events/histograms.py} +25 -15
- simtools/{simtel/simtel_io_event_reader.py → sim_events/reader.py} +20 -17
- simtools/{simtel/simtel_io_event_writer.py → sim_events/writer.py} +84 -25
- simtools/simtel/pulse_shapes.py +273 -0
- simtools/simtel/simtel_config_writer.py +146 -22
- simtools/simtel/simtel_table_reader.py +6 -4
- simtools/simtel/simulator_array.py +62 -23
- simtools/simtel/simulator_camera_efficiency.py +4 -6
- simtools/simtel/simulator_light_emission.py +101 -19
- simtools/simtel/simulator_ray_tracing.py +4 -10
- simtools/simulator.py +360 -353
- simtools/telescope_trigger_rates.py +3 -4
- simtools/testing/assertions.py +115 -8
- simtools/testing/configuration.py +2 -3
- simtools/testing/helpers.py +2 -3
- simtools/testing/log_inspector.py +5 -1
- simtools/testing/sim_telarray_metadata.py +1 -1
- simtools/testing/validate_output.py +69 -23
- simtools/utils/general.py +37 -0
- simtools/utils/geometry.py +0 -77
- simtools/utils/names.py +7 -9
- simtools/version.py +37 -0
- simtools/visualization/legend_handlers.py +21 -10
- simtools/visualization/plot_array_layout.py +312 -41
- simtools/visualization/plot_corsika_histograms.py +143 -605
- simtools/visualization/plot_mirrors.py +834 -0
- simtools/visualization/plot_pixels.py +2 -4
- simtools/visualization/plot_psf.py +0 -1
- simtools/visualization/plot_simtel_event_histograms.py +4 -4
- simtools/visualization/plot_simtel_events.py +6 -11
- simtools/visualization/plot_tables.py +8 -19
- simtools/visualization/visualize.py +22 -2
- simtools/applications/db_development_tools/write_array_elements_positions_to_repository.py +0 -160
- simtools/applications/print_version.py +0 -53
- simtools/io/hdf5_handler.py +0 -139
- simtools/simtel/simtel_io_file_info.py +0 -62
- {gammasimtools-0.24.0.dist-info → gammasimtools-0.26.0.dist-info}/WHEEL +0 -0
- {gammasimtools-0.24.0.dist-info → gammasimtools-0.26.0.dist-info}/top_level.txt +0 -0
|
@@ -85,7 +85,7 @@ def _parse():
|
|
|
85
85
|
)
|
|
86
86
|
|
|
87
87
|
|
|
88
|
-
def _layout_from_db(args_dict
|
|
88
|
+
def _layout_from_db(args_dict):
|
|
89
89
|
"""
|
|
90
90
|
Read array elements and their positions from data base using the layout name.
|
|
91
91
|
|
|
@@ -93,8 +93,6 @@ def _layout_from_db(args_dict, db_config):
|
|
|
93
93
|
----------
|
|
94
94
|
args_dict : dict
|
|
95
95
|
Dictionary with the command line arguments.
|
|
96
|
-
db_config : dict
|
|
97
|
-
Database configuration.
|
|
98
96
|
|
|
99
97
|
Returns
|
|
100
98
|
-------
|
|
@@ -102,7 +100,6 @@ def _layout_from_db(args_dict, db_config):
|
|
|
102
100
|
Table with array element positions.
|
|
103
101
|
"""
|
|
104
102
|
array_model = ArrayModel(
|
|
105
|
-
db_config=db_config,
|
|
106
103
|
model_version=args_dict["model_version"],
|
|
107
104
|
site=args_dict["site"],
|
|
108
105
|
layout_name=args_dict.get("array_layout_name", None),
|
|
@@ -121,14 +118,13 @@ def main():
|
|
|
121
118
|
if app_context.args.get("site", None) is None:
|
|
122
119
|
raise ValueError("Site must be provided to list available layouts.")
|
|
123
120
|
site_model = SiteModel(
|
|
124
|
-
db_config=app_context.db_config,
|
|
125
121
|
model_version=app_context.args["model_version"],
|
|
126
122
|
site=app_context.args["site"],
|
|
127
123
|
)
|
|
128
124
|
print(site_model.get_list_of_array_layouts())
|
|
129
125
|
else:
|
|
130
126
|
app_context.logger.info("Array layout: %s", app_context.args["array_layout_name"])
|
|
131
|
-
layout = _layout_from_db(app_context.args
|
|
127
|
+
layout = _layout_from_db(app_context.args)
|
|
132
128
|
layout.pprint()
|
|
133
129
|
|
|
134
130
|
if not app_context.args.get("output_file_from_default", False):
|
|
@@ -60,7 +60,7 @@ def main():
|
|
|
60
60
|
"""Get file from database."""
|
|
61
61
|
app_context = startup_application(_parse)
|
|
62
62
|
|
|
63
|
-
db = db_handler.DatabaseHandler(
|
|
63
|
+
db = db_handler.DatabaseHandler()
|
|
64
64
|
file_id = db.export_model_files(
|
|
65
65
|
dest=app_context.io_handler.get_output_directory(),
|
|
66
66
|
file_names=app_context.args["file_name"],
|
|
@@ -108,7 +108,7 @@ def main():
|
|
|
108
108
|
"""Get a parameter entry from DB for a specific telescope or a site."""
|
|
109
109
|
app_context = startup_application(_parse)
|
|
110
110
|
|
|
111
|
-
db = db_handler.DatabaseHandler(
|
|
111
|
+
db = db_handler.DatabaseHandler()
|
|
112
112
|
|
|
113
113
|
pars = db.get_model_parameter(
|
|
114
114
|
parameter=app_context.args["parameter"],
|
|
@@ -32,7 +32,7 @@ def main():
|
|
|
32
32
|
"""Inspect databases."""
|
|
33
33
|
app_context = startup_application(_parse, setup_io_handler=False)
|
|
34
34
|
|
|
35
|
-
db = db_handler.DatabaseHandler(
|
|
35
|
+
db = db_handler.DatabaseHandler()
|
|
36
36
|
# databases without internal databases we don't have rights to modify
|
|
37
37
|
databases = [
|
|
38
38
|
d
|
|
@@ -87,7 +87,7 @@ def main():
|
|
|
87
87
|
"""Application main."""
|
|
88
88
|
app_context = startup_application(_parse)
|
|
89
89
|
|
|
90
|
-
db = db_handler.DatabaseHandler(
|
|
90
|
+
db = db_handler.DatabaseHandler()
|
|
91
91
|
db.print_connection_info()
|
|
92
92
|
|
|
93
93
|
db_model_upload.add_complete_model(
|
|
@@ -92,7 +92,7 @@ def main():
|
|
|
92
92
|
branch_name=app_context.args["repository_branch"],
|
|
93
93
|
)
|
|
94
94
|
|
|
95
|
-
db = db_handler.DatabaseHandler(
|
|
95
|
+
db = db_handler.DatabaseHandler()
|
|
96
96
|
db_array_layouts = db.get_model_parameter(
|
|
97
97
|
parameter="array_layouts",
|
|
98
98
|
site=app_context.args["site"],
|
|
@@ -107,7 +107,6 @@ def main():
|
|
|
107
107
|
write_array_layouts(
|
|
108
108
|
array_layouts=merge_array_layouts(db_array_layouts["array_layouts"], ctao_array_layouts),
|
|
109
109
|
args_dict=app_context.args,
|
|
110
|
-
db_config=app_context.db_config,
|
|
111
110
|
)
|
|
112
111
|
|
|
113
112
|
|
|
@@ -218,9 +218,7 @@ def main():
|
|
|
218
218
|
"""Derive mirror random reflection angle of a single mirror panel."""
|
|
219
219
|
app_context = startup_application(_parse)
|
|
220
220
|
|
|
221
|
-
panel_psf = MirrorPanelPSF(
|
|
222
|
-
app_context.args.get("label"), app_context.args, app_context.db_config
|
|
223
|
-
)
|
|
221
|
+
panel_psf = MirrorPanelPSF(app_context.args.get("label"), app_context.args)
|
|
224
222
|
panel_psf.derive_random_reflection_angle(save_figures=True)
|
|
225
223
|
panel_psf.print_results()
|
|
226
224
|
panel_psf.write_optimization_data()
|
|
@@ -187,6 +187,11 @@ def _parse():
|
|
|
187
187
|
type=float,
|
|
188
188
|
default=0.8,
|
|
189
189
|
)
|
|
190
|
+
config.parser.add_argument(
|
|
191
|
+
"--cleanup",
|
|
192
|
+
help="Remove intermediate *.log and *.lis* files after optimization.",
|
|
193
|
+
action="store_true",
|
|
194
|
+
)
|
|
190
195
|
return config.initialize(
|
|
191
196
|
db_config=True,
|
|
192
197
|
simulation_model=["telescope", "model_version", "parameter_version"],
|
|
@@ -199,7 +204,6 @@ def main():
|
|
|
199
204
|
|
|
200
205
|
tel_model, site_model, _ = initialize_simulation_models(
|
|
201
206
|
label=app_context.args.get("label"),
|
|
202
|
-
db_config=app_context.db_config,
|
|
203
207
|
site=app_context.args["site"],
|
|
204
208
|
telescope_name=app_context.args["telescope"],
|
|
205
209
|
model_version=app_context.args["model_version"],
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
r"""Derive Gaussian sigma and exponential tau from specified rise/fall widths.
|
|
3
|
+
|
|
4
|
+
Solve (sigma, tau) for a Gaussian convolved with a causal exponential so the
|
|
5
|
+
pulse matches user-provided rise and fall widths between fractional amplitude
|
|
6
|
+
levels (e.g. 0.1-0.9 rise, 0.9-0.1 fall).
|
|
7
|
+
|
|
8
|
+
Command line arguments
|
|
9
|
+
----------------------
|
|
10
|
+
site (str, required)
|
|
11
|
+
North or South.
|
|
12
|
+
telescope (str, required)
|
|
13
|
+
Telescope model name.
|
|
14
|
+
model_version (str, required)
|
|
15
|
+
Model version.
|
|
16
|
+
parameter_version (str, required)
|
|
17
|
+
Parameter version.
|
|
18
|
+
rise_width_ns (float, required)
|
|
19
|
+
Rising-edge width between rise_range fractions (ns).
|
|
20
|
+
fall_width_ns (float, required)
|
|
21
|
+
Falling-edge width between fall_range fractions (ns).
|
|
22
|
+
rise_range (float float, optional)
|
|
23
|
+
Fractional amplitudes (low high) for rise width (default: 0.1 0.9).
|
|
24
|
+
fall_range (float float, optional)
|
|
25
|
+
Fractional amplitudes (high low) for fall width (default: 0.9 0.1).
|
|
26
|
+
dt_ns (float, optional)
|
|
27
|
+
Time sampling step (ns). Default: 0.1.
|
|
28
|
+
time_margin_ns (float, optional)
|
|
29
|
+
Margin added at both ends of readout window. Default: 5.
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
Example
|
|
33
|
+
-------
|
|
34
|
+
Derive parameters for a pulse with 2.5 ns rise (10-90%) and
|
|
35
|
+
5 ns fall (90-10%) for LSTN-01:
|
|
36
|
+
|
|
37
|
+
.. code-block:: console
|
|
38
|
+
|
|
39
|
+
simtools-derive-pulse-shape-parameters \
|
|
40
|
+
--site North \
|
|
41
|
+
--telescope MSTx-NectarCam \
|
|
42
|
+
--model_version 7.0 \
|
|
43
|
+
--parameter_version 1.0.0 \
|
|
44
|
+
--rise_width_ns 2.5 \
|
|
45
|
+
--fall_width_ns 5.0 \
|
|
46
|
+
--rise_range 0.1 0.9 \
|
|
47
|
+
--fall_range 0.9 0.1 \
|
|
48
|
+
--dt_ns 0.1 \
|
|
49
|
+
--time_margin_ns 10
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
import logging
|
|
53
|
+
|
|
54
|
+
import simtools.data_model.model_data_writer as writer
|
|
55
|
+
from simtools.application_control import get_application_label, startup_application
|
|
56
|
+
from simtools.configuration import configurator
|
|
57
|
+
from simtools.model.model_utils import initialize_simulation_models
|
|
58
|
+
from simtools.simtel.pulse_shapes import solve_sigma_tau_from_rise_fall
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def _parse():
|
|
62
|
+
"""Parse command line configuration for parameter derivation."""
|
|
63
|
+
config = configurator.Configurator(
|
|
64
|
+
label=get_application_label(__file__),
|
|
65
|
+
description=(
|
|
66
|
+
"Derive Gaussian sigma and exponential tau from rise/fall width specifications."
|
|
67
|
+
),
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
config.parser.add_argument(
|
|
71
|
+
"--rise_width_ns",
|
|
72
|
+
help="Wdth on the rising edge in ns between rise_range fractions.",
|
|
73
|
+
type=float,
|
|
74
|
+
required=True,
|
|
75
|
+
)
|
|
76
|
+
config.parser.add_argument(
|
|
77
|
+
"--fall_width_ns",
|
|
78
|
+
help="Width on the falling edge in ns between fall_range fractions.",
|
|
79
|
+
type=float,
|
|
80
|
+
required=True,
|
|
81
|
+
)
|
|
82
|
+
config.parser.add_argument(
|
|
83
|
+
"--rise_range",
|
|
84
|
+
help="Fractional amplitudes (low high) for rise width, e.g. 0.1 0.9",
|
|
85
|
+
type=float,
|
|
86
|
+
nargs=2,
|
|
87
|
+
default=[0.1, 0.9],
|
|
88
|
+
required=False,
|
|
89
|
+
)
|
|
90
|
+
config.parser.add_argument(
|
|
91
|
+
"--fall_range",
|
|
92
|
+
help="Fractional amplitudes (high low) for fall width, e.g. 0.9 0.1",
|
|
93
|
+
type=float,
|
|
94
|
+
nargs=2,
|
|
95
|
+
default=[0.9, 0.1],
|
|
96
|
+
required=False,
|
|
97
|
+
)
|
|
98
|
+
config.parser.add_argument(
|
|
99
|
+
"--dt_ns",
|
|
100
|
+
help="Time sampling step in ns used by the solver.",
|
|
101
|
+
type=float,
|
|
102
|
+
default=0.1,
|
|
103
|
+
required=False,
|
|
104
|
+
)
|
|
105
|
+
config.parser.add_argument(
|
|
106
|
+
"--time_margin_ns",
|
|
107
|
+
help=(
|
|
108
|
+
"Margin (ns) added to both ends of the instrument readout window when deriving the "
|
|
109
|
+
"internal time window."
|
|
110
|
+
),
|
|
111
|
+
type=float,
|
|
112
|
+
default=10.0,
|
|
113
|
+
required=False,
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
return config.initialize(
|
|
117
|
+
db_config=True,
|
|
118
|
+
simulation_model=["site", "telescope", "model_version", "parameter_version"],
|
|
119
|
+
output=True,
|
|
120
|
+
)
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
def main():
|
|
124
|
+
"""Run parameter derivation and write results."""
|
|
125
|
+
app_context = startup_application(_parse)
|
|
126
|
+
log = logging.getLogger(__name__)
|
|
127
|
+
|
|
128
|
+
rise_width_ns = app_context.args["rise_width_ns"]
|
|
129
|
+
fall_width_ns = app_context.args["fall_width_ns"]
|
|
130
|
+
rise_range = tuple(app_context.args["rise_range"])
|
|
131
|
+
fall_range = tuple(app_context.args["fall_range"])
|
|
132
|
+
dt_ns = app_context.args["dt_ns"]
|
|
133
|
+
time_margin_ns = app_context.args["time_margin_ns"]
|
|
134
|
+
site = app_context.args["site"]
|
|
135
|
+
label = app_context.args.get("label") or get_application_label(__file__)
|
|
136
|
+
telescope_model, _, _ = initialize_simulation_models(
|
|
137
|
+
label=label,
|
|
138
|
+
model_version=app_context.args["model_version"],
|
|
139
|
+
site=site,
|
|
140
|
+
telescope_name=app_context.args["telescope"],
|
|
141
|
+
)
|
|
142
|
+
fadc_sum_bins = telescope_model.get_parameter_value("fadc_sum_bins")
|
|
143
|
+
|
|
144
|
+
window_ns = fadc_sum_bins + time_margin_ns
|
|
145
|
+
t_start_ns = -window_ns
|
|
146
|
+
t_stop_ns = window_ns
|
|
147
|
+
|
|
148
|
+
sigma_ns, tau_ns = solve_sigma_tau_from_rise_fall(
|
|
149
|
+
rise_width_ns=rise_width_ns,
|
|
150
|
+
fall_width_ns=fall_width_ns,
|
|
151
|
+
dt_ns=dt_ns,
|
|
152
|
+
rise_range=rise_range,
|
|
153
|
+
t_start_ns=t_start_ns,
|
|
154
|
+
t_stop_ns=t_stop_ns,
|
|
155
|
+
)
|
|
156
|
+
# Apply reasonable rounding for output precision.
|
|
157
|
+
sigma_ns = round(sigma_ns, 4)
|
|
158
|
+
tau_ns = round(tau_ns, 4)
|
|
159
|
+
|
|
160
|
+
log.info(
|
|
161
|
+
f"Derived pulse parameters: sigma={sigma_ns:.6g} ns, tau={tau_ns:.6g} ns "
|
|
162
|
+
f"(rise={rise_width_ns} ns @ {rise_range}, fall={fall_width_ns} ns @ {fall_range})"
|
|
163
|
+
)
|
|
164
|
+
|
|
165
|
+
output_path = app_context.args.get("output_path")
|
|
166
|
+
instrument = app_context.args.get("telescope")
|
|
167
|
+
parameter_version = app_context.args.get("parameter_version")
|
|
168
|
+
|
|
169
|
+
writer.ModelDataWriter.dump_model_parameter(
|
|
170
|
+
parameter_name="flasher_pulse_width",
|
|
171
|
+
value=sigma_ns,
|
|
172
|
+
instrument=instrument,
|
|
173
|
+
parameter_version=parameter_version,
|
|
174
|
+
output_file="flasher_pulse_width.json",
|
|
175
|
+
output_path=output_path,
|
|
176
|
+
unit="ns",
|
|
177
|
+
)
|
|
178
|
+
writer.ModelDataWriter.dump_model_parameter(
|
|
179
|
+
parameter_name="flasher_pulse_exp_decay",
|
|
180
|
+
value=tau_ns,
|
|
181
|
+
instrument=instrument,
|
|
182
|
+
parameter_version=parameter_version,
|
|
183
|
+
output_file="flasher_pulse_exp_decay.json",
|
|
184
|
+
output_path=output_path,
|
|
185
|
+
unit="ns",
|
|
186
|
+
)
|
|
187
|
+
log.info(
|
|
188
|
+
f"Wrote model parameter files flasher_pulse_width.json and "
|
|
189
|
+
f"flasher_pulse_exp_decay.json (sigma={sigma_ns:.6g} ns, tau={tau_ns:.6g} ns)"
|
|
190
|
+
)
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
if __name__ == "__main__":
|
|
194
|
+
main()
|
|
@@ -81,7 +81,7 @@ def main():
|
|
|
81
81
|
"""Derive trigger rates for a single telescope or an array of telescopes."""
|
|
82
82
|
app_context = startup_application(_parse)
|
|
83
83
|
|
|
84
|
-
telescope_trigger_rates(app_context.args
|
|
84
|
+
telescope_trigger_rates(app_context.args)
|
|
85
85
|
|
|
86
86
|
|
|
87
87
|
if __name__ == "__main__":
|
|
@@ -61,18 +61,12 @@ def main():
|
|
|
61
61
|
app_context.args.get("all_model_versions"),
|
|
62
62
|
]
|
|
63
63
|
):
|
|
64
|
-
ReportGenerator(
|
|
65
|
-
app_context.db_config,
|
|
66
|
-
app_context.args,
|
|
67
|
-
output_path,
|
|
68
|
-
).auto_generate_array_element_reports()
|
|
64
|
+
ReportGenerator(app_context.args, output_path).auto_generate_array_element_reports()
|
|
69
65
|
|
|
70
66
|
else:
|
|
71
67
|
model_version = app_context.args["model_version"]
|
|
72
68
|
ReadParameters(
|
|
73
|
-
app_context.
|
|
74
|
-
app_context.args,
|
|
75
|
-
Path(output_path / f"{model_version}"),
|
|
69
|
+
app_context.args, Path(output_path / f"{model_version}")
|
|
76
70
|
).produce_array_element_report()
|
|
77
71
|
|
|
78
72
|
app_context.logger.info(
|
|
@@ -32,9 +32,7 @@ def main():
|
|
|
32
32
|
|
|
33
33
|
output_path = app_context.io_handler.get_output_directory()
|
|
34
34
|
|
|
35
|
-
generator = ReportGenerator(
|
|
36
|
-
db_config=app_context.db_config, args=app_context.args, output_path=output_path
|
|
37
|
-
)
|
|
35
|
+
generator = ReportGenerator(args=app_context.args, output_path=output_path)
|
|
38
36
|
generator.auto_generate_calibration_reports()
|
|
39
37
|
|
|
40
38
|
if app_context.args.get("all_model_versions"):
|
|
@@ -41,14 +41,12 @@ def main():
|
|
|
41
41
|
|
|
42
42
|
if any([app_context.args.get("all_telescopes"), app_context.args.get("all_sites")]):
|
|
43
43
|
ReportGenerator(
|
|
44
|
-
app_context.db_config,
|
|
45
44
|
app_context.args,
|
|
46
45
|
output_path,
|
|
47
46
|
).auto_generate_parameter_reports()
|
|
48
47
|
|
|
49
48
|
else:
|
|
50
49
|
ReadParameters(
|
|
51
|
-
app_context.db_config,
|
|
52
50
|
app_context.args,
|
|
53
51
|
output_path,
|
|
54
52
|
).produce_model_parameter_reports()
|
|
@@ -33,9 +33,7 @@ def main():
|
|
|
33
33
|
|
|
34
34
|
output_path = app_context.io_handler.get_output_directory()
|
|
35
35
|
|
|
36
|
-
report_generator = ReportGenerator(
|
|
37
|
-
db_config=app_context.db_config, args=app_context.args, output_path=output_path
|
|
38
|
-
)
|
|
36
|
+
report_generator = ReportGenerator(args=app_context.args, output_path=output_path)
|
|
39
37
|
report_generator.auto_generate_simulation_configuration_reports()
|
|
40
38
|
|
|
41
39
|
app_context.logger.info(
|
|
@@ -46,7 +46,6 @@ def main():
|
|
|
46
46
|
array_model = ArrayModel(
|
|
47
47
|
label=app_context.args["label"],
|
|
48
48
|
model_version=app_context.args["model_version"],
|
|
49
|
-
db_config=app_context.db_config,
|
|
50
49
|
site=app_context.args.get("site"),
|
|
51
50
|
layout_name=app_context.args.get("array_layout_name"),
|
|
52
51
|
array_elements=app_context.args.get("array_elements"),
|