From 076a0c71d7bd316856609a3b308daf1b633b3d84 Mon Sep 17 00:00:00 2001 From: Nick Draper <nick.draper@stfc.ac.uk> Date: Thu, 19 May 2016 17:07:07 +0100 Subject: [PATCH] Neatening up of release notes In addition many (although not all) sphinx warnings corrected re #16301 --- .../ComputeCalibrationCoefVan-v1.rst | 2 +- .../ImggAggregateWavelengths-v1.rst | 2 +- docs/source/algorithms/LoadMuonNexus-v1.rst | 2 +- docs/source/algorithms/LoadMuonNexus-v2.rst | 4 +- .../ReflectometryReductionOne-v1.rst | 1 + .../algorithms/VesuvioCorrections-v1.rst | 110 +++++++++--------- docs/source/algorithms/VesuvioPreFit-v1.rst | 50 ++++---- docs/source/api/python/index.rst | 4 +- docs/source/concepts/Calibration.rst | 7 +- docs/source/concepts/ORNL_SANS_Reduction.rst | 3 +- docs/source/concepts/PointAndSpaceGroups.rst | 4 +- .../calibration/EngineeringCalibration.rst | 1 - .../calibration/PythonCodeForCalibration.rst | 11 +- docs/source/images/VSIEllipses.png | Bin 40364 -> 27639 bytes .../interfaces/DPDFBackgroundRemover.rst | 4 +- .../interfaces/Engineering_Diffraction.rst | 11 +- docs/source/interfaces/QECoverage.rst | 2 +- .../interfaces/Tomographic_Reconstruction.rst | 13 +-- docs/source/release/v3.7.0/diffraction.rst | 64 +++++----- .../release/v3.7.0/direct_inelastic.rst | 12 +- docs/source/release/v3.7.0/framework.rst | 90 ++++++-------- docs/source/release/v3.7.0/index.rst | 12 +- .../release/v3.7.0/indirect_inelastic.rst | 2 +- docs/source/release/v3.7.0/muon.rst | 45 ++++--- docs/source/release/v3.7.0/reflectometry.rst | 18 ++- docs/source/release/v3.7.0/sans.rst | 12 +- docs/source/release/v3.7.0/ui.rst | 71 +++++------ scripts/Calibration/tube.py | 18 +-- 28 files changed, 271 insertions(+), 304 deletions(-) diff --git a/docs/source/algorithms/ComputeCalibrationCoefVan-v1.rst b/docs/source/algorithms/ComputeCalibrationCoefVan-v1.rst index 66fbcd07fb6..799c1857fd2 100644 --- a/docs/source/algorithms/ComputeCalibrationCoefVan-v1.rst +++ b/docs/source/algorithms/ComputeCalibrationCoefVan-v1.rst @@ -42,7 +42,7 @@ Workspace containing these correction coefficients is created as an output and c Restrictions on the input workspaces -################################### +#################################### The valid input workspace: diff --git a/docs/source/algorithms/ImggAggregateWavelengths-v1.rst b/docs/source/algorithms/ImggAggregateWavelengths-v1.rst index 8a5861f5167..834b945dde7 100644 --- a/docs/source/algorithms/ImggAggregateWavelengths-v1.rst +++ b/docs/source/algorithms/ImggAggregateWavelengths-v1.rst @@ -75,7 +75,7 @@ output subdirectory will be named **bands_index_idx_<start>_to_<end>**. And when the time of flight range option (**ToFRanges**) is used the names will be **bands_tof_idx_<start>_to_<end>**. The initial prefix -(bands_uniform_, bands_index_, bands_tof_) can be mofified via the +(bands_uniform, bands_index, bands_tof) can be mofified via the input properties **OutputSubdirsPrefixUniformBands**, **OutputSubdirsPrefixIndexBands**, **OutputSubdirsPrefixToFBands**, respectively. diff --git a/docs/source/algorithms/LoadMuonNexus-v1.rst b/docs/source/algorithms/LoadMuonNexus-v1.rst index 4235ab6208e..8ea366a61ad 100644 --- a/docs/source/algorithms/LoadMuonNexus-v1.rst +++ b/docs/source/algorithms/LoadMuonNexus-v1.rst @@ -159,9 +159,9 @@ Log values are loaded into the workspace run object as follows: +-------------------------------------------+-------------------------------+ | - single-period: | ``goodfrm`` (number of good | | ``run/instrument/beam/frames_good`` | frames) | -| | | | - multi-period: | | | ``run/instrument/beam/frames_period_daq`` | | +| | | +-------------------------------------------+-------------------------------+ | Other NX\_LOG entries under ``run`` | time series (via LoadMuonLog) | +-------------------------------------------+-------------------------------+ diff --git a/docs/source/algorithms/LoadMuonNexus-v2.rst b/docs/source/algorithms/LoadMuonNexus-v2.rst index 1b7babb349d..5c44a2b0fe4 100644 --- a/docs/source/algorithms/LoadMuonNexus-v2.rst +++ b/docs/source/algorithms/LoadMuonNexus-v2.rst @@ -125,8 +125,8 @@ The ChildAlgorithms used by LoadMuonNexus are: - :ref:`algm-LoadMuonNexus-v1` - this loads the muon nexus file if not identified as version 2. It in turn uses the following child algorithm: - - :ref:`algm-LoadMuonLog` - this reads log information from the Nexus file and uses - it to create TimeSeriesProperty entries in the workspace. + - :ref:`algm-LoadMuonLog` - this reads log information from the Nexus file and uses + it to create TimeSeriesProperty entries in the workspace. - :ref:`algm-LoadInstrument` - this algorithm looks for an XML description of the instrument and if found reads it. - :ref:`algm-LoadInstrumentFromNexus` - this is called if the normal diff --git a/docs/source/algorithms/ReflectometryReductionOne-v1.rst b/docs/source/algorithms/ReflectometryReductionOne-v1.rst index 47fccd9be6b..9e1415794ad 100644 --- a/docs/source/algorithms/ReflectometryReductionOne-v1.rst +++ b/docs/source/algorithms/ReflectometryReductionOne-v1.rst @@ -135,6 +135,7 @@ algorithms that may need to manipulate/use it. :width: 650px :height: 250px :align: center + Usage ----- diff --git a/docs/source/algorithms/VesuvioCorrections-v1.rst b/docs/source/algorithms/VesuvioCorrections-v1.rst index 3095e81f5f3..d07ab87ea3e 100644 --- a/docs/source/algorithms/VesuvioCorrections-v1.rst +++ b/docs/source/algorithms/VesuvioCorrections-v1.rst @@ -20,61 +20,61 @@ Usage .. testcode:: VesuvioCorrectionsExample -###### Simulates LoadVesuvio with spectrum number 135-136 ################# -tof_ws = CreateSimulationWorkspace(Instrument='Vesuvio',BinParams=[50,0.5,562],UnitX='TOF') -tof_ws = CropWorkspace(tof_ws,StartWorkspaceIndex=134,EndWorkspaceIndex=135) # index one less than spectrum number -tof_ws = ConvertToPointData(tof_ws) -SetInstrumentParameter(tof_ws, ParameterName='t0',ParameterType='Number',Value='0.5') -SetInstrumentParameter(tof_ws, ParameterName='sigma_l1', ParameterType='Number', Value='0.021') -SetInstrumentParameter(tof_ws, ParameterName='sigma_l2', ParameterType='Number', Value='0.023') -SetInstrumentParameter(tof_ws, ParameterName='sigma_tof', ParameterType='Number', Value='0.3') -SetInstrumentParameter(tof_ws, ParameterName='sigma_theta', ParameterType='Number', Value='0.028') -SetInstrumentParameter(tof_ws, ParameterName='hwhm_lorentz', ParameterType='Number', Value='24.0') -SetInstrumentParameter(tof_ws, ParameterName='sigma_gauss', ParameterType='Number', Value='73.0') -# Algorithm allows separate parameters for the foils -SetInstrumentParameter(tof_ws, ComponentName='foil-pos0', ParameterName='hwhm_lorentz', - ParameterType='Number', Value='144.0') -SetInstrumentParameter(tof_ws, ComponentName='foil-pos0', ParameterName='sigma_gauss', - ParameterType='Number', Value='20.0') -SetInstrumentParameter(tof_ws, ComponentName='foil-pos1', ParameterName='hwhm_lorentz', - ParameterType='Number', Value='144.0') -SetInstrumentParameter(tof_ws, ComponentName='foil-pos1', ParameterName='sigma_gauss', - ParameterType='Number', Value='20.0') - -#######################Create dummy fit parameters############################# -params = ms.CreateEmptyTableWorkspace(OutputWorkspace='__VesuvioCorrections_test_fit_params') - -params.addColumn('str', 'Name') -params.addColumn('float', 'Value') -params.addColumn('float', 'Error') - -params.addRow(['f0.Width', 4.72912, 0.41472]) -params.addRow(['f0.FSECoeff', 0.557332, 0]) -params.addRow(['f0.C_0', 11.8336, 1.11468]) -params.addRow(['f1.Width', 10, 0]) -params.addRow(['f1.Intensity', 2.21085, 0.481347]) -params.addRow(['f2.Width', 13, 0]) -params.addRow(['f2.Intensity', 1.42443, 0.583283]) -params.addRow(['f3.Width', 30, 0]) -params.addRow(['f3.Intensity', 0.499497, 0.28436]) -params.addRow(['f4.A0', -0.00278903, 0.00266163]) -params.addRow(['f4.A1', 14.5313, 22.2307]) -params.addRow(['f4.A2', -5475.01, 35984.4]) -params.addRow(['Cost function value', 2.34392, 0]) - - -masses = [1.0079, 16.0, 27.0, 133.0] -profiles = "function=GramCharlier,hermite_coeffs=[1, 0, 0],k_free=0,sears_flag=1,width=[2, 5, 7];function=Gaussian,width=10;function=Gaussian,width=13;function=Gaussian,width=30" - - - -corrections, corrected, linear_fit, out_ws = VesuvioCorrections(InputWorkspace=tof_ws, - GammaBackground=True, - FitParameters=params, - Masses=masses, - MassProfiles=profiles, - ContainerScale=0.1, - GammaBackground=0.2) + ###### Simulates LoadVesuvio with spectrum number 135-136 ################# + tof_ws = CreateSimulationWorkspace(Instrument='Vesuvio',BinParams=[50,0.5,562],UnitX='TOF') + tof_ws = CropWorkspace(tof_ws,StartWorkspaceIndex=134,EndWorkspaceIndex=135) # index one less than spectrum number + tof_ws = ConvertToPointData(tof_ws) + SetInstrumentParameter(tof_ws, ParameterName='t0',ParameterType='Number',Value='0.5') + SetInstrumentParameter(tof_ws, ParameterName='sigma_l1', ParameterType='Number', Value='0.021') + SetInstrumentParameter(tof_ws, ParameterName='sigma_l2', ParameterType='Number', Value='0.023') + SetInstrumentParameter(tof_ws, ParameterName='sigma_tof', ParameterType='Number', Value='0.3') + SetInstrumentParameter(tof_ws, ParameterName='sigma_theta', ParameterType='Number', Value='0.028') + SetInstrumentParameter(tof_ws, ParameterName='hwhm_lorentz', ParameterType='Number', Value='24.0') + SetInstrumentParameter(tof_ws, ParameterName='sigma_gauss', ParameterType='Number', Value='73.0') + # Algorithm allows separate parameters for the foils + SetInstrumentParameter(tof_ws, ComponentName='foil-pos0', ParameterName='hwhm_lorentz', + ParameterType='Number', Value='144.0') + SetInstrumentParameter(tof_ws, ComponentName='foil-pos0', ParameterName='sigma_gauss', + ParameterType='Number', Value='20.0') + SetInstrumentParameter(tof_ws, ComponentName='foil-pos1', ParameterName='hwhm_lorentz', + ParameterType='Number', Value='144.0') + SetInstrumentParameter(tof_ws, ComponentName='foil-pos1', ParameterName='sigma_gauss', + ParameterType='Number', Value='20.0') + + #######################Create dummy fit parameters############################# + params = ms.CreateEmptyTableWorkspace(OutputWorkspace='__VesuvioCorrections_test_fit_params') + + params.addColumn('str', 'Name') + params.addColumn('float', 'Value') + params.addColumn('float', 'Error') + + params.addRow(['f0.Width', 4.72912, 0.41472]) + params.addRow(['f0.FSECoeff', 0.557332, 0]) + params.addRow(['f0.C_0', 11.8336, 1.11468]) + params.addRow(['f1.Width', 10, 0]) + params.addRow(['f1.Intensity', 2.21085, 0.481347]) + params.addRow(['f2.Width', 13, 0]) + params.addRow(['f2.Intensity', 1.42443, 0.583283]) + params.addRow(['f3.Width', 30, 0]) + params.addRow(['f3.Intensity', 0.499497, 0.28436]) + params.addRow(['f4.A0', -0.00278903, 0.00266163]) + params.addRow(['f4.A1', 14.5313, 22.2307]) + params.addRow(['f4.A2', -5475.01, 35984.4]) + params.addRow(['Cost function value', 2.34392, 0]) + + + masses = [1.0079, 16.0, 27.0, 133.0] + profiles = "function=GramCharlier,hermite_coeffs=[1, 0, 0],k_free=0,sears_flag=1,width=[2, 5, 7];function=Gaussian,width=10;function=Gaussian,width=13;function=Gaussian,width=30" + + + + corrections, corrected, linear_fit, out_ws = VesuvioCorrections(InputWorkspace=tof_ws, + GammaBackground=True, + FitParameters=params, + Masses=masses, + MassProfiles=profiles, + ContainerScale=0.1, + GammaBackground=0.2) .. categories:: diff --git a/docs/source/algorithms/VesuvioPreFit-v1.rst b/docs/source/algorithms/VesuvioPreFit-v1.rst index 4b1b0c501e9..cd754da96cc 100644 --- a/docs/source/algorithms/VesuvioPreFit-v1.rst +++ b/docs/source/algorithms/VesuvioPreFit-v1.rst @@ -22,31 +22,31 @@ Usage .. testcode:: VesuvioPreFitExample -###### Simulates LoadVesuvio with spectrum number 135-136 ################# -tof_ws = CreateSimulationWorkspace(Instrument='Vesuvio',BinParams=[50,0.5,562],UnitX='TOF') -tof_ws = CropWorkspace(tof_ws,StartWorkspaceIndex=134,EndWorkspaceIndex=135) # index one less than spectrum number -tof_ws = ConvertToPointData(tof_ws) -SetInstrumentParameter(tof_ws, ParameterName='t0',ParameterType='Number',Value='0.5') -SetInstrumentParameter(tof_ws, ParameterName='sigma_l1', ParameterType='Number', Value='0.021') -SetInstrumentParameter(tof_ws, ParameterName='sigma_l2', ParameterType='Number', Value='0.023') -SetInstrumentParameter(tof_ws, ParameterName='sigma_tof', ParameterType='Number', Value='0.3') -SetInstrumentParameter(tof_ws, ParameterName='sigma_theta', ParameterType='Number', Value='0.028') -SetInstrumentParameter(tof_ws, ParameterName='hwhm_lorentz', ParameterType='Number', Value='24.0') -SetInstrumentParameter(tof_ws, ParameterName='sigma_gauss', ParameterType='Number', Value='73.0') -# Algorithm allows separate parameters for the foils -SetInstrumentParameter(tof_ws, ComponentName='foil-pos0', ParameterName='hwhm_lorentz', - ParameterType='Number', Value='144.0') -SetInstrumentParameter(tof_ws, ComponentName='foil-pos0', ParameterName='sigma_gauss', - ParameterType='Number', Value='20.0') -SetInstrumentParameter(tof_ws, ComponentName='foil-pos1', ParameterName='hwhm_lorentz', - ParameterType='Number', Value='144.0') -SetInstrumentParameter(tof_ws, ComponentName='foil-pos1', ParameterName='sigma_gauss', - ParameterType='Number', Value='20.0') - -########################################################################### - -pre_fit_workspace = VesuvioPreFit(Inputworkspace=tof_ws, Smoothing="Neighbour", - SmoothingOptions="NPoints=3", BadDataError=-1) + ###### Simulates LoadVesuvio with spectrum number 135-136 ################# + tof_ws = CreateSimulationWorkspace(Instrument='Vesuvio',BinParams=[50,0.5,562],UnitX='TOF') + tof_ws = CropWorkspace(tof_ws,StartWorkspaceIndex=134,EndWorkspaceIndex=135) # index one less than spectrum number + tof_ws = ConvertToPointData(tof_ws) + SetInstrumentParameter(tof_ws, ParameterName='t0',ParameterType='Number',Value='0.5') + SetInstrumentParameter(tof_ws, ParameterName='sigma_l1', ParameterType='Number', Value='0.021') + SetInstrumentParameter(tof_ws, ParameterName='sigma_l2', ParameterType='Number', Value='0.023') + SetInstrumentParameter(tof_ws, ParameterName='sigma_tof', ParameterType='Number', Value='0.3') + SetInstrumentParameter(tof_ws, ParameterName='sigma_theta', ParameterType='Number', Value='0.028') + SetInstrumentParameter(tof_ws, ParameterName='hwhm_lorentz', ParameterType='Number', Value='24.0') + SetInstrumentParameter(tof_ws, ParameterName='sigma_gauss', ParameterType='Number', Value='73.0') + # Algorithm allows separate parameters for the foils + SetInstrumentParameter(tof_ws, ComponentName='foil-pos0', ParameterName='hwhm_lorentz', + ParameterType='Number', Value='144.0') + SetInstrumentParameter(tof_ws, ComponentName='foil-pos0', ParameterName='sigma_gauss', + ParameterType='Number', Value='20.0') + SetInstrumentParameter(tof_ws, ComponentName='foil-pos1', ParameterName='hwhm_lorentz', + ParameterType='Number', Value='144.0') + SetInstrumentParameter(tof_ws, ComponentName='foil-pos1', ParameterName='sigma_gauss', + ParameterType='Number', Value='20.0') + + ########################################################################### + + pre_fit_workspace = VesuvioPreFit(Inputworkspace=tof_ws, Smoothing="Neighbour", + SmoothingOptions="NPoints=3", BadDataError=-1) .. categories:: diff --git a/docs/source/api/python/index.rst b/docs/source/api/python/index.rst index 9901fe66d47..553a7e12812 100644 --- a/docs/source/api/python/index.rst +++ b/docs/source/api/python/index.rst @@ -36,7 +36,7 @@ Techniques ---------- .. toctree:: + :glob: :maxdepth: 1 - techniques/calibration - techniques/PowderDiffractionISIS-v1 + techniques/* diff --git a/docs/source/concepts/Calibration.rst b/docs/source/concepts/Calibration.rst index 06e4616e639..893628cf5ce 100644 --- a/docs/source/concepts/Calibration.rst +++ b/docs/source/concepts/Calibration.rst @@ -1,4 +1,4 @@ -.. _Calibration: +.. _Calibration Intro: Calibration =========== @@ -8,10 +8,9 @@ Calibration What is Calibration? -------------------- - + Calibration is a process which determines and corrects for differences in the definition of an instrument to reality, generally conducted by performing a measurement of a reference compound under known conditions. - - + Supported Types of Calibration ------------------------------ diff --git a/docs/source/concepts/ORNL_SANS_Reduction.rst b/docs/source/concepts/ORNL_SANS_Reduction.rst index 4e1af84c550..40e3837271e 100644 --- a/docs/source/concepts/ORNL_SANS_Reduction.rst +++ b/docs/source/concepts/ORNL_SANS_Reduction.rst @@ -1,4 +1,4 @@ -.. _Facilities File: +.. _Reduction for ORNL SANS: .. role:: xml(literal) :class: highlight @@ -41,6 +41,7 @@ Reduction script ---------------- .. code-block:: python + import mantid from mantid.simpleapi import * from reduction_workflow.instruments.sans.hfir_command_interface import * diff --git a/docs/source/concepts/PointAndSpaceGroups.rst b/docs/source/concepts/PointAndSpaceGroups.rst index e868bb8c097..c6786c4d5e7 100644 --- a/docs/source/concepts/PointAndSpaceGroups.rst +++ b/docs/source/concepts/PointAndSpaceGroups.rst @@ -40,13 +40,13 @@ Through the presence of certain symmetry operations in certain directions, the L Any point group can be generated by using a maximum of three symmetry operations as so-called generators using the principle described in [Shmueli84]_. According to this, any point group can be described either as a cyclic group or as a product of maximum three cyclic groups. The point group :math:`4` is an example for a group that is simply a cyclic group generated from a positive four fold rotation axis along the :math:`z`-axis, which has the order 4. .. math:: -G = \left\{{4^{+}}^0, {4^{+}}^1, {4^{+}}^2, {4^{+}}^3\right\} = \left\{1, 4^{+}, 2, 4^{-}\right\} + G = \left\{{4^{+}}^0, {4^{+}}^1, {4^{+}}^2, {4^{+}}^3\right\} = \left\{1, 4^{+}, 2, 4^{-}\right\} So by specifying one single symmetry operation as generator, all symmetry operations of the point group in question are generated. From this it's convenient to expand the example to generate a point group that can be expressed as the product of two cyclic groups - :math:`4/m`. In this point group, an additional mirror plane is present perpendicular to the four fold axis. The point group can be expressed as product of :math:`4` shown above and a cyclic group generated by the symmetry operation :math:`m` (mirror plane perpendicular to :math:`z`): .. math:: -G' = G \cdot \left\{m^0, m^1\right\} = \left\{1, 4^{+}, 2, 4^{-}\right\} \cdot \left\{1, m\right\} = \left\{1, m, 4^{+}, \bar{4}^{+}, 2, \bar{1}, 4^{-}, \bar{4}^{-}\right\} + G' = G \cdot \left\{m^0, m^1\right\} = \left\{1, 4^{+}, 2, 4^{-}\right\} \cdot \left\{1, m\right\} = \left\{1, m, 4^{+}, \bar{4}^{+}, 2, \bar{1}, 4^{-}, \bar{4}^{-}\right\} This means that :math:`4/m` contains an inversion center as well as a four fold rotoinversion axis which result from the combination of the operations of the two cyclic groups. It's also possible to use a different cyclic group to achive the same result (:math:`\bar{1}`). As mentioned above, for some point groups it's necessary to use three generators, which follows the same principle and is not shown here. diff --git a/docs/source/concepts/calibration/EngineeringCalibration.rst b/docs/source/concepts/calibration/EngineeringCalibration.rst index 9c8f2a0bb91..36711bd8f70 100644 --- a/docs/source/concepts/calibration/EngineeringCalibration.rst +++ b/docs/source/concepts/calibration/EngineeringCalibration.rst @@ -56,7 +56,6 @@ The peak functions (shapes): * :ref:`BackToBackExponential<func-BackToBackExponential>` (used in EnggFitPeaks, to fit the peaks when accuracy is needed) * :ref:`Gaussian<func-Gaussian>` (used in FindPeaks when the a quick validation is needed, but fit accuracy is not vital) -* :ref:`Bk2BkExpConvPV <func-Bk2BkExpConvPV>` (is the Mantid equivalent to the function used in GSAS). File Formats ############ diff --git a/docs/source/concepts/calibration/PythonCodeForCalibration.rst b/docs/source/concepts/calibration/PythonCodeForCalibration.rst index 3a988f501f4..0decfda23db 100644 --- a/docs/source/concepts/calibration/PythonCodeForCalibration.rst +++ b/docs/source/concepts/calibration/PythonCodeForCalibration.rst @@ -28,10 +28,10 @@ directly: This function requires some inputs and allow for some optional parameters as well. The minimum set of parameters required are: -* The workspace whose instrument is based on tubes (ws), where the counts in the tube pixels have been integrated -* Definition of the set of tubes to be calibrated (tubeSet) -* The position of the known points (knownPositions) -* The shape of the known points (funcForm). Currently, we accept two shapes identified as 1 for :ref:`Gaussian <func-Gaussian>` and 2 for Edges. +- The workspace whose instrument is based on tubes (ws), where the counts in the tube pixels have been integrated +- Definition of the set of tubes to be calibrated (tubeSet) +- The position of the known points (knownPositions) +- The shape of the known points (funcForm). Currently, we accept two shapes identified as 1 for :ref:`Gaussian <func-Gaussian>` and 2 for Edges. Parameter: Workspace #################### @@ -53,8 +53,7 @@ The second step is to define what are the tubes to be calibrated (**tubeSet**). This parameter accepts the following inputs: * As single string that defines a set of tubes -  (e.g. MERLIN/door2/tube_1_1), door (e.g. MAPS/A1_window), or the whole instrument -  (e.g. MAPS) +  (e.g. MERLIN/door2/tube_1_1), door (e.g. MAPS/A1_window), or the whole instrument (e.g. MAPS) * A list of strings (e.g. [MERLIN/door2/tube_1_1, MERLIN/door2/tube_1_2], [MERLIN/door1, MERLIN/door2]) * A `TubeSpec <TubeSpec>`__ object. diff --git a/docs/source/images/VSIEllipses.png b/docs/source/images/VSIEllipses.png index b5f26addc70ca64376b61133ecdccbafb1074c73..ba3180ba111de1baafdcb2d92bd03359ec37d9e5 100644 GIT binary patch literal 27639 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 HF$nq}$i1Ja literal 40364 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 LmO_c#(~$oGDu@Aq diff --git a/docs/source/interfaces/DPDFBackgroundRemover.rst b/docs/source/interfaces/DPDFBackgroundRemover.rst index d19a8563f9f..d5ea1585cf5 100644 --- a/docs/source/interfaces/DPDFBackgroundRemover.rst +++ b/docs/source/interfaces/DPDFBackgroundRemover.rst @@ -59,10 +59,10 @@ Action Buttons .. categories:: Interfaces DynamicPDF Developer's Corner ----------------- +------------------ Diagrams -~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~ .. diagram:: DPDFBackgroundRemover_mainComponents.dot diff --git a/docs/source/interfaces/Engineering_Diffraction.rst b/docs/source/interfaces/Engineering_Diffraction.rst index 12e6bf8b241..aa4cdd9733e 100644 --- a/docs/source/interfaces/Engineering_Diffraction.rst +++ b/docs/source/interfaces/Engineering_Diffraction.rst @@ -48,10 +48,9 @@ This tab provides a graphical interface to calculate calibrations and visualize them. It is possible to -- generate a new calibration file (which becomes the new current - calibration) -- load an existing calibration from a GSAS instrument - parameters file previously generated + +- generate a new calibration file (which becomes the new current calibration) +- load an existing calibration from a GSAS instrument parameters file previously generated For the current calibration, the following parameters are displayed: the vanadium run number, the calibration sample run number, and the @@ -291,6 +290,8 @@ To use the Fitting tab, user is required to provide: 2. List of expected peaks which can be either by browsing a (*CSV*) file or entering within the text-field simply click on the Fit button. +.. _ExpectedPeaks-Engineering_Diffraction-ref: + Parameters ^^^^^^^^^^ @@ -312,8 +313,6 @@ Focused Run #: The interface will then automatically update the Plot Bank combo-box according to the bank files found for each entered/selected run-number. -.. _ExpectedPeaks-Engineering_Diffraction-ref: - Peaks: A list of dSpacing values to be translated into TOF to find expected peaks. These peaks can be manually written or imported by selecting a diff --git a/docs/source/interfaces/QECoverage.rst b/docs/source/interfaces/QECoverage.rst index 80c90ae21ac..213b92adec7 100644 --- a/docs/source/interfaces/QECoverage.rst +++ b/docs/source/interfaces/QECoverage.rst @@ -29,7 +29,7 @@ To overplot the calculated Q-E trajectories, set the "Plot Over" check box. The plot range is from Emin to Ei for direct, and from -Ef to Emax for indirect geometry spectrometers, and Emin and Emax may be inputted in the appropriate text -box. If this box is left empty, Emin=-|Ei| (Emax=|Ef|) is set automatically for +box. If this box is left empty, Emin=-Ei (Emax=Ef) is set automatically for direct (indirect) geometry. You can choose to create a 1D Mantid workspace for latter plotting using the diff --git a/docs/source/interfaces/Tomographic_Reconstruction.rst b/docs/source/interfaces/Tomographic_Reconstruction.rst index 2aff03a6dc4..be32fce3bac 100644 --- a/docs/source/interfaces/Tomographic_Reconstruction.rst +++ b/docs/source/interfaces/Tomographic_Reconstruction.rst @@ -174,19 +174,18 @@ where: or directory is synchronized (at least partially) between the remote compute resource and the (local) instrument analysis machine. -* *RB987654321* is the experiment reference number (or so-called RB -number) which usually starts with the prefix "RB". +* *RB987654321* is the experiment reference number (or so-called RB number) which usually starts with the prefix "RB". * *experiment_foo* is a name given by the user to the particular experiment the data comes from. This is specified in free form. -* inside the path there will normally be at least three folders or -subdirectories for the sample, flat, and dark images: +* inside the path there will normally be at least three folders or subdirectories for the sample, flat, and dark images: - data - flat - dark + As the files are mirrored on the remote computer cluster, if a network drive have been added (or mapped) in the local system, for example using the drive "S:", then the following path would contain a similar @@ -364,7 +363,7 @@ Energy bands Here it is possible to aggregate stacks of images normally acquired as energy/wavelength selective data. This interface is based on the -algorithm :ref:`ImggAggWavelengths <algm-ImggAggWavelengths>` which +algorithm :ref:`ImggAggregateWavelengths <algm-ImggAggregateWavelengths>` which supports different ways of aggregating the input images. In the simplest case, a number of output bands can be produced by aggregating the input bands split into uniform segments. This is called "uniform @@ -377,8 +376,8 @@ could by produced by specifying the ranges as "0-499, 250-749, 500-999". In principle it is also possible to aggregate images by time of flight ranges, based on specific extension headers that must be included in the input (FITS) images. This option is disabled at the -moment. Please refer to the documentation of :ref:`ImggAggWavelengths -<algm-ImggAggWavelengths>` for lower level details on how the +moment. Please refer to the documentation of :ref:`ImggAggregateWavelengths +<algm-ImggAggregateWavelengths>` for lower level details on how the algorithm processes the input directories and files. .. figure:: /images/tomo_tab7_energy_bands.png diff --git a/docs/source/release/v3.7.0/diffraction.rst b/docs/source/release/v3.7.0/diffraction.rst index c6187f92f77..8f7acb8f2c3 100644 --- a/docs/source/release/v3.7.0/diffraction.rst +++ b/docs/source/release/v3.7.0/diffraction.rst @@ -7,16 +7,38 @@ Diffraction Changes Documentation ------------- + +- The documentation for all calibration approaches, including Powder diffraction, single crystal and engineering calibrations has been pulled together, and expanded :ref:`here <Calibration Intro>`. -- The documentation for all calibration approaches, including Powder diffraction, single crystal and engineering calibrations has been pulled together, and expanded :ref:`here<Calibration>`. +Powder Diffraction +------------------ + +- :ref:`PDFFourierTransform <algm-PDFFourierTransform>` has been corrected in its calculation of errors. + +Powder Diffraction Scripts +########################## + +- Pearl powder diffraction has been integrated and can be found + `scripts/PearlPowderISIS`. The routines/script has been differentiated from + the long list of directories of calibration and raw files. The calibration + directories can be found in a file by the name of pearl_calib_factory.py, + whereas the raw directories can be found in a file by the name of + pearl_cycle_factory.py. + +- PowderISIS script has been renamed to CryPowderISIS and can be found within + the following folder `scripts/CryPowderISIS` + +- :ref:`pearl-powder-diffraction-ref` documentation has been implemented and + PowderISIS script documentation has been renamed to + :ref:`cry-powder-diffraction-ref` -Crystal Improvements --------------------- +Single Crystal Improvements +--------------------------- - :ref:`SCDCalibratePanels <algm-SCDCalibratePanels>` has parameter errors reduced, - option for simplex minimization, and 3 new workspaces which can plot calculated - vs theoretical columns, rows, and TOF for each bank. Calibration is now as good - as ISAW's for Mandi data. + an option for simplex minimization, and 3 new workspaces which can plot calculated + vs theoretical columns, rows, and TOF for each bank. Calibration is now as good + as ISAW's for Mandi data. - 5 detectors added to the MANDI instrument geometry - :ref:`LoadCIF <algm-LoadCIF>` can now also load structures where only anisotropic displacement parameters are given, which are converted to equivalent isotropic parameters. @@ -54,7 +76,8 @@ Engineering Diffraction - New algorithm :ref:`SaveNexusPD <algm-SaveNexusPD>` which creates a nexus file for use in GUDRUN and will hopefully be supported by Rietveld packages in the future. -Graphical user interface: +Graphical user interface +######################## - Vanadium Curves and Ceria Peaks graphs are plotted once basic and cropped calibration process has been carried out @@ -97,8 +120,7 @@ Imaging - The new algorithm :ref:`ImggAggregateWavelengths <algm-ImggAggregateWavelengths>` aggregates stacks of images from wavelength dependent data. -- The algorithm `ImggTomographicReconstruction - <algm-ImggTomographicReconstruction>` has been introduced. This is a +- The algorithm `ImggTomographicReconstruction <algm-ImggTomographicReconstruction>` has been introduced. This is a first experimental version that implements the Filtered Back-Projection (FBP) reconstruction method using the FBP implementation of the `TomoPy package @@ -107,7 +129,8 @@ Imaging using the algorithm :ref:`SaveFITS <algm-SaveFITS>`. -Improvements in the tomographic reconstruction graphical user interface: +Improvements in the tomographic reconstruction graphical user interface +####################################################################### - New capabilities added when visualizing stacks of images: @@ -131,28 +154,7 @@ Improvements in the tomographic reconstruction graphical user interface: <algm-ImggAggregateWavelengths>`. -Powder Diffraction ------------------- - -- :ref:`PDFFourierTransform <algm-PDFFourierTransform>` has been corrected in its calculation of errors. - - -Powder Diffraction Scripts --------------------------- - -- Pearl powder diffraction has been integrated and can be found - `scripts/PearlPowderISIS`. The routines/script has been differentiated from - the long list of directories of calibration and raw files. The calibration - directories can be found in a file by the name of pearl_calib_factory.py, - whereas the raw directories can be found in a file by the name of - pearl_cycle_factory.py. - -- PowderISIS script has been renamed to CryPowderISIS and can be found within - the following folder `scripts/CryPowderISIS` -- :ref:`pearl-powder-diffraction-ref` documentation has been implemented and - PowderISIS script documentation has been renamed to - :ref:`cry-powder-diffraction-ref` Full list of `diffraction <http://github.com/mantidproject/mantid/pulls?q=is%3Apr+milestone%3A%22Release+3.7%22+is%3Amerged+label%3A%22Component%3A+Diffraction%22>`_ and diff --git a/docs/source/release/v3.7.0/direct_inelastic.rst b/docs/source/release/v3.7.0/direct_inelastic.rst index 3345271c37c..110134166c4 100644 --- a/docs/source/release/v3.7.0/direct_inelastic.rst +++ b/docs/source/release/v3.7.0/direct_inelastic.rst @@ -9,18 +9,18 @@ Improvements ------------ - New CNCS formula to calculate T0 accounts for different phasing of the choppers since August 2015 -- The documentation for all calibration approaches, including PSD tube calibration has been pulled together :ref:`here<Calibration>` - -`Full list of changes on GitHub <http://github.com/mantidproject/mantid/pulls?q=is%3Apr+milestone%3A%22Release+3.7%22+is%3Amerged+label%3A%22Component%3A+Direct+Inelastic%22>`_ +- The documentation for all calibration approaches, including PSD tube calibration has been pulled together :ref:`here <Calibration Intro>`. +- Many improvements have been made to the VATES command line interface, these are detailed in the :ref:`Framework section <R3.7 Vates CLI>` of the release notes. Crystal Field ------------- -FOCUS fortran program that fits crystal field parameters is being translated into Mantid (C++ and python). -The release notes on this work will go here. +- A fitting function was added (:ref:`CrystalFieldSpectrum <func-CrystalFieldSpectrum>`) that fits crystal field parameters to a spectrum. It is based on fortran program FOCUS which was translated into C++. Phonon DOS ---------- The old PySlice routine to compute the phonon DOS from powder data using the incoherent approximation has -been ported and is now a Mantid Python Algorithm :ref:`ComputeIncoherentDOS <algm-ComputeIncoherentDOS` +been ported and is now a Mantid Python Algorithm :ref:`ComputeIncoherentDOS <algm-ComputeIncoherentDOS>`. + +`Full list of changes on GitHub <http://github.com/mantidproject/mantid/pulls?q=is%3Apr+milestone%3A%22Release+3.7%22+is%3Amerged+label%3A%22Component%3A+Direct+Inelastic%22>`_ \ No newline at end of file diff --git a/docs/source/release/v3.7.0/framework.rst b/docs/source/release/v3.7.0/framework.rst index 846bbf2bb2e..9c592530bf2 100644 --- a/docs/source/release/v3.7.0/framework.rst +++ b/docs/source/release/v3.7.0/framework.rst @@ -5,13 +5,35 @@ Framework Changes .. contents:: Table of Contents :local: -API ---- -Improved -######## +Geometry +-------- + +- The Instrument Definition File syntax has been extended to provide support for a new type of topologically regular, but geometrically irregular form of 2D detectors. This new type of detector available in the IDF is known as a Structured Detector. Information on how to use this new detector type can be found in the :ref:`IDF <InstrumentDefinitionFile>` documentation. +- The XML shape definitions have been updated to understand a hollow cylinder as a primitive shape. See :ref:`HowToDefineGeometricShape` for more details. + +Refactored `PeakShape` to better support arbitrary shapes. -- A sorting members by name method was added to :ref:`WorkspaceGroup <WorkspaceGroup>`. +Performance +----------- + +- :ref:`ChangeBinOffset <algm-ChangeBinOffset>` should now run faster for a :ref:`MatrixWorkspace <MatrixWorkspace>` (not EventWorkspaces). +- Applying ParameterMaps to Detectors now about 30% faster. Algorithms that involve applying ParameterMaps will see performance improvements. +- This release saw the introduction of the StructuredDetector. This change has reduced load times via LoadInstrument from ~10minutes down to ~0.5seconds for the prospective ESS LOKI instrument. + For more information on how to generate a StructuredDetector based instrument follow + this `link <http://docs.mantidproject.org/nightly/concepts/InstrumentDefinitionFile.html#creating-structured-irregular-geometry-detectors>`_ +- The destructors for ConvexPolygon and Quadrilateral objects are now faster, especially on Linux. + +CurveFitting +------------ + +- Concept page for :ref:`Mantid Fitting <Fitting>` has been added. +- In order to guarantee a complete overlap between resolution and signal in the region of interest, Function :ref:`Convolution <func-Convolution>` can switch between a fast FFT mode for data defined over a symmetric domain, and slower direct calculations for data defined over an asymmetric domain. + +Script Repository +----------------- + +- A bug has been fixed that caused uploads to fail with some incorrectly configured proxy servers. Algorithms ---------- @@ -37,9 +59,7 @@ New - :ref:`GetIPTS <algm-GetIPTS>` Returns the IPTS directory of the specified ORNL run. - :ref:`GSASIIRefineFitPeaks <algm-GSASIIRefineFitPeaks>` uses the GSAS-II software to refine lattice parameters (whole pattern refinement) and fit -- :ref:`ImggAggregateWavelengths <algm-ImggAggregateWavelengths>` - aggregates stacks of images from wavelength dependent imaging - into one or more output bands. +- :ref:`ImggAggregateWavelengths <algm-ImggAggregateWavelengths>` aggregates stacks of images from wavelength dependent imaging into one or more output bands. - :ref:`ImggTomographicReconstruction <algm-ImggTomographicReconstruction>` implements a method for 3D tomographic reconstruction from projection images. @@ -71,38 +91,36 @@ Improved slightly different. (An error is still produced for large deviations). By default, this is set to false, keeping the original behaviour. - `#15325 <https://github.com/mantidproject/mantid/pull/15325>`_ - :ref:`ConvertUnits <algm-ConvertUnits>` now works correctly for 'distribution' data in a :ref:`MatrixWorkspace <MatrixWorkspace>` in in-place mode (``InputWorkspace`` = ``OutputWorkspace``). - `#15489 <https://github.com/mantidproject/mantid/pull/15489>`_ - When plotting a workspace that had been normalized by bin widths, the y-axis unit label was incorrect. - An appropriate labelling has now been implemented - `#15398 <https://github.com/mantidproject/mantid/pull/15398>`_ + An appropriate labelling has now been implemented. - :ref:`SumSpectra <algm-SumSpectra>` fixed broken scaling of bins for the `WeightedSum=true` case. -- :ref:`LoadISISNexus <algm-LoadISISNexus>`now works correctly for data with non-contiguous detector IDs for either monitors or detectors. `#15562 <https://github.com/mantidproject/mantid/pull/15562>`_ -- A bug has been fixed in several algorithms where they would crash when given a :ref:`WorkspaceGroup <WorkspaceGroup>` as input (if run in the GUI). These algorithms are: `#15584 <https://github.com/mantidproject/mantid/pull/15584>`_ +- :ref:`LoadISISNexus <algm-LoadISISNexus>` now works correctly for data with non-contiguous detector IDs for either monitors or detectors. +- A bug has been fixed in several algorithms where they would crash when given a :ref:`WorkspaceGroup <WorkspaceGroup>` as input (if run in the GUI). These algorithms are: + - :ref:`AsymmetryCalc <algm-AsymmetryCalc>` - :ref:`CalMuonDetectorPhases <algm-CalMuonDetectorPhases>` - :ref:`ConvertToDistribution <algm-ConvertToDistribution>` - :ref:`ChangeTimeZero <algm-ChangeTimeZero>` - :ref:`FFT <algm-FFT>` - :ref:`MaxEnt <algm-MaxEnt>` + - :ref:`LoadNexusMonitors <algm-LoadNexusMonitors>` now allow user to choose to load either histogram monitor or event monitor only with 2 new properties (``LoadEventMonitor`` and ``LoadHistogramMonitor``). - `#15667 <https://github.com/mantidproject/mantid/pull/15667>`_ - :ref:`CreateSimulationWorkspace <algm-CreateSimulationWorkspace>` now matches the IDF of the simulation workspace to the IDF of a reference workspace (either Nexus or Raw). -- :ref:`LoadNexusProcessed <algm-LoadNexusProcessed>` now correctly reads in event data that does not have a common x-axis. `#15746 <https://github.com/mantidproject/mantid/pull/15746>`_ +- :ref:`LoadNexusProcessed <algm-LoadNexusProcessed>` now correctly reads in event data that does not have a common x-axis. - :ref:`LoadNexusLogs <algm-LoadNexusLogs>` allows now to load logs from an entry other than the first. :ref:`LoadEventNexus <algm-LoadEventNexus>` now loads the correct logs when an *NXentry* is given - :ref:`FFT <algm-FFT>`: added property *AutoShift* to enable automatic phase correction for workspaces not centred at zero. -- :ref:`SaveAscii <algm-SaveAscii2>` now has a SpectrumMetaData property that allows for addition information to be displayed along with the SpectrumNumber. Currently the supported MetaData is SpectrumNumber, Q and Angle. +- :ref:`SaveAscii <algm-SaveAscii>` now has a SpectrumMetaData property that allows for addition information to be displayed along with the SpectrumNumber. Currently the supported MetaData is SpectrumNumber, Q and Angle. - :ref:`SaveMD <algm-SaveMD>` now writes MDHisto signal arrays as compressed data. - :ref:`SetUncertainties <algm-SetUncertainties>` has two new modes, ``oneIfZero`` and ``sqrtOrOne``. - :ref:`SetSampleMaterial <algm-SetSampleMaterial>` will now work out the number density from the chemical formula and mass density if these are given in the input. A user specified number density or if Z and the unit cell volume is given will override the value calculated from the chemical formula and mass density. - :ref:`ComputeCalibrationCoefVan <algm-ComputeCalibrationCoefVan>` does not perform fit of data by itself, but requires an additional argument: ``EPPTable``. This should accelerate the data reduction workflow, because fitting results can be reused. Table with elastic peak positions can be created using the new :ref:`FindEPP <algm-FindEPP>` algorithm. -- :ref:`MonteCarloAbsorption <algm-MonteCarloAbsorption>` now supports inelastic instruments. It relies on :ref:`ConvertUnits <algm-ConvertUnits>` having set the correct EMode. `#15923 <https://github.com/mantidproject/mantid/pull/15923>`_ +- :ref:`MonteCarloAbsorption <algm-MonteCarloAbsorption>` now supports inelastic instruments. It relies on :ref:`ConvertUnits <algm-ConvertUnits>` having set the correct EMode. Deprecated @@ -110,6 +128,8 @@ Deprecated - The `UserAlgorithms` package is no longer being shipped with the Windows packages. +.. _R3.7 Vates CLI: + MD Algorithms (VATES CLI) ######################### @@ -130,32 +150,6 @@ MD Algorithms (VATES CLI) - A Gaussian smoothing option has been added to SmoothMD. Note, this currently only supports specifying widths for the smoothing function in units of pixels along the dimensions of the workspace. - LoadMD has an option to skip loading workspace history. This is useful for workspaces created form large number of files, treated separately. -Geometry --------- - -- The Instrument Definition File syntax has been extended to provide support for a new type of topologically regular, but geometrically irregular form of 2D detectors. This new type of detector available in the IDF is known as a Structured Detector. Information on how to use this new detector type can be found in the :ref:`IDF <InstrumentDefinitionFile>` documentation. -- The XML shape definitions have been updated to understand a hollow cylinder as a primitive shape. See :ref:`HowToDefineGeometricShape` for more details. - -Refactored `PeakShape` to better support arbitrary shapes. - -Performance ------------ - -- :ref:`ChangeBinOffset <algm-ChangeBinOffset>` should now run faster for a :ref:`MatrixWorkspace <MatrixWorkspace>` (not EventWorkspaces). -- Applying ParameterMaps to Detectors now about 30% faster. Algorithms that involve applying ParameterMaps will see performance improvements. -- This release saw the introduction of the StructuredDetector. This change has reduced load times via LoadInstrument from ~10minutes down to ~0.5seconds for the prospective ESS LOKI instrument. - For more information on how to generate a StructuredDetector based instrument follow - this `link <http://docs.mantidproject.org/nightly/concepts/InstrumentDefinitionFile.html#creating-structured-irregular-geometry-detectors>`_ -- The destructors for ConvexPolygon and Quadrilateral objects are now faster, especially on Linux. - -CurveFitting ------------- - -- Concept page for :ref:`Mantid Fitting <Fitting>` has been added. -- In order to guarantee a complete overlap between resolution and signal in the region of interest, Function :ref:`Convolution <func-Convolution>` can switch between a fast FFT mode for data defined over a symmetric domain, and slower direct calculations for data defined over an asymmetric domain . - -Improved -######## Python ------ @@ -170,16 +164,8 @@ Python - V3D is now iterable in Python, which makes it possible to easily construct numpy arrays like this ``np.array(V3D(1,2, 3))``. -Python Algorithms -################# -Script Repository ------------------ - -- A bug has been fixed that caused uploads to fail with some incorrectly configured proxy servers. - -| Full list of `Framework <http://github.com/mantidproject/mantid/pulls?q=is%3Apr+milestone%3A%22Release+3.7%22+is%3Amerged+label%3A%22Component%3A+Framework%22>`__ diff --git a/docs/source/release/v3.7.0/index.rst b/docs/source/release/v3.7.0/index.rst index e69eafd24ac..8ea0abd312a 100644 --- a/docs/source/release/v3.7.0/index.rst +++ b/docs/source/release/v3.7.0/index.rst @@ -4,19 +4,17 @@ Mantid 3.7.0 Release Notes ========================== -.. figure:: ../../images/ReleaseUnderConstruction.jpg +.. figure:: ../../images/VSIEllipses.png :class: screenshot - :width: 550px :align: right - Release image + Splatter plot views using translucent spheres and clearer sphere and ellipse wireframes .. contents:: Table of Contents :local: -.. warning:: This release is still under construction. The changes can be found in the nightly builds on the `download page`_. - -**TODO: Add paragraph summarizing big changes** +We are proud to announce version 3.7 of Mantid, this release contains +several improvements to the advanced visualisation and the CLI for multidimensional data. This is just one of many improvements in this release, so please take a look at the release notes, which are filled with details of the @@ -47,8 +45,8 @@ Changes .. toctree:: :titlesonly: - Framework <framework> User Interface & Usability <ui> + Framework <framework> Direct Inelastic <direct_inelastic> Indirect Inelastic <indirect_inelastic> SANS <sans> diff --git a/docs/source/release/v3.7.0/indirect_inelastic.rst b/docs/source/release/v3.7.0/indirect_inelastic.rst index a8d7692aae6..071a896b012 100644 --- a/docs/source/release/v3.7.0/indirect_inelastic.rst +++ b/docs/source/release/v3.7.0/indirect_inelastic.rst @@ -30,7 +30,7 @@ Jump Fit Diffraction ########### -- OSIRIS Diffraction DiffOnly interface and the :ref `OSIRISDiffractionReduction <algm-OSIRISDiffractionReduction>` algorithm now support the use of multiple +- OSIRIS Diffraction DiffOnly interface and the :ref:`OSIRISDiffractionReduction <algm-OSIRISDiffractionReduction>` algorithm now support the use of multiple contianer runs. Additional validation also ensures you have the same number of sample/vanadium/container runs. diff --git a/docs/source/release/v3.7.0/muon.rst b/docs/source/release/v3.7.0/muon.rst index 2ed7023f6dc..e3c05588c40 100644 --- a/docs/source/release/v3.7.0/muon.rst +++ b/docs/source/release/v3.7.0/muon.rst @@ -11,10 +11,9 @@ Interfaces Muon ALC ######## -- The default directory for the last run is now set to the same directory selected for the first run `#15524 <https://github.com/mantidproject/mantid/pull/15524>`_ -- Fixed an occasional crash seen when "Auto" was selected `#15673 <https://github.com/mantidproject/mantid/pull/15673>`_ -- Several usability fixes were made to the interface: `#16161 <https://github.com/mantidproject/mantid/pull/16161>`_ - +- The default directory for the last run is now set to the same directory selected for the first run +- Fixed an occasional crash seen when "Auto" was selected +- Several usability fixes were made to the interface: - The "Function" box was renamed "Take log value at" and moved next to the log to which it applies - The integration start time is initialised to the first good data rather than the first time bin - The choice of periods is no longer reset when a new first run is loaded @@ -22,27 +21,27 @@ Muon ALC Muon Analysis ############# -- "Load current data" now works for ARGUS `#15474 <https://github.com/mantidproject/mantid/pull/15474>`_ -- A bug was fixed where the user's choice of which group (or pair of groups) to plot was changed unexpectedly when the grouping table was updated `#15504 <https://github.com/mantidproject/mantid/pull/15504>`_ -- The "run number" field of the results table has been improved: `#15615 <https://github.com/mantidproject/mantid/pull/15615>`_ +- "Load current data" now works for ARGUS +- A bug was fixed where the user's choice of which group (or pair of groups) to plot was changed unexpectedly when the grouping table was updated +- The "run number" field of the results table has been improved: - It now shows the range of co-added runs, e.g. *15189-90*, rather than just the first one - It shows the period(s) analysed, for example *15189: 1* or *15189: 2* for one period, and *15189: 1+2-3* for a combination. - No period number is shown in the case of single-period data, or if the sum of all periods is used. - These changes can be combined, e.g. *15189-91: 1+2* -- The "Run Information" box on the Home tab has been corrected for co-added sets of runs. The information shown now applies to all runs, where previously some of it was relevant to the first only: `#15648 <https://github.com/mantidproject/mantid/pull/15648>`_ +- The "Run Information" box on the Home tab has been corrected for co-added sets of runs. The information shown now applies to all runs, where previously some of it was relevant to the first only: - *Runs* label deals with non-consecutive ranges - *Sample Temperature* and *Sample Magnetic Field* are a range if not all the same value - *Average Temperature* is calculated from all logs - *Start* and *End* are the earliest start and latest end -- When the window is resized, all widgets within the window should now resize with it. This enables the interface to be used on smaller screens. `#15382 <https://github.com/mantidproject/mantid/pull/15832>`_ -- "Plot/Remove guess" now deals correctly with the case when a new run is loaded. `#15872 <https://github.com/mantidproject/mantid/pull/15872>`_ -- When plotting data from a new run in the same window as the previous plot, previous fits now remain on the graph, to enable easy comparison between datasets. They can be removed with the "Clear fit curves" option. `#16018 <https://github.com/mantidproject/mantid/pull/16018>`_ -- A crash was fixed when loading data on Linux. `#16234 <https://github.com/mantidproject/mantid/pull/16234>`_ -- When loading a new run with a different main field direction, the correct grouping for the new field direction is now always loaded. `#16230 <https://github.com/mantidproject/mantid/pull/16230>`_ +- When the window is resized, all widgets within the window should now resize with it. This enables the interface to be used on smaller screens. +- "Plot/Remove guess" now deals correctly with the case when a new run is loaded. +- When plotting data from a new run in the same window as the previous plot, previous fits now remain on the graph, to enable easy comparison between datasets. They can be removed with the "Clear fit curves" option. +- A crash was fixed when loading data on Linux. +- When loading a new run with a different main field direction, the correct grouping for the new field direction is now always loaded. Algorithms ---------- @@ -50,25 +49,23 @@ Algorithms - :ref:`CalMuonDetectorPhases <algm-CalMuonDetectorPhases>`: speed increased by using a sequential fit. The shared frequency is found as a first step by grouping the spectra and fitting the asymmetry, then this frequency is treated as fixed in a sequential fit of all spectra individually. The grouping can be provided by the user or read automatically from - the instrument definition. `#15191 <https://github.com/mantidproject/mantid/pull/15191>`_ + the instrument definition. - :ref:`FFT <algm-FFT>`: can now be run on muon workspaces without the need to run Rebin first. This is done by setting the property AcceptXRoundingErrors to true, meaning the algorithm will accept workspaces whose bin widths differ slightly. Large deviations will still produce a warning message or, if very large, an error. - `#15325 <https://github.com/mantidproject/mantid/pull/15325>`_ -- :ref:`FFT <algm-FFT>`: added property *AutoShift* to enable automatic phase correction for workspaces not centred at zero. `#15747 <https://github.com/mantidproject/mantid/pull/15747>`_ -- :ref:`AsymmetryCalc <algm-AsymmetryCalc>`: a bug was fixed where the algorithm failed to run on input WorkspaceGroups. `#15404 <https://github.com/mantidproject/mantid/pull/15404>`_ -- :ref:`MaxEnt <algm-MaxEnt>`: MaxEnt now handles positive images `#15494 <https://github.com/mantidproject/mantid/pull/15494>`_ -- :ref:`MaxEnt <algm-MaxEnt>`: Some improvements/fixes were added (output label, X rounding errors and ability to increase the - number of points in the image and reconstructed data) `#15606 <https://github.com/mantidproject/mantid/pull/15606>`_ -- :ref:`MaxEnt <algm-MaxEnt>`: *AutoShift* property was added. As in :ref:`FFT <algm-FFT>` this property allows for automatic phase correction for workspaces not centred at zero `#16031 <https://github.com/mantidproject/mantid/pull/16031>`_ -- :ref:`LoadMuonNexus <algm-LoadMuonNexus>`: If the NeXus file (version 1) does not contain a grouping entry, or the grouping entry it contains is invalid, then the grouping will be loaded from the IDF. This enables use of such files in the ALC interface. `#16107 <https://github.com/mantidproject/mantid/pull/16107>`_ +- :ref:`FFT <algm-FFT>`: added property *AutoShift* to enable automatic phase correction for workspaces not centred at zero. +- :ref:`AsymmetryCalc <algm-AsymmetryCalc>`: a bug was fixed where the algorithm failed to run on input WorkspaceGroups. +- :ref:`MaxEnt <algm-MaxEnt>`: MaxEnt now handles positive images +- :ref:`MaxEnt <algm-MaxEnt>`: Some improvements/fixes were added (output label, X rounding errors and ability to increase the number of points in the image and reconstructed data) +- :ref:`MaxEnt <algm-MaxEnt>`: *AutoShift* property was added. As in :ref:`FFT <algm-FFT>` this property allows for automatic phase correction for workspaces not centred at zero +- :ref:`LoadMuonNexus <algm-LoadMuonNexus>`: If the NeXus file (version 1) does not contain a grouping entry, or the grouping entry it contains is invalid, then the grouping will be loaded from the IDF. This enables use of such files in the ALC interface. Fit Functions ------------- - :ref:`Keren <func-Keren>` has been added as a new fit function - Amit Keren's -generalisation of the Abragam relaxation function to a longitudinal field, -for fitting the time-dependent muon polarisation. + generalisation of the Abragam relaxation function to a longitudinal field, + for fitting the time-dependent muon polarisation. | diff --git a/docs/source/release/v3.7.0/reflectometry.rst b/docs/source/release/v3.7.0/reflectometry.rst index 54cfefc4cf0..eb0307fd1c3 100644 --- a/docs/source/release/v3.7.0/reflectometry.rst +++ b/docs/source/release/v3.7.0/reflectometry.rst @@ -8,22 +8,21 @@ Reflectometry Changes Reflectometry Instruments -------------------------- -- An updated version of the OFFSPEC IDF is now being used in mantid `#15561 <https://github.com/mantidproject/mantid/pull/15561>`_ - +- An updated version of the OFFSPEC IDF is now being used in mantid - CRISP and POLREF IDFs were causing problems in the ISIS Reflectometry (Polref) interface as they were using the `opening height` tag when defining their slits. This has now been changed to be uniform across all reflectometry instruments (INTER, POLREF, CRISP, SURF, OFFSPEC) - to `vertical gap` such that the CalculateResolution algorithm invoked by the interface will now work correctly. `#16040 <https://github.com/mantidproject/mantid/pull/16040>`_ + to `vertical gap` such that the CalculateResolution algorithm invoked by the interface will now work correctly. ConvertToReflectometryQ ----------------------- -- A bug producing dark regions in *QxQz* maps was fixed `#15321 <https://github.com/mantidproject/mantid/pull/15321>`_ +- A bug producing dark regions in *QxQz* maps was fixed ReflectometryReductionOne ------------------------- - Transmission corrections options are now applicable with both PointDetectorAnalysis and MultiDetectorAnalysis modes as long as a first - transmission workspace has been provided. `#15683 <https://github.com/mantidproject/mantid/pull/15683>`_ + transmission workspace has been provided. Reflectometry Reduction Interface --------------------------------- @@ -32,23 +31,21 @@ Reflectometry Reduction Interface custom column heading titles. Any old ReflTBL files will still work with the new algorithms (SaveTBL and LoadTBL) however any new tables created using SaveTBL will now be made with the new format. In the new format, the first line of the TBL file will contain a comma-separated list of column headings and all subsequent lines will define the data for each row. For an example this new format see here `LoadTBL <http://docs.mantidproject.org/nightly/algorithms/LoadTBL-v1.html>`_ . - `#15968 <https://github.com/mantidproject/mantid/pull/15968>`_ ISIS Reflectometry (Polref) ########################### - Bugfix: When using the ICAT search in the interface, if the wrong user credentials were entered or the login dialog was closed before the details had been entered then mantid crashed. This has been fixed. - `#15410 <https://github.com/mantidproject/mantid/pull/15410>`_ - Bugfix: When attempting to plot rows in the Processing Table, if the processing table contained a row without an associated Run Number Mantid will raise an unexpected exception. This has now been fixed resulting in a warning being shown to the user that a certain row does not - contain a Run Number. `#15820 <https://github.com/mantidproject/mantid/pull/15820>`_ + contain a Run Number. - Some changes were made to the interface as part of a code refactoring (functional behaviour remains the same). As a consequence there are some changes visible to users: a new progress bar that has been added to the *Search Runs* section, which shows the progress when transferring runs. The progress bar that existed before will only indicate the progress of processing that is - in progress. `#15670 <https://github.com/mantidproject/mantid/pull/15670>`_. A new section below the processing table has been added. It + in progress. A new section below the processing table has been added. It summarises the algorithms used in the reduction and allows users to specify global options for them. Options to be applied to invidual rows can still - be specified via the 'Options' column. User documentation has been updated accordingly `#15943 <https://github.com/mantidproject/mantid/pull/15943>`_. + be specified via the 'Options' column. User documentation has been updated accordingly. The aim of this code refactoring is to have a General Data Processor Framework shared accross different technique areas that need to execute complex batch-processing via DataProcessorAlgorithms. Standardisation across similar user interfaces will help avoid the maintenance effort involved in looking after specific user interfaces, making the wider project more robust to changes thanks to the introduction of fast, automated testing. @@ -61,7 +58,6 @@ ISIS Reflectometry - A bug has been fixed regarding the calculation of the Q range for the ISIS Reflectometry interface where constants were being added to the values of Lambda min and max causing the calculation of the Qrange to be affected. - `#15143 <https://github.com/mantidproject/mantid/pull/15143>`_ `Full list of changes on github <http://github.com/mantidproject/mantid/pulls?q=is%3Apr+milestone%3A%22Release+3.7%22+is%3Amerged+label%3A%22Component%3A+Reflectometry%22>`__ \ No newline at end of file diff --git a/docs/source/release/v3.7.0/sans.rst b/docs/source/release/v3.7.0/sans.rst index a259935fc6d..dbf75de1703 100644 --- a/docs/source/release/v3.7.0/sans.rst +++ b/docs/source/release/v3.7.0/sans.rst @@ -5,15 +5,17 @@ SANS Changes .. contents:: Table of Contents :local: +New features +------------ +- The NXcanSAS format is now supported in Mantid using the :ref:`SaveNXcanSAS <algm-SaveNXcanSAS>` and :ref:`LoadNXcansSAS <algm-LoadNXcanSAS>` algorithms. + + Bug Fixes --------- - :ref:`Q1D <algm-Q1D>`: Fix incorrect extra length for gravity correction to :math:`(L+L_{extra})^2 - L_{extra}^2` - `#15211 <https://github.com/mantidproject/mantid/pull/15211>`_ -- Select the IDF based on the workspace which is being loaded. Previously the IDFs were hardcoded. Now the correct IDF is dynamically loaded. - `#14918 <https://github.com/mantidproject/mantid/pull/14918>`_ -- Implement the SaveNXcanSAS and LoadNXcansSAS which allow for loading and saving reduced 1D and 2D data into the NXcanSAS format. - `#15925 <https://github.com/mantidproject/mantid/pull/15925>`_ +- Select the IDF based on the workspace which is being loaded. Previously the IDFs were hardcoded. This solves a bug were the wrong IDF was sometimes used. + | `Full list of changes on github <http://github.com/mantidproject/mantid/pulls?q=is%3Apr+milestone%3A%22Release+3.7%22+is%3Amerged+label%3A%22Component%3A+SANS%22>`__ diff --git a/docs/source/release/v3.7.0/ui.rst b/docs/source/release/v3.7.0/ui.rst index 0900198f7e4..ad1147fb3ee 100644 --- a/docs/source/release/v3.7.0/ui.rst +++ b/docs/source/release/v3.7.0/ui.rst @@ -5,15 +5,6 @@ UI & Usability Changes .. contents:: Table of Contents :local: -Installation ------------- - -Windows -####### - -OS X -#### - User Interface -------------- @@ -37,8 +28,35 @@ Line plots ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - For single-spectrum data, the choice of spectrum number to plot has been disabled because it has only one possible answer. +SliceViewer Improvements +######################## + +- The SliceViewer is now able to display ellipsoidal peak shapes. Note + that the displayed ellipse is the result of the viewing plane cutting + the peak ellipsoid. + +.. figure:: ../../images/Elliptical_peaks_slice_viewer.png + :align: center + +VSI Improvements +################ + +- The representation of points in the splatter plot was changed from opaque cubes to translucent spheres. + +.. figure:: ../../images/VSIPointGaussianRepresentation.png + :align: center + +- The sphere and ellipse wireframes have been simplified so that it is easier to see the enclosed points. + +.. figure:: ../../images/VSIEllipses.png + :align: center + +- Removed the error-prone right-click option to view peaks workspaces in the VSI. One should load a MDWorkspace, + then drag the corresponding peaks workspace into the VSI window. + + Instrument View -############### +--------------- - The instrument view is now exposed to python as a stand-alone widget. In it's current implementation, the instrument view depends on the @@ -95,17 +113,14 @@ Instrument View ConfigService.setFacility(facility) -Algorithm Toolbox -################# - Scripting Window -################ +---------------- - If `MantidPlot` was launched with the `-x` option but the script was already opened by the recent files list then the wrong script would be executed. This bug has been fixed. `#15682 <https://github.com/mantidproject/mantid/issue/15682>`_ Documentation -############# +------------- - Documentation has been added for fitting functions :ref:`BSpline <func-BSpline>` and :ref:`CubicSpline <func-CubicSpline>` then attempts to be more verbose about their use and how to @@ -144,33 +159,7 @@ Bugs Resolved - The Fit property browser (Fit Function window) in MantidPlot now supports fitting data plotted from a TableWorkspace. -SliceViewer Improvements ------------------------- - -- The SliceViewer is now able to display ellipsoidal peak shapes. Note - that the displayed ellipse is the result of the viewing plane cutting - the peak ellipsoid. - -.. figure:: ../../images/Elliptical_peaks_slice_viewer.png - :align: center - -VSI Improvements ----------------- - -- The representation of points in the splatter plot was changed from opaque cubes to translucent spheres. - -.. figure:: ../../images/VSIPointGaussianRepresentation.png - :align: center - -- The sphere and ellipse wireframes have been simplified so that it is easier to see the enclosed points. - -.. figure:: ../../images/VSIEllipses.png - :align: center - -- Removed the error-prone right-click option to view peaks workspaces in the VSI. One should load a MDWorkspace, - then drag the corresponding peaks workspace into the VSI window. -| Full list of `GUI <http://github.com/mantidproject/mantid/pulls?q=is%3Apr+milestone%3A%22Release+3.7%22+is%3Amerged+label%3A%22Component%3A+GUI%22>`_ diff --git a/scripts/Calibration/tube.py b/scripts/Calibration/tube.py index 14974783a91..af37d207e73 100644 --- a/scripts/Calibration/tube.py +++ b/scripts/Calibration/tube.py @@ -16,20 +16,20 @@ Among the examples, inside the :py:mod:`Examples` folder, the user is encouraged * :py:func:`~Examples.TubeCalibDemoMaps_All.minimalInput` shows the easiest way to use calibrate. * :py:func:`~Examples.TubeCalibDemoMaps_All.provideTheExpectedValue` shows the usage of **fitPar** parameter to provide -the expected values for the peaks in pixels. + the expected values for the peaks in pixels. * :py:func:`~Examples.TubeCalibDemoMaps_All.changeMarginAndExpectedValue` demonstrate how to use **margin**, **fitPar**, - **plotTube**, and **outputPeak** + **plotTube**, and **outputPeak** * :py:func:`~Examples.TubeCalibDemoMaps_All.improvingCalibrationSingleTube` explores the usage of **rangeList** and -**overridePeaks** to improve the calibration of specific tubes. + **overridePeaks** to improve the calibration of specific tubes. * :py:func:`~Examples.TubeCalibDemoMaps_All.improvingCalibrationOfListOfTubes` extends theimprovingCalibrationSingleTube -to provide a good calibration to almost all instrument. + to provide a good calibration to almost all instrument. * :py:func:`~Examples.TubeCalibDemoMaps_All.calibrateB2Window` explore a singularity of the MAP14919 example, where the -second peak does not appear clear on some tubes inside one door. So, this example, shows how to use **rangeList** to -carry a calibration to the group of tubes. + second peak does not appear clear on some tubes inside one door. So, this example, shows how to use **rangeList** to + carry a calibration to the group of tubes. * :py:func:`~Examples.TubeCalibDemoMaps_All.completeCalibration` demonstrate how the **rangeList**, **overridePeaks**, -may be used together to allow the calibration of the whole instrument, despite, its particularities in some cases. + may be used together to allow the calibration of the whole instrument, despite, its particularities in some cases. * :py:func:`~Examples.TubeCalibDemoMaps_All.findThoseTubesThatNeedSpecialCareForCalibration` show an aproach to find the -tubes that will require special care on calibrating. It will also help to find detectors that are not working well. + tubes that will require special care on calibrating. It will also help to find detectors that are not working well. ======== Examples @@ -617,7 +617,7 @@ def savePeak(peakTable, filePath): savePeak(peakTable, 'myfolder/myfile.txt') :param filePath: where to save the file. If the filePath is not given as an absolute path, it will be considered - relative to the defaultsave.directory. + relative to the defaultsave.directory. The file will be saved with the following format: -- GitLab