Ticket #10032: res.py

File res.py, 1.7 KB (added by Samuel Jackson, 6 years ago)

Testing script for resolution function.

Line 
1def calculate_resolution(input_data, mass, index=0):
2    """
3        Run the VesuvioResolution function to produce a workspace
4        with the value of the Vesuvio resolution.
5
6        @param input_data The original TOF data
7        @param mass The mass defining the recoil peak in AMU
8    """
9    from mantid.simpleapi import AlgorithmManager, mtd
10   
11    name_stem = str(input_data)
12    output_name = name_stem + "_resolution"
13    function = "name=VesuvioResolution, Mass=%f" % mass
14   
15    # execute the resolution function using fit.
16    # functions can't currently be executed as stand alone objects,
17    # so for now we will run fit with zero iterations to achieve the same result.
18    fit = mantid.api.AlgorithmManager.createUnmanaged('Fit')       
19    fit.initialize()
20    fit.setChild(True)
21    fit.setAlwaysStoreInADS(True)
22    fit.setLogging(False)
23    mantid.simpleapi._set_properties(fit, function, input_data, MaxIterations=0, 
24                                     CreateOutput=True, Output=name_stem)
25    fit.execute()
26
27    ExtractSingleSpectrum(name_stem + "_Workspace", WorkspaceIndex=1, OutputWorkspace=output_name)
28
29    DeleteWorkspace(name_stem + "_Workspace")
30    DeleteWorkspace(name_stem + "_Parameters")
31    DeleteWorkspace(name_stem + "_NormalisedCovarianceMatrix")
32
33    return mtd[output_name]
34
35       
36runs = "14189-14195"
37spectra = "135"
38diff_type="SingleDifference" # Allowed values=Single,Double,Thick
39ip_file = "IP0004_10.par"
40
41raw_ws = LoadVesuvio(Filename=runs, SpectrumList=spectra,
42                                   Mode=diff_type,InstrumentParFile=ip_file)
43raw_ws = CropWorkspace(raw_ws,XMin=50.0,XMax=562.0)
44y_workspace = ConvertToYSpace(raw_ws, Mass=1.0076)
45calculate_resolution(y_workspace, 1.0067, 0)