\(\renewcommand\AA{\unicode{x212B}}\)
Table of Contents
Name | Direction | Type | Default | Description |
---|---|---|---|---|
InputWorkspace | Input | MatrixWorkspace | Mandatory | Name of the input workspace |
OutputWorkspace | Output | MatrixWorkspace | Mandatory | Each histogram from the input workspace maps to a histogram in this workspace with one value that indicates if there was a dead detector |
DeadThreshold | Input | number | 0 | The threshold against which to judge if a spectrum belongs to a dead detector |
LiveValue | Input | number | 0 | The value to assign to an integrated spectrum flagged as ‘live’ (default 0.0) |
DeadValue | Input | number | 100 | The value to assign to an integrated spectrum flagged as ‘dead’ (default 100.0) |
RangeLower | Input | number | Optional | No bin with a boundary at an x value less than this will be used in the summation that decides if a detector is ‘dead’ (default: the start of each histogram) |
RangeUpper | Input | number | Optional | No bin with a boundary at an x value higher than this value will be used in the summation that decides if a detector is ‘dead’ (default: the end of each histogram) |
OutputFile | Input | string | A filename to which to write the list of dead detector UDETs | |
FoundDead | Output | int list |
This is then used to mark all ‘dead’ detectors with a ‘dead’ marker value, while all spectra from live detectors are given a ‘live’ marker value.
This algorithm is primarily used to ease identification using the instrument visualization tools.
Uses the Integration v1 algorithm to sum the spectra.
Example - Find various dead detectors
import numpy as np
ws = CreateSampleWorkspace(BinWidth=2000)
#set some detectors as dead
#First - very dead all bins have zero counts
vd_data=[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]
ws.setY(10,np.array(vd_data))
#second - drop off some counts, then drops to 0
do_data=[2.0,5.0,4.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0]
ws.setY(15,np.array(do_data))
#third strange some counts, then drops to 0, then recovers
str_data=[0.4,5.0,0.001,0.0,0.0,0.0,0.0,0.0,1.0,1.0]
ws.setY(20,np.array(str_data))
print("With no range will find very dead")
(wsOut,detList) = FindDeadDetectors(ws)
print(detList)
print("\nwith a lower range will find very dead and drop off")
(wsOut,detList) = FindDeadDetectors(ws,RangeLower=8e3)
print(detList)
print("\nwith a lower range and upper range will find all three")
(wsOut,detList) = FindDeadDetectors(ws,RangeLower=8e3, rangeUpper=1.6e4)
print(detList)
Output:
With no range will find very dead
[110]
with a lower range will find very dead and drop off
[110,115]
with a lower range and upper range will find all three
[110,115,120]
Categories: AlgorithmIndex | Diagnostics
C++ header: FindDeadDetectors.h (last modified: 2020-03-20)
C++ source: FindDeadDetectors.cpp (last modified: 2021-03-31)