[8ae8532] | 1 | .. currentmodule:: sasmodels |
---|
| 2 | .. Wim Bouwman, DUT, written at codecamp-V, Oct2016 |
---|
| 3 | |
---|
| 4 | .. _SESANS: |
---|
| 5 | |
---|
| 6 | SANS to SESANS conversion |
---|
| 7 | ========================= |
---|
| 8 | |
---|
| 9 | The conversion from SANS into SESANS in absolute units is a simple Hankel |
---|
| 10 | transformation when all the small-angle scattered neutrons are detected. |
---|
| 11 | First we calculate the Hankel transform including the absolute intensities by |
---|
| 12 | |
---|
| 13 | .. math:: G(\delta) = 2 \pi \int_0^{\infty} J_0(Q \delta) \frac{d \Sigma}{d \Omega} (Q) Q dQ \!, |
---|
| 14 | |
---|
| 15 | in which :math:`J_0` is the zeroth order Bessel function, :math:`\delta` |
---|
| 16 | the spin-echo length, :math:`Q` the wave vector transfer and :math:`\frac{d \Sigma}{d \Omega} (Q)` |
---|
[f0fc507] | 17 | the scattering cross section in absolute units. |
---|
| 18 | |
---|
| 19 | Out of necessity, a 1-dimensional numerical integral approximates the exact Hankel transform. |
---|
| 20 | The upper bound of the numerical integral is :math:`Q_{max}`, which is calculated from the wavelength and the instrument's maximum acceptance angle, both of which are included in the file. |
---|
| 21 | While the true Hankel transform has a lower bound of zero, most scattering models are undefined at :math: `Q=0`, so the integral requires an effective lower bound. |
---|
| 22 | The lower bound of the integral is :math:`Q_{min} = 0.1 \times 2 \pi / R_{max}`, in which :math:`R_{max}` is the maximum length scale probed by the instrument multiplied by the number of data points. |
---|
| 23 | This lower bound is the minimum expected Q value for the given length scale multiplied by a constant. |
---|
| 24 | The constant, 0.1, was chosen empirically by integrating multiple curves and finding where the value at which the integral was stable. |
---|
| 25 | A constant value of 0.3 gave numerical stability to the integral, so a factor of three safety margin was included to give the final value of 0.1. |
---|
| 26 | |
---|
| 27 | |
---|
| 28 | From the equation above we can calculate the polarisation that we measure in a SESANS experiment: |
---|
[8ae8532] | 29 | |
---|
| 30 | .. math:: P(\delta) = e^{t \left( \frac{ \lambda}{2 \pi} \right)^2 \left(G(\delta) - G(0) \right)} \!, |
---|
| 31 | |
---|
[f0fc507] | 32 | in which :math:`t` is the thickness of the sample and :math:`\lambda` is the wavelength of the neutrons. |
---|
[e46dde6] | 33 | |
---|
| 34 | Log Spaced SESANS |
---|
| 35 | ----------------- |
---|
| 36 | |
---|
| 37 | For computational efficiency, the integral in the Hankel transform is |
---|
| 38 | converted into a Reimann sum |
---|
| 39 | |
---|
| 40 | |
---|
| 41 | .. math:: G(\delta) \approx |
---|
| 42 | 2 \pi |
---|
| 43 | \sum_{Q=q_{min}}^{q_{max}} J_0(Q \delta) |
---|
| 44 | \frac{d \Sigma}{d \Omega} (Q) |
---|
| 45 | Q \Delta Q \! |
---|
| 46 | |
---|
| 47 | However, this model approximates more than is strictly necessary. |
---|
| 48 | Specifically, it is approximating the entire integral, when it is only |
---|
| 49 | the scattering function that cannot be handled analytically. A better |
---|
| 50 | approximation might be |
---|
| 51 | |
---|
| 52 | .. math:: G(\delta) \approx |
---|
| 53 | \sum_{n=0} 2 \pi \frac{d \Sigma}{d \Omega} (q_n) |
---|
| 54 | \int_{q_n}^{q_{n+1}} J_0(Q \delta) Q dQ |
---|
| 55 | = |
---|
| 56 | \sum_{n=0} \frac{2 \pi}{\delta} \frac{d \Sigma}{d \Omega} (q_n) |
---|
| 57 | (q_{n+1}J_1(q_{n+1} \delta) - q_{n}J_1(q_{n} \delta))\!, |
---|
| 58 | |
---|
| 59 | Assume that vectors :math:`q_n` and :math:`I_n` represent the q points |
---|
| 60 | and corresponding intensity data, respectively. Further assume that |
---|
| 61 | :math:`\delta_m` and :math:`G_m` are the spin echo lengths and |
---|
| 62 | corresponding Hankel transform value. |
---|
| 63 | |
---|
| 64 | .. math:: G_m = H_{nm} I_n |
---|
| 65 | |
---|
| 66 | where |
---|
| 67 | |
---|
| 68 | .. math:: H_{nm} = \frac{2 \pi}{\delta_m} |
---|
| 69 | (q_{n+1} J_1(q_{n+1} \delta_m) - q_n J_1(q_n \delta_m)) |
---|