-
Notifications
You must be signed in to change notification settings - Fork 3
Description
Executive summary
Implement Q SANS resolution as a per q function and store it to NXCanSAS format
Context and background knowledge
In time-of-flight SANS the resolution curves from all the wavelengths contributing to a particular Q value are averaged together, weighted by the number of neutrons detected at each wavelength. Since the resolution width is inversely proportional to wavelength this often gives a curve that is noticeably sharper in the peak and broader in the tails than a simple Gaussian.
Therefore, we need a q resolution description beyond a single value
Inputs
We need individual terms contributing to https://docs.mantidproject.org/nightly/algorithms/TOFSANSResolutionByPixel-v1
Methodology
The SANS resolution using Mildener-Carpenter approximation is defined as
where L1 and L2 are the collimation length and sample-to-detector distance respectively and
and the overall effective standard deviation in wavelength is defined as:
$\delta {moderator} $ is moderator time spread (microseconds) as a function of wavelength (Angstroms). At ISIS it is measured at LET (and probably on others instruments too). It is however not entirerly clear how this will be done at ESS
but it should be assumed that this function will be supplied in metadata.
The resolution equation above is an approximation assuming that each of the terms is approximated by Gaussian distribution. This approach however can be extended by defining the Q resolution as a convolution of resolution kernels (schematically):
The convolution of kernels can be then performed using e.g. np.convolve as demonstrated in the attached notebook.
The wavelength independent terms won't change for given Q and can be calculated in advance and cached as a function, however for a wavelength-dependent term the range of wavelength contribution to a given q should be taken into account and convolution of multiple wavelength resolution should be computed.
Outputs
Save to NXCanSAS format. Placeholder /entry/data/q/resolutions and /entry/data/q/resolutions_descriptions
Which interfaces are required?
Python module / function
Test cases
At minimum, generated resolution function FWHM should be compared with dQ value from Milldener-Carpenter equation
Comments
No response
Metadata
Metadata
Assignees
Labels
Type
Projects
Status