Core: add free-form resolution for reflectometry
|Status:||Backlog||Start date:||21 Nov 2019|
Good first issue.
Currently BA features only predefined resolution functions (though one can set different standard deviations for each point on x-axis) in reflectivity simulations.
It is useful to let the user define a free-form distribution as a piecewise-linear function.
From the interface viewpoint, it can look like defining a free-form distribution
distr = ba.RangedDistributionFreeForm(n_points, n_sig)
exactly like already existing ones, and then setting it together with probability values to a scan
scan.setAbsoluteQResolution(distr, q_val, q_prob)
Here q_val is a n-by-m matrix, with m being the number of on-axis points, n - the number of points in piecewise-linear distribution for each on-axis point.
q_prob is a corresponding n-by-m matrix with probability values.
In case of angle-based reflectivity, the scan should feature two independent free-form distributions - for wavelength and angle.