Table of Contents
Reduce ISIS reflectometry data, including optional loading and summing/slicing of the input runs.
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. |
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. | |
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 |
NumberOfSlices | Input | number | Optional | The number of uniform-length slices to slice the input workspace into |
ThetaIn | Input | number | Optional | Angle in degrees |
ThetaLogName | Input | string | The name ThetaIn can be found in the run log as | |
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. |
NormalizeByIntegratedMonitors | Input | boolean | True | Normalize by dividing by the integrated monitors. |
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 | |
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. |
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. |
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. | |
Debug | Input | boolean | False | Whether to enable the output of extra workspaces. |
GroupTOFWorkspaces | Input | boolean | True | If true, group the input TOF workspace |
ReloadInvalidWorkspaces | Input | boolean | True | If true, reload input workspaces if they are of the incorrect type |
OutputWorkspace | Output | Workspace | The output workspace, or workspace group if sliced. | |
OutputWorkspaceBinned | Output | Workspace | The binned output workspace, or workspace group if sliced. | |
OutputWorkspaceWavelength | Output | Workspace | The output workspace in wavelength, or workspace group if sliced. |
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:
Input runs and transmission runs are loaded if required, or existing workspaces are used if they are already in the ADS. When runs are loaded, they are named based on the run number with a TOF_ or TRANS_ prefix. To determine whether workspaces are already in the ADS, workspace names are matched based on the run number with or without this prefix. Other naming formats are not considered to match.
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 runs for the first and/or second transmission workspace inputs can be summed prior to reduction.
For time slicing, the input run must be an event workspace. If the workspace for the run already exists in the ADS but is the incorrect type, or does not have monitors loaded, it will be reloaded.
Input properties for the reduction are the same as those for ReflectometryReductionOneAuto v3.
Note
To run these usage examples please first download the usage data, and add these to your path. In MantidPlot 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
Python: ReflectometryISISLoadAndProcess.py (last modified: 2019-09-13)