\(\renewcommand\AA{\unicode{x212B}}\)

VesuvioCalculateGammaBackground v1

../_images/ImageNotFound.png

Enable screenshots using DOCS_SCREENSHOTS in CMake

Summary

Calculates the background due to gamma rays produced when neutrons are absorbed by shielding.

See Also

VesuvioCorrections

Properties

Name

Direction

Type

Default

Description

InputWorkspace

Input

MatrixWorkspace

Mandatory

An input workspace containing TOF data

ComptonFunction

InOut

Function

Mandatory

Function that is able to compute the mass spectrum for the input dataThis will usually be the output from the Fitting

WorkspaceIndexList

Input

int list

Indices of the spectra to include in the correction. If provided, the output only include these spectra (Default: all spectra from input)

BackgroundWorkspace

Output

MatrixWorkspace

Mandatory

A new workspace containing the calculated background.

CorrectedWorkspace

Output

MatrixWorkspace

Mandatory

A new workspace containing the calculated background subtracted from the input.

Description

This algorithm is currently designed to be used by the Vesuvio spectrometer at ISIS to correct for background produced by photons that are created when the neutrons are absorbed by the shielding on the instrument. It only corrects the forward scattering detector banks - spectrum numbers 135-198.

Two workspaces are produced: the calculated background and a corrected workspace where the input workspace has been corrected by the background. The background is computed by a simple simulation of the expected count across all of the foils. The corrected workspace counts are computed by calculating a ratio of the expected counts at the detector to the integrated foil counts (\(\beta\)) and then the final corrected count rate \(\displaystyle c_f\) is defined as \(\displaystyle c_f = c_i - \beta c_b\).

Usage

Example: Correcting the first spectrum

###### Simulates LoadVesuvio with spectrum number 135-136 #################
tof_ws = CreateSimulationWorkspace(Instrument='Vesuvio',BinParams=[50,0.5,562],UnitX='TOF')
tof_ws = CropWorkspace(tof_ws,StartWorkspaceIndex=134,EndWorkspaceIndex=135) # index one less than spectrum number
tof_ws = ConvertToPointData(tof_ws)
SetInstrumentParameter(tof_ws, ParameterName='t0',ParameterType='Number',Value='0.5')
SetInstrumentParameter(tof_ws, ParameterName='sigma_l1', ParameterType='Number', Value='0.021')
SetInstrumentParameter(tof_ws, ParameterName='sigma_l2', ParameterType='Number', Value='0.023')
SetInstrumentParameter(tof_ws, ParameterName='sigma_tof', ParameterType='Number', Value='0.3')
SetInstrumentParameter(tof_ws, ParameterName='sigma_theta', ParameterType='Number', Value='0.028')
SetInstrumentParameter(tof_ws, ParameterName='hwhm_lorentz', ParameterType='Number', Value='24.0')
SetInstrumentParameter(tof_ws, ParameterName='sigma_gauss', ParameterType='Number', Value='73.0')
# Algorithm allows separate parameters for the foils
SetInstrumentParameter(tof_ws, ComponentName='foil-pos0', ParameterName='hwhm_lorentz',
                       ParameterType='Number', Value='144.0')
SetInstrumentParameter(tof_ws, ComponentName='foil-pos0', ParameterName='sigma_gauss',
                       ParameterType='Number', Value='20.0')
SetInstrumentParameter(tof_ws, ComponentName='foil-pos1', ParameterName='hwhm_lorentz',
                       ParameterType='Number', Value='144.0')
SetInstrumentParameter(tof_ws, ComponentName='foil-pos1', ParameterName='sigma_gauss',
                       ParameterType='Number', Value='20.0')

###########################################################################

mass_function = "name=GaussianComptonProfile,Mass=1.0079,Width=0.4,Intensity=1.1"
corrected, background = VesuvioCalculateGammaBackground(tof_ws, ComptonFunction=mass_function,
                                                 WorkspaceIndexList=0)

print("First 5 values of input: {}".format(tof_ws.readY(0)[0:4]))
print("First 5 values of background: {}".format(background.readY(0)[0:4]))
print("First 5 values of corrected: {}".format(corrected.readY(0)[0:4]))

Output:

First 5 values of input: [ 1.  1.  1.  1.]
First 5 values of background: [ 1.00053363  1.00054706  1.00056074  1.0005747 ]
First 5 values of corrected: [-0.00053363 -0.00054706 -0.00056074 -0.0005747 ]

Example: Correcting all spectra

###### Simulates LoadVesuvio with spectrum number 135-136 #################
tof_ws = CreateSimulationWorkspace(Instrument='Vesuvio',BinParams=[50,0.5,562],UnitX='TOF')
tof_ws = CropWorkspace(tof_ws,StartWorkspaceIndex=134,EndWorkspaceIndex=135) # index one less than spectrum number5
tof_ws = ConvertToPointData(tof_ws)
SetInstrumentParameter(tof_ws, ParameterName='t0',ParameterType='Number',Value='0.5')
SetInstrumentParameter(tof_ws, ParameterName='sigma_l1', ParameterType='Number', Value='0.021')
SetInstrumentParameter(tof_ws, ParameterName='sigma_l2', ParameterType='Number', Value='0.023')
SetInstrumentParameter(tof_ws, ParameterName='sigma_tof', ParameterType='Number', Value='0.3')
SetInstrumentParameter(tof_ws, ParameterName='sigma_theta', ParameterType='Number', Value='0.028')
SetInstrumentParameter(tof_ws, ParameterName='hwhm_lorentz', ParameterType='Number', Value='73.0')
SetInstrumentParameter(tof_ws, ParameterName='sigma_gauss', ParameterType='Number', Value='24.0')
###########################################################################

mass_function = "name=GaussianComptonProfile,Mass=1.0079,Width=0.4,Intensity=1.1"
corrected, background = VesuvioCalculateGammaBackground(tof_ws, ComptonFunction=mass_function)

print("Number of background spectra: {}".format(background.getNumberHistograms()))
print("Number of corrected spectra: {}".format(corrected.getNumberHistograms()))

Output:

Number of background spectra: 2
Number of corrected spectra: 2

Categories: AlgorithmIndex | CorrectionFunctions\BackgroundCorrections

Source

C++ header: VesuvioCalculateGammaBackground.h

C++ source: VesuvioCalculateGammaBackground.cpp