\(\renewcommand\AA{\unicode{x212B}}\)
SaveGEMMAUDParamFile v1¶
Summary¶
Read calibration information from focused workspace and GSAS parameter file, and save to MAUD-readable calibration format
Properties¶
| Name | Direction | Type | Default | Description | 
|---|---|---|---|---|
| InputWorkspace | Input | WorkspaceGroup | Mandatory | WorkspaceGroup of focused banks | 
| GSASParamFile | Input | string | Mandatory | GSAS parameter file to read diffractometer constants and profile coefficients from | 
| TemplateFilename | Input | string | C:\\Users\\bya67386\\work\\mantid\\scripts\\Diffraction\\isis_powder\\gem_routines\\maud_param_template.maud | Template for the .maud file | 
| GroupingScheme | Input | long list | An array of bank IDs, where the value at element i is the ID of the bank in GSASParamFile to associate spectrum i with | |
| OutputFilename | Input | string | Mandatory | Name of the file to save to | 
Description¶
Creates a .maud calibration file from a set of focused diffraction
workspaces and a GSAS calibration file.
MAUD Format¶
.maud is a text-based format used to convert the data in a GDA
file (see SaveGDA) from TOF to D-spacing in
MAUD. The algorithm uses a template
to produce its output, which lives in
scripts/Diffraction/isis_powder/gem_routines/maud_param_template.maud.
The parameters of interest in the .maud file are:
- Bank IDs - essentially just a label for each spectrum in MAUD 
- Diffractometer constants (also called conversion factors, or sometimes DIFC values) DIFC, DIFA and TZERO. These are explained in section 1 of Refinement of time of flight Profile Parameters in GSAS [RonSmith] 
- Scattering angles for each bank, theta and eta (more normally called phi 
- Profile coefficients for GEM’s chosen peak shape (GSAS TOF function type 1) alpha-0, alpha-1, beta-0, beta-1, sigma-0, sigma-1 and sigma-2. These are explained on page 143 of the GSAS Manual [GSASManual] 
- Sample-detector distance 
- There are also parameters for a second function, GSAS TOF function type 2, which are zeroed 
Bank Grouping¶
It should be noted that calibration parameters are not given for every bank, as generating such a file would be impractical, given the data we get from texture experiments on GEM.
Instead we assign each of the 160 banks the parameters from one of the 6 banks used when focusing GEM data normally. This algorithm’s ‘sister algorithm’, SaveGDA applies a D to TOF conversion using the same parameters per bank (essentially faking the time-of-flight). See D to TOF Conversion for more details on this.
References:
Smith, R. “Refinement of time of flight Profile Parameters in GSAS”
Larson, A. C. & Von Dreele, R. B (2004). “General Structure Analysis System (GSAS)”, Los Alamos National Laboratory Report LAUR 86-748
Usage¶
import os
def collect_parameter(param_header, file_contents):
    file_index = file_contents.index(param_header) + 1
    param_values = []
    while file_contents[file_index]:
        param_values.append(float(file_contents[file_index]))
        file_index += 1
    return param_values
# Banks 1 to 4 of a previous texture focus in isis_powder
# We don't use the full 160 banks as the test becomes too slow
input_group = Load(Filename="GEM61785_D_texture_banks_1_to_4.nxs",
                   OutputWorkspace="SaveGEMMAUDParamFiletest_GEM61785")
output_file = os.path.join(config["defaultsave.directory"], "GEM61785.maud")
SaveGEMMAUDParamFile(InputWorkspace=input_group,
                     OutputFilename=output_file,
                     GSASParamFile="GEM_PF1_PROFILE.IPF",
                     # Assign spectra 1, 2 and 3 to bank 2 in calib file,
                     # and spectrum 4 to bank 3
                     GroupingScheme=[2, 2, 2, 3])
with open(output_file) as f:
    file_contents = f.read().split("\n")
difcs = collect_parameter("_instrument_bank_difc", file_contents)
print("DIFC values: " + " ".join("{:.2f}".format(difc) for difc in difcs))
thetas = collect_parameter("_instrument_bank_tof_theta", file_contents)
print("Theta values: " + " ".join("{:.2f}".format(theta) for theta in thetas))
Output:
DIFC values: 1468.19 1468.19 1468.19 2788.34
Theta values: 9.12 8.16 8.04 9.06
Categories: AlgorithmIndex | DataHandling\Text | Diffraction\DataHandling