\(\renewcommand\AA{\unicode{x212B}}\)
IdentifyNoisyDetectors v1¶
Summary¶
This algorithm creates a single-column workspace where the Y values are populated withs 1s and 0s, 0 signifying that the detector is to be considered ‘bad’ based on the method described below.
See Also¶
Properties¶
Name |
Direction |
Type |
Default |
Description |
---|---|---|---|---|
InputWorkspace |
Input |
Mandatory |
||
OutputWorkspace |
Output |
Mandatory |
||
RangeLower |
Input |
number |
2000 |
The lower integration range |
RangeUpper |
Input |
number |
19000 |
The upper integration range |
Description¶
The process for this algorithm is:
The standard deviation for each pixel within the pre-set range is calculated.
The mean value and standard deviation of these standard deviation values is calculated.
Any detector/pixel for which it’s standard deviation value satisfied the following conditions is considered to be “noisy”:
sdev(pixel) < mean(sdevs) - 3 * sdev(sdevs)
sdev(pixel) > mean(sdevs) + 3 * sdev(sdevs)
sdev(pixel) < mean(sdevs) * 0.0001
This is repeated three times from the second step.
This uses the Integration v1, Power v1 and Divide v1 algorithms for the first step.
The lower bound for the integration is currently fixed to 2000.
The upper bound for the integration is currently fixed to 19000.
Usage¶
Example: A clean run no noisy detectors
ws = CreateSampleWorkspace()
wsOut = IdentifyNoisyDetectors(ws)
print('The output workspace is filled with {:.0f} for good detectors and 0 for noisy ones.'.format( wsOut.readY(0)[0]))
sum = SumSpectra(wsOut)
print("{:.0f} good spectra left".format(sum.readY(0)[0]))
Output:
The output workspace is filled with 1 for good detectors and 0 for noisy ones.
200 good spectra left
Example: With lots of noisy detectors
ws = CreateSampleWorkspace()
#make the spectra vary
for i in range(ws.getNumberHistograms()):
ws.setY(i, ws.readY(i)*2**i)
wsOut = IdentifyNoisyDetectors(ws)
sum = SumSpectra(wsOut)
print('{:.0f} good spectra left from an original {:.0f}.'.format(sum.readY(0)[0], wsOut.getNumberHistograms()))
Output:
15 good spectra left from an original 200.
Categories: AlgorithmIndex | Diagnostics
Source¶
C++ header: IdentifyNoisyDetectors.h
C++ source: IdentifyNoisyDetectors.cpp