Table of Contents
Name | Direction | Type | Default | Description |
---|---|---|---|---|
InputWorkspace | Input | MatrixWorkspace | Mandatory | Name of the input workspace to generate log correct from. |
OutputWorkspace | Output | TableWorkspace | Name of the output workspace containing the corrections. | |
OutputFilename | Input | string | Name of the output time correction file. |
For fast fequency sample logs, the time-of-flight of each neutron is recorded at detector. As the sample log time is recorded at sample, each neutron’s flight time must be corrected to sample to be filtered correctly by log value.
Example - generate correction table workspace and file for a powder diffractomer:
# Load nexus file
LoadNexusProcessed(Filename="PG3_2538_2k.nxs", OutputWorkspace="PG3_2538")
# Calculate the correction factor
corrws = CreateLogTimeCorrection(InputWorkspace="PG3_2538", OutputFilename="/tmp/tempcorr.txt")
# Load output file
cfile = open("/tmp/tempcorr.txt", "r")
lines = cfile.readlines()
cfile.close()
# Print out partial result
print("From output TableWorkspace:")
print("detector (ID: {}) correction = {:.6f}".format(corrws.cell(0, 0), corrws.cell(0, 1)))
print("detector (ID: {}) correction = {:.6f}".format(corrws.cell(10, 0), corrws.cell(10, 1)))
print("detector (ID: {}) correction = {:.6f}".format(corrws.cell(100, 0), corrws.cell(100, 1)))
print("detector (ID: {}) correction = {:.6f}".format(corrws.cell(1000, 0), corrws.cell(1000, 1)))
print("detector (ID: {}) correction = {:.6f}".format(corrws.cell(10000, 0), corrws.cell(1000, 1)))
print("\nFrom output file:")
terms = lines[0].split()
print("detector (ID: {}) correction = {}".format(terms[0], terms[1]))
terms = lines[10].split()
print("detector (ID: {}) correction = {}".format(terms[0], terms[1]))
terms = lines[100].split()
print("detector (ID: {}) correction = {}".format(terms[0], terms[1]))
terms = lines[1000].split()
print("detector (ID: {}) correction = {}".format(terms[0], terms[1]))
terms = lines[10000].split()
print("detector (ID: {}) correction = {}".format(terms[0], terms[1]))
Output:
From output TableWorkspace:
detector (ID: 27500) correction = 0.959075
detector (ID: 27510) correction = 0.959216
detector (ID: 27600) correction = 0.959075
detector (ID: 28500) correction = 0.956743
detector (ID: 102798) correction = 0.956743
From output file:
detector (ID: 27500) correction = 0.95908
detector (ID: 27510) correction = 0.95922
detector (ID: 27600) correction = 0.95907
detector (ID: 28500) correction = 0.95674
detector (ID: 102798) correction = 0.95036
Categories: Algorithms | Events\EventFiltering
C++ source: CreateLogTimeCorrection.cpp (last modified: 2017-08-01)
C++ header: CreateLogTimeCorrection.h (last modified: 2017-08-01)