\(\renewcommand\AA{\unicode{x212B}}\)
CreatePSDBleedMask v1¶
Summary¶
Runs a diagnostic test for saturation of PSD tubes and creates a MaskWorkspace marking the failed tube spectra.
See Also¶
Properties¶
Name |
Direction |
Type |
Default |
Description |
---|---|---|---|---|
InputWorkspace |
Input |
Mandatory |
The name of the input workspace. |
|
OutputWorkspace |
Output |
Mandatory |
The name of the output MaskWorkspace which will contain the result masks. |
|
MaxTubeFramerate |
Input |
number |
Mandatory |
The maximum rate allowed for a tube in counts/us/frame. |
NIgnoredCentralPixels |
Input |
number |
80 |
The number of pixels about the centre to ignore. |
NumberOfFailures |
Output |
number |
An output property containing the number of masked tubes |
Description¶
The algorithm identifies tubes, which become saturated due to high neutron flux from intense Bragg peaks affecting these tubes, so these tubes are not counting neutrons but show constant high counts over the tube in the elastic line(s) energy region(s). After that, the algorithm generates masking workspace to eliminate such tubes from the final results.
The bleeding effect occurs due to some old data acquisition electronics and observed as homogeneous high counts reading, symmetric over the whole tube length. The bleeding occurs at or close to incident energy or specific energies in multirep mode, where bright Bragg reflections hit the tube in positions, symmetric with respect to the tube centre.
The example of the workspace, affected by the bleed current and requesting bleeding corrections is presented on the following picture:
First of all, the algorithm attempts to find all tubes within the instrument attached to the workspace. If successful, each tube is tested for saturation above the level defined by the production of MaxTubeFramerate property by the goodfrm log value, retrieved from the workspace.
If the total signal, summed over all tubes pixels, excluding the number of central pixels specified by the NIgnoredCentralPixels property, exceeds the threshold, specified by the MaxTubeFramerate multiplied by the goodfrm value, the tube becomes masked.
The following image shows two instrument views obtained for two converted to energy transfer workspaces, recorded for two incident energies in multirep mode. Second energy range suffers from bleeding signal as on the picture above, so proper bleeding corrections are calculated. First energy range does not show bleeding signal, so no bleeding corrections applied to it.
Restrictions and requirements to the input workspace¶
The workspace must contain goodfrm log with value specifying the number of good frames recorded by the instrument.
The workspace should not be normalized as goodfrm is proportional to neutron flux over workspace so the MaxTubeFramerate have the meaning of the frame rate only for non-normalized workspaces. To obtain consistent results in a case when a workspace is normalized, user should divide MaxTubeFramerate by the normalization factor.
Usage¶
Example:
import numpy as np
ws=CreateSampleWorkspace()
AddSampleLog(ws,"goodfrm","10","Number")
noisyY = np.array(ws.readY(0))
noisyY[0]=1e20
ws.setY(50,noisyY)
(wsOut, numFailures) = CreatePSDBleedMask(ws,MaxTubeFramerate=10, NIgnoredCentralPixels=2)
print("{} spectra have been masked in wsOut".format(numFailures))
Output:
10 spectra have been masked in wsOut
Categories: AlgorithmIndex | Diagnostics
Source¶
C++ header: CreatePSDBleedMask.h
C++ source: CreatePSDBleedMask.cpp