\(\renewcommand\AA{\unicode{x212B}}\)
PolynomialCorrection v1¶
Summary¶
Corrects the data in a workspace by the value of a polynomial function which is evaluated at the X value of each data point.
See Also¶
OneMinusExponentialCor, MagFormFactorCorrection, ExponentialCorrection, PowerLawCorrection
Properties¶
Name |
Direction |
Type |
Default |
Description |
---|---|---|---|---|
InputWorkspace |
Input |
Mandatory |
The name of the input workspace |
|
OutputWorkspace |
Output |
Mandatory |
The name to use for the output workspace (can be the same as the input one). |
|
Coefficients |
Input |
dbl list |
Mandatory |
Array Property containing the coefficients of the polynomial correction function in ascending powers of X. Can be given as a comma separated list in string form. |
Operation |
Input |
string |
Multiply |
The operation with which the correction is applied to the data (default: Multiply). Allowed values: [‘Multiply’, ‘Divide’] |
Description¶
Corrects the data and error values on a workspace by the value of a polynomial function using the chosen operation. The correction factor is defined by
where N is the order of the polynomial specified by the length of the Coefficients property. The factor is evaluated at the x value of each data point (using the mid-point of the bin as the x value for histogram data.
Usage¶
Example: divide data by a quadratic:
# create histogram workspace
dataX = [0,1,2,3,4,5,6,7,8,9] # or use dataX=range(0,10)
dataY = [1,2,3,4,5,6,7,8,9]
dataE = [1,2,3,4,5,6,7,8,9]
data_ws = CreateWorkspace(dataX, dataY, DataE=dataE)
coefficients = [1., 3., 5.] # 1 + 3x + 5x^2
data_ws = PolynomialCorrection(data_ws, coefficients, Operation="Divide")
print("First 5 y values: {}".format(data_ws.readY(0)[0:5]))
print("First 5 error values: {}".format(data_ws.readE(0)[0:5]))
First 5 y values: [ 0.26666667 0.11940299 0.0754717 0.05498282 0.04319654]
First 5 error values: [ 0.26666667 0.11940299 0.0754717 0.05498282 0.04319654]
Example: multiply data by a linear:
# create histogram workspace
dataX = [0,1,2,3,4,5,6,7,8,9] # or use dataX=range(0,10)
dataY = [1,2,3,4,5,6,7,8,9]
dataE = [1,2,3,4,5,6,7,8,9]
data_ws = CreateWorkspace(dataX, dataY, DataE=dataE)
coefficients = [2., 4.] # 2 + 4x
data_ws = PolynomialCorrection(data_ws, coefficients, Operation="Multiply")
print("First 5 y values: {}".format(data_ws.readY(0)[0:5]))
print("First 5 error values: {}".format(data_ws.readE(0)[0:5]))
First 5 y values: [ 4. 16. 36. 64. 100.]
First 5 error values: [ 4. 16. 36. 64. 100.]
Categories: AlgorithmIndex | CorrectionFunctions
Source¶
C++ header: PolynomialCorrection.h
C++ source: PolynomialCorrection.cpp