Skip to content

Latest commit

 

History

History
105 lines (72 loc) · 3.83 KB

CreateMD-v1.rst

File metadata and controls

105 lines (72 loc) · 3.83 KB

Description

This workflow algorithm creates MDWorkspaces in the Q3D, HKL frame using algm-ConvertToMD.

Setting the UB matrix

u and v are required. u and v are both 3-element vectors. These specify how the crystal's axes were oriented relative to the spectrometer in the setup for which you define psi to be zero. u specifies the lattice vector that is parallel to the incident neutron beam, whilst v is a vector perpendicular to this in the horizontal plane. In UB matrix notation, u and v provide the U matrix. See algm-SetUB. Alatt and Angdeg are the lattice parameters in Angstroms and lattice angles in degrees respectively. Both are 3-element vectors. These form the B-matrix.

Goniometer Settings

If goniometer settings have been provided then these will be applied to the input workspace(s). For multiple input workspaces, you will need to provide goniometer settings (Psi, Gl, Gs) as vectors where each element of the vector corresponds to the workspace in the order listed in InputWorkspaces. You do not need to provide the goniometer settings at all. If you run algm-SetGoniometer individually on the input workspace prior to running CreateMD, then those settings will not be overwritten by CreateMD.

Merging Individually Converted Runs

If a sequence of input workspaces are provided then these are individually processed as above, and are merged together via algm-MergeMD. Intermediate workspaces are not kept.

Additional Information

CreateMD steps use algm-ConvertToMDMinMaxGlobal to determine the min and max possible extents prior to running algm-ConvertToMD on each run.

Horace style orientation used by CreateMD. DSPI and Omega in the image have no meaning in Mantid and are not required by this algorithm.

Horace style orientation used by CreateMD. DSPI and Omega in the image have no meaning in Mantid and are not required by this algorithm.

Single Conversion Example

SingleConversion

# Create some input data. current_ws = CreateSimulationWorkspace(Instrument='MAR', BinParams=[-3,1,3], UnitX='DeltaE') AddSampleLog(Workspace=current_ws,LogName='Ei',LogText='3.0',LogType='Number')

# Execute CreateMD new_mdew = CreateMD(current_ws, Emode='Direct', Alatt=[1.4165, 1.4165,1.4165], Angdeg=[ 90, 90, 90], U=[1, 0, 0,], V=[0,1,0], Psi=6, Gs=0, Gl=[0])

# Show dimensionality and dimension names ndims = new_mdew.getNumDims() for i in range(ndims): dim = new_mdew.getDimension(i) print dim.getName()

Output

SingleConversion

[H,0,0] [0,K,0] [0,0,L] DeltaE

Multi Conversion Example

MultiConversion

# Create multiple runs input_runs = list() psi = list() gs = list() gl = list() for i in range(1, 5): current_ws = CreateSimulationWorkspace(Instrument='MAR', BinParams=[-3,1,3], UnitX='DeltaE', OutputWorkspace='input_ws' + str(i)) input_runs.append(current_ws.name()) AddSampleLog(Workspace=current_ws,LogName='Ei',LogText='3.0',LogType='Number') psi.append(float(5 * i)) gl.append(0.0) gs.append(0.0)

# Convert and merge new_merged = CreateMD(input_runs, Emode='Direct', Alatt=[1.4165, 1.4165,1.4165], Angdeg=[ 90, 90, 90], U=[1, 0, 0,], V=[0,1,0], Psi=psi, Gl=gl, Gs=gs)

# Show dimensionality and dimension names ndims = new_merged.getNumDims() for i in range(ndims): dim = new_merged.getDimension(i) print dim.getName()

Output

MultiConversion

[H,0,0] [0,K,0] [0,0,L] DeltaE