\(\renewcommand\AA{\unicode{x212B}}\)

ReflectometryISISLoadAndProcess v1

../_images/ReflectometryISISLoadAndProcess-v1_dlg.png

ReflectometryISISLoadAndProcess dialog.

Summary

Reduce ISIS reflectometry data, including optional loading and summing/slicing of the input runs.

Properties

Name Direction Type Default Description
InputRunList Input str list Mandatory A list of run numbers or workspace names for the input runs. Multiple runs will be summed before reduction.
ThetaIn Input number Optional Angle in degrees
ThetaLogName Input string   The name ThetaIn can be found in the run log as
ReloadInvalidWorkspaces Input boolean True If true, reload input workspaces if they are of the incorrect type
GroupTOFWorkspaces Input boolean True If true, group the TOF workspaces
SliceWorkspace Input boolean False If true, slice the input workspace
TimeInterval Input dbl list   Array for lengths of time intervals for splitters. If the array is empty, then there will be one splitter created from StartTime and StopTime. If the array has one value, then all splitters will have same time intervals. If the size of the array is larger than one, then the splitters can have various time interval values.
LogName Input string   Name of the sample log to use to filter. For example, the pulse charge is recorded in ‘ProtonCharge’.
LogValueInterval Input number Optional Delta of log value to be sliced into from min log value and max log value. If not given, then only value
UseNewFilterAlgorithm Input boolean True If true, use the new FilterEvents algorithm instead of FilterByTime.
NumberOfSlices Input number Optional The number of uniform-length slices to slice the input workspace into
SummationType Input string SumInLambda The type of summation to perform. Allowed values: [‘SumInLambda’, ‘SumInQ’]
ReductionType Input string Normal The type of reduction to perform when summing in Q. Allowed values: [‘Normal’, ‘DivergentBeam’, ‘NonFlatSample’]
IncludePartialBins Input boolean False If true then partial bins at the beginning and end of the output range are included
AnalysisMode Input string PointDetectorAnalysis Analysis mode. This property is only used when ProcessingInstructions is not set. Allowed values: [‘PointDetectorAnalysis’, ‘MultiDetectorAnalysis’]
ProcessingInstructions Input string   Grouping pattern of spectrum numbers to yield only the detectors of interest. See GroupDetectors for syntax.
CorrectDetectors Input boolean True Moves detectors to twoTheta if ThetaIn or ThetaLogName is given
DetectorCorrectionType Input string VerticalShift When correcting detector positions, this determines whether detectorsshould be shifted vertically or rotated around the sample position. Allowed values: [‘RotateAroundSample’, ‘VerticalShift’]
WavelengthMin Input number Optional Wavelength Min in angstroms
WavelengthMax Input number Optional Wavelength Max in angstroms
I0MonitorIndex Input number Optional I0 monitor workspace index
MonitorBackgroundWavelengthMin Input number Optional Wavelength minimum for monitor background subtraction in angstroms.
MonitorBackgroundWavelengthMax Input number Optional Wavelength maximum for monitor background subtraction in angstroms.
MonitorIntegrationWavelengthMin Input number Optional Wavelength minimum for integration in angstroms.
MonitorIntegrationWavelengthMax Input number Optional Wavelength maximum for integration in angstroms.
SubtractBackground Input boolean False If true then perform background subtraction
BackgroundProcessingInstructions Input string   These processing instructions will be passed to the background subtraction algorithm
BackgroundCalculationMethod Input string PerDetectorAverage The type of background reduction to perform. Allowed values: [‘PerDetectorAverage’, ‘Polynomial’, ‘AveragePixelFit’]
DegreeOfPolynomial Input number 0 Degree of the fitted polynomial.
CostFunction Input string Least squares The cost function to be passed to the Fit algorithm. Allowed values: [‘Least squares’, ‘Unweighted least squares’]
NormalizeByIntegratedMonitors Input boolean True Normalize by dividing by the integrated monitors.
PolarizationAnalysis Input boolean False Apply polarization corrections
FloodCorrection Input string Workspace The way to apply flood correction: Workspace - use FloodWorkspace property to get the flood workspace, ParameterFile - use parameters in the parameter file to construct and apply flood correction workspace. Allowed values: [‘Workspace’, ‘ParameterFile’]
FloodWorkspace Input MatrixWorkspace   A flood workspace to apply; if empty and FloodCorrection is ‘Workspace’ then no correction is applied.
CorrectionAlgorithm Input string AutoDetect The type of correction to perform. Allowed values: [‘None’, ‘AutoDetect’, ‘PolynomialCorrection’, ‘ExponentialCorrection’]
Polynomial Input dbl list   Coefficients to be passed to the PolynomialCorrection algorithm.
C0 Input number 0 C0 value to be passed to the ExponentialCorrection algorithm.
C1 Input number 0 C1 value to be passed to the ExponentialCorrection algorithm.
FirstTransmissionRunList Input str list   A list of run numbers or workspace names for the first transmission run. Multiple runs will be summed before reduction.
SecondTransmissionRunList Input str list   A list of run numbers or workspace names for the second transmission run. Multiple runs will be summed before reduction.
Params Input dbl list   A comma separated list of first bin boundary, width, last bin boundary. These parameters are used for stitching together transmission runs. Values are in wavelength (angstroms). This input is only needed if a SecondTransmission run is provided.
StartOverlap Input number Optional Start wavelength for stitching transmission runs together. Only used if a second transmission run is provided.
EndOverlap Input number Optional End wavelength (angstroms) for stitching transmission runs together. Only used if a second transmission run is provided.
ScaleRHSWorkspace Input boolean True Scale the right-hand-side or left-hand-side workspace. Only used if a second transmission run is provided.
TransmissionProcessingInstructions Input string   These processing instructions will be passed to the transmission workspace algorithm
Debug Input boolean False Whether to enable the output of extra workspaces.
MomentumTransferMin Input number Optional Minimum Q value in IvsQ Workspace. Used for Rebinning the IvsQ Workspace
MomentumTransferStep Input number Optional Resolution value in IvsQ Workspace. Used for Rebinning the IvsQ Workspace. This value will be made minus to apply logarithmic rebinning. If you wish to have linear bin-widths then please provide a negative value.
MomentumTransferMax Input number Optional Maximum Q value in IvsQ Workspace. Used for Rebinning the IvsQ Workspace
ScaleFactor Input number Optional Factor you wish to scale Q workspace by.
OutputWorkspaceBinned Output MatrixWorkspace   Output workspace in Q (rebinned workspace)
OutputWorkspace Output MatrixWorkspace   Output workspace in Q (native binning)
OutputWorkspaceWavelength Output MatrixWorkspace   Output workspace in wavelength
OutputWorkspaceTransmission Output MatrixWorkspace   Output transmissison workspace in wavelength
OutputWorkspaceFirstTransmission Output MatrixWorkspace   First transmissison workspace in wavelength
OutputWorkspaceSecondTransmission Output MatrixWorkspace   Second transmissison workspace in wavelength

ReflectometryISISLoadAndProcess

This algorithm performs full preparation and processing for a single run or combined set of runs in an ISIS reflectometry reduction. Note that a set of runs here is a set that will be combined prior to reduction (it does not deal with a group of runs that will be post-processed after reduction). This algorithm is primarily aimed at reducing a single row in the table on the ISIS Reflectometry interface.

The steps this algorithm performs are:

  • Ensure workspaces are loaded and are of the correct type.
  • Sum multiple input runs into a single workspace, if there is more than one.
  • Sum multiple transmission runs into a single workspace, if there is more than one.
  • Perform background subtraction, if requested.
  • Perform time-slicing of the input run, if requested.
  • Perform the reduction.
  • Clean up the TOF workspaces into a group.

Input runs and transmission runs are loaded if required, or existing workspaces are used if they are already loaded. When runs are loaded, they are named based on the run number with a TOF_ or TRANS_ prefix. To determine whether workspaces are already loaded, workspace names are matched based on the run number with or without this prefix. Other naming formats are not considered to match.

If time slicing is enabled, the input run must be an event workspace and have monitors loaded; otherwise, it must be a histogram workspace. If the workspace already exists but is the incorrect type or is missing monitors, it will be reloaded.

Input runs can be combined before reduction by supplying a comma-separated list of run numbers. They will be summed using the Plus v1 algorithm. Similarly, multiple input workspaces for the first and/or second transmission inputs can be summed prior to reduction.

If SubtractBackground is true, then background subtraction will be performed using the ReflectometryBackgroundSubtraction v1 algorithm. There are various options for specifying how the subtraction should be done.

If SliceWorkspace is true, the time slicing will be performed using the ReflectometrySliceEventWorkspace v1 algorithm. Various options are available for specifying the filter to use and slicing can be done by time or by log value.

The reduction is performed using ReflectometryReductionOneAuto v3.

Finally, the TOF workspaces are cleaned up by grouping them into a workspace group named TOF. If a group by this name already exists then they will be added to that group.

Usage

Note

To run these usage examples please first download the usage data, and add these to your path. In Mantid this is done using Manage User Directories.

Example: Run reduction on a single run

ReflectometryISISLoadAndProcess(InputRunList='INTER13460')
names = mtd.getObjectNames()
names.sort()
print('Workspaces in the ADS after reduction: {}'.format(names))

Output:

Workspaces in the ADS after reduction: ['IvsQ_13460', 'IvsQ_binned_13460', 'TOF', 'TOF_13460']

Example: Sum multiple input runs

ReflectometryISISLoadAndProcess(InputRunList='INTER13460, INTER13462')
names = mtd.getObjectNames()
names.sort()
print('Workspaces in the ADS after reduction: {}'.format(names))

Output:

Workspaces in the ADS after reduction: ['IvsQ_13460+13462', 'IvsQ_binned_13460+13462', 'TOF', 'TOF_13460', 'TOF_13460+13462', 'TOF_13462']

Example: Sum multiple transmission runs into a single input

ReflectometryISISLoadAndProcess(InputRunList='INTER13460',FirstTransmissionRunList='INTER13463,INTER13464')
names = mtd.getObjectNames()
names.sort()
print('Workspaces in the ADS after reduction: {}'.format(names))

Output:

Workspaces in the ADS after reduction: ['IvsQ_13460', 'IvsQ_binned_13460', 'TOF', 'TOF_13460', 'TRANS_13463', 'TRANS_13463+13464', 'TRANS_13464', 'TRANS_LAM_13463+13464']

Example: Two separate transmission run inputs

ReflectometryISISLoadAndProcess(InputRunList='INTER13460',FirstTransmissionRunList='INTER13463',
                                SecondTransmissionRunList='INTER13464')
names = mtd.getObjectNames()
names.sort()
print('Workspaces in the ADS after reduction: {}'.format(names))

Output:

Workspaces in the ADS after reduction: ['IvsQ_13460', 'IvsQ_binned_13460', 'TOF', 'TOF_13460', 'TRANS_13463', 'TRANS_13464', 'TRANS_LAM_13463_13464']

Example: Slice input run

ReflectometryISISLoadAndProcess(InputRunList='INTER38415', SliceWorkspace=True, TimeInterval=210)
names = mtd.getObjectNames()
names.sort()
print('Workspaces in the ADS after reduction: {}'.format(names))

Output:

Workspaces in the ADS after reduction: ['IvsLam_38415', 'IvsLam_38415_sliced_0_210', 'IvsLam_38415_sliced_210_420', 'IvsLam_38415_sliced_420_610', 'IvsQ_38415', 'IvsQ_38415_sliced_0_210', 'IvsQ_38415_sliced_210_420', 'IvsQ_38415_sliced_420_610', 'IvsQ_binned_38415', 'IvsQ_binned_38415_sliced_0_210', 'IvsQ_binned_38415_sliced_210_420', 'IvsQ_binned_38415_sliced_420_610', 'TOF', 'TOF_38415', 'TOF_38415_monitors', 'TOF_38415_sliced', 'TOF_38415_sliced_0_210', 'TOF_38415_sliced_210_420', 'TOF_38415_sliced_420_610']

See also

Algorithm ReflectometrySliceEventWorkspace v1, ReflectometryReductionOneAuto v3 and the ISIS Reflectometry interface.

Categories: AlgorithmIndex | ISIS\Reflectometry | Workflow\Reflectometry

Source

Python: ReflectometryISISLoadAndProcess.py (last modified: 2020-03-27)