Table of Contents
Multiple scattering absorption correction, originally used to correct vanadium spectrum at IPNS.
Name | Direction | Type | Default | Description |
---|---|---|---|---|
InputWorkspace | Input | MatrixWorkspace | Mandatory | The name of the input workspace. |
OutputWorkspace | Output | MatrixWorkspace | Mandatory | The name of the output workspace. |
AttenuationXSection | Input | number | 2.8 | Coefficient 1, absorption cross section / 1.81 if not set with SetSampleMaterial |
ScatteringXSection | Input | number | 5.1 | Coefficient 3, total scattering cross section if not set with SetSampleMaterial |
SampleNumberDensity | Input | number | 0.0721 | Coefficient 2, density if not set with SetSampleMaterial |
CylinderSampleRadius | Input | number | 0.3175 | Sample radius, in cm |
This algorithm is a port to C++ of a multiple scattering absorption correction, used to correct the vanadium spectrum for the GPPD instrument at the IPNS. The correction calculation was originally worked out by Jack Carpenter and Asfia Huq and implemented in Java by Alok Chatterjee. The java code was translated to C++ in Mantid by Dennis Mikkelson.
Example: A simple cylindrical sample
ws = CreateSampleWorkspace("Histogram",NumBanks=1,BankPixelWidth=1)
ws = ConvertUnits(ws,"Wavelength")
ws = Rebin(ws,Params=[1])
SetSampleMaterial(ws,ChemicalFormula="V")
#restrict the number of wavelength points to speed up the example
wsOut = MultipleScatteringCylinderAbsorption(ws,CylinderSampleRadius=0.2)
print "Output: ", wsOut.readY(0)
Output:
Output: [ 5.90548152 5.90559329 16.28933615 5.90581685 5.90592863
1.62244888]
The source for how this calculation is done is
Categories: Algorithms | CorrectionFunctions | AbsorptionCorrections
C++ source: MultipleScatteringCylinderAbsorption.cpp
C++ header: MultipleScatteringCylinderAbsorption.h