Table of Contents
Its a helper algorithm, used to make common part of transformation from real to reciprocal space. It is used by ConvertToMD v1 and ConvertToMDMinMaxLocal v1 algorithms to save time spent on this transformation when the algorithm used multiple times for multiple measurements on the same instrument.
Name | Direction | Type | Default | Description |
---|---|---|---|---|
InputWorkspace | Input | MatrixWorkspace | Mandatory | Name of an input Matrix Workspace with instrument. |
OutputWorkspace | Output | TableWorkspace | Name of the output Table workspace with pre-processed detectors data. If the workspace exists, it will be replaced. | |
GetMaskState | Input | boolean | True | Returns masked state of the detectors. If this option is false, the masked detectors are just dropped from the resulting workspace and spectra-to detectors map has to be used to analyse the spectra. This is temporary parameter and logic necessary until Mantid masks signal by 0 rather then NaN. |
UpdateMasksInfo | Input | boolean | False | If target workspace already exists as the result of previous deployment of this algorithm, the algorithm just updated masks states column instead of calculating the whole target workspace. The target workspace has to be appropriate for the source workspace This is temporary parameter and logic necessary until Mantid masks signal by 0 rather then NaN. |
GetEFixed | Input | boolean | False | This option makes sense for Indirect instrument, where each detector can have its own energy, defined by correspondent crystal-analyzer position. If this option is selected for other instrument types, the value of eFixed is taken from workspace property Ei or eFixed if Ei is missing and is set to NaN if no such properties are defined on the input workspace. |
The algorithm calculates expensive part of the transformation from real to reciprocal space, calculating namely, detector positions, sample-detector distances, angular detectors positions, etc. These values can be slow to calculate for composite detectors and other algorithms can substantially benifit from using preprocessed values.
The algorithm places processed values into a table workspace with the following colums:
Column Name : | Type | Description: |
---|---|---|
DetDirections | V3D | unit 3D vector directed from sample to detector |
L2 | double | sample-detector distance |
TwoTheta | double | Composite detectors Polar angle |
Azimuthal | double | Composite detectors Azimutal angle |
DetectorID | int | Unique detector number |
detIDMap | size_t | index of the detector in the detector’s array |
detMask [1] | int | 1 if masked and 0 if not |
efixed [2] | double | energy of the detector (intirect only) |
In addition to the preprocessed detectors intofmation, the following log entries are added to the table workspace:
Ei – Incident neurtorns energy if such log value is attached to input workspace.
L1 – Source-sample distance.
ActualDetectorsNum – total number of existing preprocessed detectors (number of rows in the table above).
InstrumentName – the name of the source instrument.
(InstrumentName==*FakeInstrument* in this case).
Notes
[1] | Present if property GetMaskState is set to True. |
[2] | Present if Indirect mode selected. |
Example - Find min-max values for |Q| transformation :
# Simulates Load of a workspace with all necessary parameters #################
detWS = CreateSimulationWorkspace(Instrument='MAR',BinParams=[-50,5,50],UnitX='DeltaE')
AddSampleLog(detWS,LogName='Ei',LogText='52.',LogType='Number');
#
preprDetWS = PreprocessDetectorsToMD(InputWorkspace=detWS,GetMaskState=1,GetEFixed=1)
# Look at sample results:
print("The resulting table has the following columns:")
print(preprDetWS.keys())
print("The number of rows in the workspace is : {}".format(len(preprDetWS.column('L2'))))
polar = preprDetWS.column('TwoTheta')
print("The polar angle for detector N {0} is {1:5f} rad".format(10,polar[10]))
print("The table workspace logs (properties) are currently not available from python")
Output:
The resulting table has the following columns:
['DetDirections', 'L2', 'TwoTheta', 'Azimuthal', 'DetectorID', 'detIDMap', 'spec2detMap', 'detMask', 'eFixed']
The number of rows in the workspace is : 918
The polar angle for detector N 10 is 0.314159 rad
The table workspace logs (properties) are currently not available from python
Categories: Algorithms | MDAlgorithms\Utility
C++ source: PreprocessDetectorsToMD.cpp (last modified: 2017-05-26)
C++ header: PreprocessDetectorsToMD.h (last modified: 2016-02-12)