-
Brandon Hewer authored
Refs #20820
Brandon Hewer authoredRefs #20820
Description
Algorithm Reference Discussion
Looking at Computing guide for Small Angle Scattering Experiments by Ghosh, Egelhaaf & Rennie, we see that for scattering at larger angles the transmission should be modified due to the longer path length after the scattering event.
The longer path length after scattering will also slightly increase the probability of a second scattering event, but this is not dealt with here.
If our on-axis transmission is T_0 through a sample of thickness d, then the transmission at some other thickness x is \exp(-\mu x) where attenuation coefficient \mu = -\ln( \frac{T_0}{d}).
If a neutron scatters at angle 2\theta at distance x into the sample, its total transmission is then:
T^{''} = \exp(-\mu x) \exp( \frac{-\mu(d-x)}{\cos(2\theta)})
T^{''} should be integrated and averaged between x = 0 and x = d.
Hammouda, gives an approximate result for the integral, see page 208 of SANS toolbox:
T^{'} = \frac{T_0(T_0^A - 1)}{A \ln(T_0)}
For:
A = \frac{1}{\cos(2\theta)} - 1
For example if T_0 = 0.2 and 2\theta = 40 then T^{'} = 0.158, a shift of ~20% of the SANS curve. Note that the result is independent of sample thickness.
T_0 is a function of neutron wavelength, whilst A is a function of detector pixel location.
The output of this algorithm is:
OutputWorkspace = \frac{T^\prime}{T_0}
Error Propagation
The error propagation follows this formula:
`` ``OutputWorkspace_{error} = \frac{T_{0E} ^A - 1}{A\ln(T_0E)}
Which means, that we do not consider the error in the definition of the 2\theta (the parameter A)
Enabling Wide Angle Correction for Reduction of SANS ISIS
To enable the Wide Angle correction use the User File settings:
SAMPLE/PATH/ON
More information on: SANS_User_File_Commands#SAMPLE
SANS ISIS Reduction
The output of SANSWideAngleCorrection is used as WavePixelAdj parameter at :ref:`algm-Q1D`.
Wide Angle Correction and the SANS Reduction
The equation for the reduction is (see :ref:`algm-Q1D`)
P_I(Q) = \frac{\sum_{\{i, j, n\} \supset \{I\}} S(i,j,n)}{\sum_{\{i, j, n\} \supset \{I\}}M(n)\eta(n)T(n)\Omega_{i j}F_{i j}}
But, T(n) is not really T(n), because of the wide angles, it is now T(n,theta) or T(n,i,j).
So, we decided to have a new factor that changes this equation to:
P_I(Q) = \frac{\sum_{\{i, j, n\} \supset \{I\}} S(i,j,n)}{\sum_{\{i, j, n\} \supset \{I\}}M(n)\eta(n)T(n)\Omega_{i j}F_{i j}Corr(i,j,n)}
Where Corr (Correction factor) in this case will be:
Corr = \frac{T_0^A - 1}{A \ln(T_0)}
Which is the OutputWorkspace of SANSWideAngleCorrection.
This parameter enters inside :ref:`algm-Q1D` as WavePixelAdj. But, this is all done for you inside the Reduction Script.
Comparison with Wide Angle Correction at SNS
The transmission correction applied at SNS is described here, and it is applied through the :ref:`algm-ApplyTransmissionCorrection` algorithm. The correction applied there is an approximation for the same equations described here. The picture above compare their results

Note a difference among them is when they are applied. At SNS, the correction is applied before averaging the counters per bin inside :ref:`algm-Q1D` algorithm, while at ISIS, it is used after, inside the :ref:`algm-Q1D` algorithm, for the division of the counters per bin normalized by the transmission counters.
References
Annie Brulet et al. - Improvement of data treatment in small-angle neutron scattering - J. Appl. Cryst. (2007). 40
Ghosh, Egelhaaf & Rennie - Computing guide for Small Angle Scattering Experiments
Usage
Example - Correcting Some Dummy Data
Output: