Newer
Older
.. algorithm::
.. summary::
.. alias::
.. properties::
Description
-----------
This algorithm performs binning of the given workspace in :math:`(d, d_{\perp})` space, where :math:`d` is the d-Spacing and
.. math::
:label:
d_{\perp} = \sqrt{\lambda^2 - 2\log\cos\theta}
The result is that a Matrix workspace is created. If :math:`\theta=0` or :math:`\cos\theta\le 0`, the algorithm will terminate with an
error message, since no reasonable :math:`d` or :math:`d_{\perp}` value can be calculated. In this case it is recommended to check
whether detector positions are correct and to mask the problem detectors.
.. warning::
The information about correspondence of spectra to detectors is lost in the produced **OutputWorkspace**.
Applying any algorithms like :ref:`algm-ConvertUnits`, which require information about :math:`2\theta`,
to this workspace may lead to incorrect results.
Restrictions on the input workspace
###################################
- X-axis must have the wavelength units.
- Only Histograms can be handled.
- Only :ref:`EventWorkspaces <EventWorkspace>` are suported for the moment.
- The input workspace must have an instrument set.
- The input workspace must have a Spectrum axis as a Y-axis.
Binning parameters
------------------
Either *dSpaceBinning* and *dPerpendicularBinning* or *BinEdgesFile* must be specified, but not both. *dSpaceBinning* contains binning parameters
in d-Spacing. *dPerpendicularBinning* contains binning parameters in d-SpacingPerpendicular. Binning parameters should be set the same way as
for :ref:`algm-Rebin` algorithm.
In the case if non-equidistant binning is required, bin edges can be specified in the *BinEdgesFile*.
BinEdgesFile
############
*BinEdgesFile* is an ascii-file, where the bin edges are specified in a following format.
The first 2 lines contain header:
#dp_min #dp_max
#d_bins
Then follows the line dp = :math:`d_{\perp\,n}` :math:`d_{\perp\,n+1}` where the bin edges for the *n*-th bin are specified,
starting from the lowest values. In the next line bin edges for d-Spacing are listed as :math:`d_0, d_1, \dots, d_m`. Then this
can be repeated as many times as necessary. For example:
::
#dp_min #dp_max
#d_bins
dp = 3.0 4.0
1.0 3.0 6.0
dp = 4.0 4.5
2.0 4.0 5.15 6.0
In this example the following bin edges are specified for the :math:`d_{\perp}`-axis: 3.0, 4.0, 4.5. The *d*-axis for the first spectrum
(:math:`d_{\perp}` from 3.0 to 4.0) will contain the bin edges 1.0, 3.0, 6.0 and for the second spectrum (:math:`d_{\perp}` from 4.0 to 4.5)
the bin edges 2.0, 4.0, 5.15, 6.0.
Usage
-----
**Example - Bin2DPowderDiffraction**
.. testcode:: Bin2DPowderDiffractionExample
# Create an input workspace
wsIn = CreateSampleWorkspace(WorkspaceType="Event", Function="Powder Diffraction",
NumBanks=1, XUnit="Wavelength", NumEvents=10,
XMin=1.0, XMax=6.0, BinWidth=1.0)
# Move detector to get reasonable 2theta
MoveInstrumentComponent(wsIn, 'bank1', X=1,Y=0,Z=1, RelativePosition=False)
# Do binning
wsOut = Bin2DPowderDiffraction(wsIn, dSpaceBinning="2,2,6", dPerpendicularBinning="1,2,5", NormalizeByBinArea=False)
# Do binning and normalize the result by bin area
wsOutNorm = Bin2DPowderDiffraction(wsIn, dSpaceBinning="2,2,6", dPerpendicularBinning="1,2,5", NormalizeByBinArea=True)
# Print the result
print "Y values without normalization:"
print wsOut.extractY()
print "Y values with normalization by bin area:"
print wsOutNorm.extractY()
Output:
.. testoutput:: Bin2DPowderDiffractionExample
Y values without normalization:
[[ 278. 0.]
[ 14. 145.]]
Y values with normalization by bin area:
[[ 69.5 0. ]
[ 3.5 36.25]]
References
----------
More details on the multidimensional TOF powder diffraction data reduction can be found in the following papers.
#. P. Jacobs, A. Houben, W. Schweika, A. L. Tchougréeff and R. Dronskowski, *A Rietveld refinement method
for angular- and wavelength-dispersive neutron time-of-flight powder diffraction data*, J. Appl. Cryst. (2015) 48, 1627-1636
`doi: 10.1107/S1600576715016520 <https://doi.org/10.1107/S1600576715016520>`_
#. P. Jacobs, A. Houben, W. Schweika, A. L. Tchougréeff and R. Dronskowski, *Instrumental resolution as a function
of scattering angle and wavelength as exemplified for the POWGEN instrument*, J. Appl. Cryst. (2017) 50, 866-875.
`doi: 10.1107/S1600576717005398 <https://doi.org/10.1107/S1600576717005398>`_