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

DgsReduction v1

Summary

Top-level workflow algorithm for DGS reduction.

Properties

Name

Direction

Type

Default

Description

SampleInputFile

Input

string

File containing the sample data to reduce. Allowed extensions: [‘_event.nxs’]

SampleInputWorkspace

Input

MatrixWorkspace

Workspace to be reduced

SampleInputMonitorWorkspace

Input

MatrixWorkspace

A monitor workspace associated with the input sample workspace.

DetCalFilename

Input

string

A detector calibration file.

RelocateDetectors

Input

boolean

False

Move detectors to position specified in cal file.

IncidentEnergyGuess

Input

number

Optional

Set the value of the incident energy guess in meV.

UseIncidentEnergyGuess

Input

boolean

False

Use the incident energy guess as the actual value (will not be calculated).

TimeZeroGuess

Input

number

Optional

Set the value of time zero offset in microseconds.

Monitor1SpecId

Input

number

Optional

Spectrum No for the first monitor to use in Ei calculation.

Monitor2SpecId

Input

number

Optional

Spectrum No for the second monitor to use in Ei calculation.

EnergyTransferRange

Input

dbl list

A comma separated list of first bin boundary, width, last bin boundary. Negative width value indicates logarithmic binning.

SofPhiEIsDistribution

Input

boolean

True

The final S(Phi, E) data is made to be a distribution.

HardMaskFile

Input

string

A file or workspace containing a hard mask. Allowed extensions: [‘.xml’]

GroupingFile

Input

string

A file containing grouping (mapping) information. Allowed extensions: [‘.xml’]

ShowIntermediateWorkspaces

Input

boolean

False

Flag to show the intermediate workspaces (diagnostic mask, integrated detector vanadium, integrated absolute units) from the reduction.

IncidentBeamNormalisation

Input

string

None

Options for incident beam normalisation on data. Allowed values: [‘None’, ‘ByCurrent’, ‘ToMonitor’]

MonitorIntRangeLow

Input

number

Optional

Set the lower bound for monitor integration.

MonitorIntRangeHigh

Input

number

Optional

Set the upper bound for monitor integration.

TimeIndepBackgroundSub

Input

boolean

False

If true, time-independent background will be calculated and removed.

TibTofRangeStart

Input

number

Optional

Set the lower TOF bound for time-independent background subtraction.

TibTofRangeEnd

Input

number

Optional

Set the upper TOF bound for time-independent background subtraction.

CorrectKiKf

Input

boolean

True

Apply the ki/kf correction.

DetectorVanadiumInputFile

Input

string

File containing the sample detector vanadium data to reduce. Allowed extensions: [‘_event.nxs’]

DetectorVanadiumInputWorkspace

Input

MatrixWorkspace

Sample detector vanadium workspace to be reduced

DetectorVanadiumInputMonitorWorkspace

Input

MatrixWorkspace

A monitor workspace associated with the input sample detector vanadium workspace.

SaveProcessedDetVan

Input

boolean

False

Save the processed detector vanadium workspace

SaveProcDetVanFilename

Input

string

Provide a filename for saving the processed detector vanadium. Allowed extensions: [‘.nxs’]

UseProcessedDetVan

Input

boolean

False

If true, treat the detector vanadium as processed. This includes not running diagnostics on the processed data.

UseBoundsForDetVan

Input

boolean

False

If true, integrate the detector vanadium over a given range.

DetVanIntRangeLow

Input

number

Optional

Set the lower bound for integrating the detector vanadium.

DetVanIntRangeHigh

Input

number

Optional

Set the upper bound for integrating the detector vanadium.

DetVanIntRangeUnits

Input

string

Energy

Options for the units on the detector vanadium integration. Allowed values: [‘Energy’, ‘Wavelength’, ‘TOF’]

HighCounts

Input

number

Optional

Mask detectors above this threshold.

LowCounts

Input

number

Optional

Mask detectors below this threshold.

LowOutlier

Input

number

Optional

Lower bound defining outliers as fraction of median value

HighOutlier

Input

number

Optional

Upper bound defining outliers as fraction of median value

MedianTestHigh

Input

number

Optional

Mask detectors above this threshold.

MedianTestLow

Input

number

Optional

Mask detectors below this threshold.

MedianTestLevelsUp

Input

number

0

Mask detectors below this threshold.

MedianTestCorrectForSolidAngle

Input

boolean

False

Flag to correct for solid angle efficiency.

ErrorBarCriterion

Input

number

Optional

Some selection criteria for the detector tests.

DetectorVanadium2InputFile

Input

string

File containing detector vanadium data to compare against. Allowed extensions: [‘_event.nxs’]

DetectorVanadium2InputWorkspace

Input

MatrixWorkspace

Detector vanadium workspace to compare against

DetectorVanadium2InputMonitorWorkspace

Input

MatrixWorkspace

A monitor workspace associated with the input comparison detector vanadium workspace.

DetVanRatioVariation

Input

number

Optional

Mask detectors if the time variation is above this threshold.

BackgroundCheck

Input

boolean

False

If true, run a background check on detector vanadium.

SamBkgMedianTestHigh

Input

number

Optional

Mask detectors above this threshold.

SamBkgMedianTestLow

Input

number

Optional

Mask detectors below this threshold.

SamBkgErrorBarCriterion

Input

number

Optional

Some selection criteria for the detector tests.

BackgroundTofStart

Input

number

Optional

Start TOF for the background check.

BackgroundTofEnd

Input

number

Optional

End TOF for the background check.

RejectZeroBackground

Input

boolean

False

If true, check the background region for anomolies.

PsdBleed

Input

boolean

False

If true, perform a PSD bleed test.

MaxFramerate

Input

number

Optional

The maximum framerate to check.

IgnoredPixels

Input

number

Optional

A list of pixels to ignore in the calculations.

DoAbsoluteUnits

Input

boolean

False

If true, perform an absolute units normalisation.

AbsUnitsSampleInputFile

Input

string

The sample (vanadium) file used in the absolute units normalisation.

AbsUnitsSampleInputWorkspace

Input

MatrixWorkspace

The sample (vanadium) workspace for absolute units normalisation.

AbsUnitsSampleInputMonitorWorkspace

Input

MatrixWorkspace

A monitor workspace associated with the input absolute units sample workspace.

AbsUnitsGroupingFile

Input

string

Grouping file for absolute units normalisation.

AbsUnitsDetectorVanadiumInputFile

Input

string

The detector vanadium file used in the absolute units normalisation.

AbsUnitsDetectorVanadiumInputWorkspace

Input

MatrixWorkspace

The detector vanadium workspace for absolute units normalisation.

AbsUnitsDetectorVanadiumInputMonitorWorkspace

Input

MatrixWorkspace

A monitor workspace associated with the input absolute units sample detector vanadium workspace.

AbsUnitsIncidentEnergy

Input

number

Optional

The incident energy for the vanadium sample.

AbsUnitsMinimumEnergy

Input

number

Optional

The minimum energy for the integration range.

AbsUnitsMaximumEnergy

Input

number

Optional

The maximum energy for the integration range.

VanadiumMass

Input

number

Optional

The mass of vanadium.

SampleMass

Input

number

1

The mass of sample.

SampleRmm

Input

number

1

The rmm of sample.

AbsUnitsLowOutlier

Input

number

Optional

Lower bound defining outliers as fraction of median value

AbsUnitsHighOutlier

Input

number

Optional

Upper bound defining outliers as fraction of median value

AbsUnitsMedianTestHigh

Input

number

Optional

Mask detectors above this threshold.

AbsUnitsMedianTestLow

Input

number

Optional

Mask detectors below this threshold.

AbsUnitsErrorBarCriterion

Input

number

Optional

Some selection criteria for the detector tests.

DoPowderDataConversion

Input

boolean

False

Flag to switch on converting DeltaE to SQW.

PowderMomTransferRange

Input

dbl list

A comma separated list of first bin boundary, width, last bin boundary. Negative width value indicates logarithmic binning.

SavePowderNexusFile

Input

boolean

True

Flag to use to save a processed NeXus file for powder data.

SavePowderNexusFilename

Input

string

Provide a filename for saving the processed powder data. Allowed extensions: [‘.nxs’]

OutputWorkspace

Output

MatrixWorkspace

Mandatory

Provide a name for the output workspace.

ReductionProperties

Output

string

Description

This is the top-level workflow algorithm for direct geometry spectrometer data reduction. This algorithm is responsible for gathering the necessary parameters and generating calls to other workflow or standard algorithms.

Workflow

Parameters for the child algorithms are not shown due to the sheer number. They will be detailed in the child algorithm diagrams. Items in parallelograms are output workspaces from their respective algorithms. Not all output workspaces are subsequently used by other algorithms.

../_images/DgsReduction-v1_wkflw.svg

Usage

Example - Simplest SNS Script

config['default.facility'] = "SNS"
# SNS reduction does not require IncidentEnergyGuess since the NeXus
# files contain an EnergyRequest log.
ws = DgsReduction(SampleInputFile="CNCS_7860_event.nxs")
# More than one output from DgsReduction
# (E vs Phi Workspace, Name of Property Manager)
w = ws[0]
# Check the conversion
xaxis = w.getAxis(0).getUnit()
print("X axis = {} / {}".format(xaxis.caption(), xaxis.symbol()))
print("Energy mode = {}".format(w.getEMode()))
print("Workspace type = {}".format(w.id()))

Output:

X axis = Energy transfer / meV
Energy mode = Direct
Workspace type = Workspace2D

Example - Simplest ISIS Script

config['default.facility'] = "ISIS"
# ISIS reduction required IncidentEnergyGuess since RAW files don't
# have a corresponding log.
ws = DgsReduction(SampleInputFile="MAR11001.raw",
                  IncidentEnergyGuess=12)
# More than one output from DgsRedution
# (E vs Phi Workspace, Name of Property Manager)
w = ws[0]
# Check the conversion
xaxis = w.getAxis(0).getUnit()
print("X axis = {} / {}".format(xaxis.caption(), xaxis.symbol()))
print("Energy mode = {}".format(w.getEMode()))
print("Workspace type = {}".format(w.id()))

Output:

X axis = Energy transfer / meV
Energy mode = Direct
Workspace type = Workspace2D

Example - Get as Eventworkspace for SNS

The following shows that event data can be the result of the redcuction instead of histogram data.

config['default.facility'] = "SNS"
ws = DgsReduction(SampleInputFile="CNCS_7860_event.nxs",
                  IncidentBeamNormalisation="ByCurrent",
                  SofPhiEIsDistribution=False)
w = ws[0]
print("Workspace type = {}".format(w.id()))
print("Number of events = {}".format(w.getNumberEvents()))

Output:

Workspace type = EventWorkspace
Number of events = 78037

Example - Correct Data Before Reduction for SNS

The following is a contrived example to show that the data can be loaded and corrected and/or filtered before passing it to the algorithm. The key here is that the *InputWorkspace properties must be used. It also shows a couple of more properties being used.

config['default.facility'] = "SNS"
ws = Load("CNCS_7860_event.nxs", LoadMonitors=True)
monitor = ws[1]
valC3 = ws[0].getRun()['Phase3'].getStatistics().median
ws = FilterByLogValue(ws[0], LogName="Phase3", MinimumValue=valC3-0.3,
                      MaximumValue=valC3+0.3)
# Although CNCS doesn't use its monitors, this is how instruments that do need
# to call the algorithm.
ws = DgsReduction(SampleInputWorkspace=ws, SampleInputMonitorWorkspace=monitor,
                  IncidentBeamNormalisation="ByCurrent", SofPhiEIsDistribution=False)
w = ws[0]
print("Workspace type = {}".format(w.id()))
print("Number of events = {}".format(w.getNumberEvents()))

Output:

Workspace type = EventWorkspace
Number of events = 2178

Categories: AlgorithmIndex | Workflow\Inelastic

Source

C++ header: DgsReduction.h

C++ source: DgsReduction.cpp