IntegrateByComponent v1

../_images/IntegrateByComponent-v1_dlg.png

IntegrateByComponent dialog.

Summary

Averages up the instrument hierarchy.

Properties

Name Direction Type Default Description
InputWorkspace Input MatrixWorkspace Mandatory The input workspace.
OutputWorkspace Output MatrixWorkspace Mandatory The output workspace.
LevelsUp Input number 0 Levels above pixel that will be used to compute the average. If no level is specified, the median is over the whole instrument. If 0, it will just return the integrated values in each pixel

Description

The algorithm integrates up the instrument hierarchy, and each pixel will contain the average value for the component. For example, assuming that for a particular instrument on workspace w1 a “tube” is made out of “pixels”, w=IntegrateByComponent(w1,1) will integrate values of w1, calculate the average along the tube (LevelsUp=1) (for non-masked pixels), and replace the value of each spectrum in a tube with the average value for that tube.

Note that if the detectors are grouped before, this algorithm won’t run except with LevelsUp=0 (integrate each spectra individually).

Usage

Note

To run these usage examples please first download the usage data, and add these to your path. In MantidPlot this is done using Manage User Directories.

#load a workspace with logs
ws=Load("CNCS_7860")

#apply algorithm
ws1=IntegrateByComponent(ws,LevelsUp=1)
ws2=IntegrateByComponent(ws,LevelsUp=2)
ws0=IntegrateByComponent(ws,LevelsUp=4)

#Check some values
print("For LevelsUp=1 we found that:")
print(" - two pixels in the same tube have the same value {}".format(ws1.dataY(1)[0]==ws1.dataY(100)[0]))
print(" - two pixels in different tubes have the same value {}".format(ws1.dataY(1)[0]==ws1.dataY(200)[0]))
print(" - two pixels in different banks have the same value {}".format(ws1.dataY(1)[0]==ws1.dataY(2000)[0]))

print("For LevelsUp=2 we found that:")
print(" - two pixels in the same tube have the same value {}".format(ws2.dataY(1)[0]==ws2.dataY(100)[0]))
print(" - two pixels in different tubes have the same value {}".format(ws2.dataY(1)[0]==ws2.dataY(200)[0]))
print(" - two pixels in different banks have the same value {}".format(ws2.dataY(1)[0]==ws2.dataY(2000)[0]))

print("For LevelsUp=4 we found that:")
print(" - two pixels in the same tube have the same value {}".format(ws0.dataY(1)[0]==ws0.dataY(100)[0]))
print(" - two pixels in different tubes have the same value {}".format(ws0.dataY(1)[0]==ws0.dataY(200)[0]))
print(" - two pixels in different banks have the same value {}".format(ws0.dataY(1)[0]==ws0.dataY(2000)[0]))

Output:

For LevelsUp=1 we found that:
 - two pixels in the same tube have the same value True
 - two pixels in different tubes have the same value False
 - two pixels in different banks have the same value False
For LevelsUp=2 we found that:
 - two pixels in the same tube have the same value True
 - two pixels in different tubes have the same value True
 - two pixels in different banks have the same value False
For LevelsUp=4 we found that:
 - two pixels in the same tube have the same value True
 - two pixels in different tubes have the same value True
 - two pixels in different banks have the same value True

Categories: AlgorithmIndex | Utility\Workspaces

Source

C++ source: IntegrateByComponent.cpp (last modified: 2019-06-05)

C++ header: IntegrateByComponent.h (last modified: 2018-10-05)