\(\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 |
Workspace to be reduced |
||
SampleInputMonitorWorkspace |
Input |
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 |
Sample detector vanadium workspace to be reduced |
||
DetectorVanadiumInputMonitorWorkspace |
Input |
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 |
Detector vanadium workspace to compare against |
||
DetectorVanadium2InputMonitorWorkspace |
Input |
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 |
The sample (vanadium) workspace for absolute units normalisation. |
||
AbsUnitsSampleInputMonitorWorkspace |
Input |
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 |
The detector vanadium workspace for absolute units normalisation. |
||
AbsUnitsDetectorVanadiumInputMonitorWorkspace |
Input |
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 |
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.
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