diff --git a/Code/Mantid/Framework/PythonInterface/plugins/algorithms/GetNuMegMuonicXRD.py b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/GetNuMegMuonicXRD.py new file mode 100644 index 0000000000000000000000000000000000000000..bdac92be1a4cf02891362271bb6e06cd8aa7747d --- /dev/null +++ b/Code/Mantid/Framework/PythonInterface/plugins/algorithms/GetNuMegMuonicXRD.py @@ -0,0 +1,63 @@ +from mantid.api import * # PythonAlgorithm, registerAlgorithm, WorkspaceProperty +from mantid.kernel import * + +#pylint: disable=no-init +class GetNegMuMuonicXRD(PythonAlgorithm): + #Dictionary of <element>:<peaks> easily extendible by user. + Muonic_XR={'Au' :[8135.2,8090.6,8105.4,8069.4,5764.89,5594.97,3360.2, + 3206.8,2474.22,2341.21,2304.44,1436.05,1391.58,1104.9, + 899.14,869.98,405.654,400.143], + 'Ag': [3184.7,3147.7,901.2,869.2,308.428,304.759], + 'Cu' :[1512.78,1506.61,334.8,330.26], + 'Zn' :[1600.15,1592.97,360.75,354.29], + 'Pb' :[8523.3,8442.11,5966.0,5780.1,2641.8,2499.7, + 2459.7,1511.63,1214.12,1028.83,972.3,938.4, + 437.687,431.285], + 'As' : [1866.9,1855.8,436.6,427.5], + 'Sn' : [3457.3,3412.8,1022.6,982.5,349.953,345.226]} + + def PyInit(self): + element_type = self.Muonic_XR.keys() + self.declareProperty("ElementList", "None", StringListValidator(element_type), + doc="List of available elements") + self.declareProperty(StringArrayProperty("Elements", values=[], + direction=Direction.Input + )) + self.declareProperty(name="YAxisPosition", + defaultValue=-0.001, + doc="Position for Markers on the y-axis") + + def get_Muonic_XR(self, element): + #retrieve peak values from dictionary Muonic_XR + peak_values = self.Muonic_XR[element] + return peak_values + + def Create_MuonicXR_WS(self, element, YPos): + #retrieve the values from Muonic_XR + xr_peak_values = self.get_Muonic_XR(element) + #Calibrate y-axis for workspace + YPos_WS = [YPos]*len(xr_peak_values) + xvalues = xr_peak_values + WS_Muon_XR = CreateWorkspace(xvalues, YPos_WS[:]) + RenameWorkspaces(WS_Muon_XR, WorkspaceNames="MuonXRWorkspace_"+element) + return WS_Muon_XR + + def category(self): + return "Muon" + + def PyExec(self): + elements = self.getProperty("Elements").value + yposition = self.getProperty("YAxisPosition").value + workspace_list = [None]*len(elements) + for idx,element in enumerate(elements): + curr_workspace = self.Create_MuonicXR_WS(element, yposition) + workspace_list[idx] = curr_workspace + + if len(elements) == 1: + MuonXRWorkspace = workspace_list[0] + self.log().information(str("Created: "+MuonXRWorkspace.name())) + else: + MuonicXR_group = GroupWorkspaces(workspace_list) + self.log().information(str("Created Group: "+MuonicXR_group.name())) + +AlgorithmFactory.subscribe(GetNegMuMuonicXRD)