Skip to content

Commit 2b8a982

Browse files
Merge pull request #77 from neutrons/separate_global_per_run
Clearly distinguish global and per-run options
2 parents e7d9302 + f01c8ab commit 2b8a982

File tree

5 files changed

+474
-294
lines changed

5 files changed

+474
-294
lines changed

reflectivity_ui/interfaces/configuration.py

+29-27
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,24 @@ class Configuration(object):
2020
KZI_VS_KZF = 1
2121
DELTA_KZ_VS_QZ = 3
2222

23+
# Global variables
24+
25+
wl_bandwidth = 3.2
26+
use_constant_q = False
27+
sample_size = 10
28+
# Final Q rebin
29+
do_final_rebin = True
30+
final_rebin_step = -0.01
31+
# Normalize to unity when stitching
32+
normalize_to_unity = True
33+
total_reflectivity_q_cutoff = 0.01
34+
# Use all cross-sections when stitching
35+
global_stitching = False
36+
# Use a polynomial curve fit when stitching
37+
polynomial_stitching = False
38+
polynomial_stitching_degree = 3
39+
polynomial_stitching_points = 3
40+
2341
def __init__(self, settings=None):
2442
self.instrument = Instrument()
2543
# Number of TOF bins
@@ -30,7 +48,6 @@ def __init__(self, settings=None):
3048
# 1 = Constant Q bin width
3149
# 2 = Constant 1/wavelength bin width
3250
self.tof_bin_type = 0
33-
self.wl_bandwidth = 3.2
3451

3552
# Threshold under which we skip a cross-section, as fraction of the max count
3653
self.count_threshold = 0.01
@@ -44,8 +61,6 @@ def __init__(self, settings=None):
4461
self.set_direct_angle_offset = False
4562
self.direct_angle_offset_overwrite = 0
4663
self.use_dangle = False
47-
self.use_constant_q = False
48-
self.sample_size = 10
4964

5065
# Update the specular peak range after finding the peak
5166
# within the ROI
@@ -75,24 +90,11 @@ def __init__(self, settings=None):
7590
self.scaling_factor = 1.0
7691
# Error in the scaling factor
7792
self.scaling_error = 0.0
78-
# Normalize to unity when stitching
79-
self.normalize_to_unity = True
80-
self.total_reflectivity_q_cutoff = 0.01
81-
# Use all cross-sections when stitching
82-
self.global_stitching = False
83-
# Use a polynomial curve fit when stitching
84-
self.polynomial_stitching = False
85-
self.polynomial_stitching_degree = 3
86-
self.polynomial_stitching_points = 3
8793

8894
# Cut first and last N points
8995
self.cut_first_n_points = 1
9096
self.cut_last_n_points = 1
9197

92-
# Final Q rebin
93-
self.do_final_rebin = True
94-
self.final_rebin_step = -0.01
95-
9698
# UI elements
9799
self.normalize_x_tof = False
98100
self.x_wl_map = False
@@ -272,7 +274,7 @@ def _verify_true(parameter, default):
272274
self.use_roi_bck = _verify_true("use_roi_bck", self.use_roi_bck)
273275
self.use_tight_bck = _verify_true("use_tight_bck", self.use_tight_bck)
274276
self.bck_offset = int(settings.value("bck_offset", self.bck_offset))
275-
self.wl_bandwidth = float(settings.value("wl_bandwidth", self.wl_bandwidth))
277+
Configuration.wl_bandwidth = float(settings.value("wl_bandwidth", self.wl_bandwidth))
276278

277279
self.force_peak_roi = _verify_true("force_peak_roi", self.force_peak_roi)
278280
self.force_low_res_roi = _verify_true("force_low_res_roi", self.force_low_res_roi)
@@ -292,16 +294,16 @@ def _verify_true(parameter, default):
292294
self.cut_last_n_points = int(settings.value("cut_last_n_points", self.cut_last_n_points))
293295

294296
# Normalize to unity when stitching
295-
self.normalize_to_unity = _verify_true("normalize_to_unity", self.normalize_to_unity)
296-
self.total_reflectivity_q_cutoff = float(
297+
Configuration.normalize_to_unity = _verify_true("normalize_to_unity", self.normalize_to_unity)
298+
Configuration.total_reflectivity_q_cutoff = float(
297299
settings.value("total_reflectivity_q_cutoff", self.total_reflectivity_q_cutoff)
298300
)
299-
self.global_stitching = _verify_true("global_stitching", self.global_stitching)
300-
self.polynomial_stitching = _verify_true("polynomial_stitching", self.polynomial_stitching)
301-
self.polynomial_stitching_degree = int(
301+
Configuration.global_stitching = _verify_true("global_stitching", self.global_stitching)
302+
Configuration.polynomial_stitching = _verify_true("polynomial_stitching", self.polynomial_stitching)
303+
Configuration.polynomial_stitching_degree = int(
302304
settings.value("polynomial_stitching_degree", self.polynomial_stitching_degree)
303305
)
304-
self.polynomial_stitching_points = int(
306+
Configuration.polynomial_stitching_points = int(
305307
settings.value("polynomial_stitching_points", self.polynomial_stitching_points)
306308
)
307309

@@ -311,17 +313,17 @@ def _verify_true(parameter, default):
311313
self.log_1d = _verify_true("log_1d", self.log_1d)
312314
self.log_2d = _verify_true("log_2d", self.log_2d)
313315

314-
self.use_constant_q = _verify_true("use_constant_q", self.use_constant_q)
316+
Configuration.use_constant_q = _verify_true("use_constant_q", self.use_constant_q)
315317
self.use_dangle = _verify_true("use_dangle", self.use_dangle)
316318
self.set_direct_pixel = _verify_true("set_direct_pixel", self.set_direct_pixel)
317319
self.direct_pixel_overwrite = float(settings.value("direct_pixel_overwrite", self.direct_pixel_overwrite))
318320
self.set_direct_angle_offset = _verify_true("set_direct_angle_offset", self.set_direct_angle_offset)
319321
self.direct_angle_offset_overwrite = float(
320322
settings.value("direct_angle_offset_overwrite", self.direct_angle_offset_overwrite)
321323
)
322-
self.sample_size = float(settings.value("sample_size", self.sample_size))
323-
self.do_final_rebin = _verify_true("do_final_rebin", self.do_final_rebin)
324-
self.final_rebin_step = float(settings.value("final_rebin_step", self.final_rebin_step))
324+
Configuration.sample_size = float(settings.value("sample_size", self.sample_size))
325+
Configuration.do_final_rebin = _verify_true("do_final_rebin", self.do_final_rebin)
326+
Configuration.final_rebin_step = float(settings.value("final_rebin_step", self.final_rebin_step))
325327

326328
# Off-specular options
327329
self.off_spec_x_axis = int(settings.value("off_spec_x_axis", self.off_spec_x_axis))

reflectivity_ui/interfaces/data_handling/quicknxs_io.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ def read_reduced_file(file_path, configuration=None):
335335
conf.low_res_width = float(toks[7])
336336
conf.bck_position = float(toks[8])
337337
conf.bck_width = float(toks[9])
338-
conf.use_constant_q = toks[10].strip().lower() == "true"
338+
Configuration.use_constant_q = toks[10].strip().lower() == "true"
339339
conf.direct_pixel_overwrite = float(toks[11])
340340
if int(toks[14]) > 0 and len(direct_beam_runs) > int(toks[14]) - 1:
341341
conf.normalization = direct_beam_runs[int(toks[14]) - 1][0]

reflectivity_ui/interfaces/event_handlers/main_handler.py

+12-12
Original file line numberDiff line numberDiff line change
@@ -1203,23 +1203,23 @@ def get_configuration(self):
12031203
configuration.scaling_factor = scale
12041204
configuration.cut_first_n_points = self.ui.rangeStart.value()
12051205
configuration.cut_last_n_points = self.ui.rangeEnd.value()
1206-
configuration.normalize_to_unity = self.ui.normalize_to_unity_checkbox.isChecked()
1207-
configuration.total_reflectivity_q_cutoff = self.ui.normalization_q_cutoff_spinbox.value()
1208-
configuration.global_stitching = self.ui.global_fit_checkbox.isChecked()
1209-
configuration.polynomial_stitching = self.ui.polynomial_stitching_checkbox.isChecked()
1210-
configuration.polynomial_stitching_degree = self.ui.polynomial_stitching_degree_spinbox.value()
1211-
configuration.polynomial_stitching_points = self.ui.polynomial_stitching_points_spinbox.value()
1212-
configuration.wl_bandwidth = self.ui.bandwidth_spinbox.value()
1213-
1214-
configuration.use_constant_q = self.ui.fanReflectivity.isChecked()
1206+
Configuration.normalize_to_unity = self.ui.normalize_to_unity_checkbox.isChecked()
1207+
Configuration.total_reflectivity_q_cutoff = self.ui.normalization_q_cutoff_spinbox.value()
1208+
Configuration.global_stitching = self.ui.global_fit_checkbox.isChecked()
1209+
Configuration.polynomial_stitching = self.ui.polynomial_stitching_checkbox.isChecked()
1210+
Configuration.polynomial_stitching_degree = self.ui.polynomial_stitching_degree_spinbox.value()
1211+
Configuration.polynomial_stitching_points = self.ui.polynomial_stitching_points_spinbox.value()
1212+
Configuration.wl_bandwidth = self.ui.bandwidth_spinbox.value()
1213+
1214+
Configuration.use_constant_q = self.ui.fanReflectivity.isChecked()
12151215
configuration.use_dangle = self.ui.trustDANGLE.isChecked()
12161216
configuration.set_direct_pixel = self.ui.set_dirpix_checkbox.isChecked()
12171217
configuration.set_direct_angle_offset = self.ui.set_dangle0_checkbox.isChecked()
12181218
configuration.direct_pixel_overwrite = self.ui.directPixelOverwrite.value()
12191219
configuration.direct_angle_offset_overwrite = self.ui.dangle0Overwrite.value()
1220-
configuration.sample_size = self.ui.sample_size_spinbox.value()
1221-
configuration.do_final_rebin = self.ui.final_rebin_checkbox.isChecked()
1222-
configuration.final_rebin_step = self.ui.q_rebin_spinbox.value()
1220+
Configuration.sample_size = self.ui.sample_size_spinbox.value()
1221+
Configuration.do_final_rebin = self.ui.final_rebin_checkbox.isChecked()
1222+
Configuration.final_rebin_step = self.ui.q_rebin_spinbox.value()
12231223

12241224
# UI elements
12251225
configuration.normalize_x_tof = self.ui.normalizeXTof.isChecked()

0 commit comments

Comments
 (0)