$$\renewcommand\AA{\unicode{x212B}}$$

# Framework Changes¶

## Instrument Definitinons¶

• The reference frame in IDF can now be customized in terms of setting the axis defining the 2theta sign.

• The detector efficiency correction formulas for ILL’s IN4, IN5 and IN6 spectrometers have been revised. IN4 has now separate formulas for the low and large angle detectors while the previously incorrect IN5 and IN6 formulas were fixed.

## Algorithms¶

### Improved¶

• ConvertSpectrumAxis is extended to support conversion to elastic d-spacing.

• SumSpectra: Fixed a bug where a wrong fallback value would be used in case of invalid values being set for min/max worspace index, and improved input validation for those properties.

• SetUncertainties now provides a “custom” mode, which lets the user specify both an arbitrary error value whose occurrences are to be replaced in the input workspace, as well as the value to replace it with.

• LoadBBY is now better at handling sample information.

• ConjoinWorkspaces provides option to change Y axis unit and label.

• FilterEvents has refactored on splitting sample logs.

• FilterEvents now copies units for the logs in the filtered workspaces

• GroupDetectors now supports workspaces with detector scans.

• FindPeaksMD now allows users to normalize by the number of events. This can improve results for data that was originally based on histogram data which has been converted to event-mode.

• FindSXPeaks now finds all peaks in each spectrum. It also allows for setting more fine-grained resolutions and takes into account any goniometer set on the workspace.

• SimpleShapeMonteCarloAbsorption has been added to simplify sample environment inputs for MonteCarloAbsorption

• IntegreatePeaksMD makes the culling of the top one percent of the background events optional.

• IntegrateEllipsoids has the culling of the top one percent of the background events now as an optional input.

• IntegrateEllipsoidsTwoStep has the culling of the top one percent of the background events now as an optional input.

• IntegreatePeaksMD makes the culling of the top one percent of the background events optional.

• Load now supports use of tilde in file paths in Python, for example Load(Filename=”~/data/test.nxs”, …)

• LoadBBY is now better at handling sample information.

• MonteCarloAbsorption has had several improvements:

• It now supports approximating the input instrument with a sparse grid of detectors enabling quick simulation of huge pixel arrays.

• The NumberOfWavelengthPoints input property is now validated more rigorously.

• A new MaxScatterPtAttempts input has been added to control how many tries are made to generate a random point in the object. Useful for cases such as thin annuli that require a higher number of tries. The previous version was hard coded internally.

• SaveGSS now supports saving in the legacy GSAS ALT format. This is useful for older tools however the default format FXYE should be used whenever possible.

• SaveMDWorkspaceToVTK and LoadVTK algorithms are now accessible from python.

• MergeRuns will now merge workspaces with detector scans.

• SetUncertainties now provides a “custom” mode, which lets the user specify both an arbitrary error value whose occurrences are to be replaced in the input workspace, as well as the value to replace it with.

• SimpleShapeMonteCarloAbsorption has been added to simplify sample environment inputs for MonteCarloAbsorption

• SumSpectra: Fixed a bug where a wrong fallback value would be used in case of invalid values being set for min/max worspace index, and improved input validation for those properties.

• LoadBBY: Fixed bug where the logManager did not work with sample_name, sample_aperture and source_aperture. Also added more information regarding the sample and the selected choppers.

• ConvertSpectrumAxis: Added an option to disable the sorting of the resulting axis making it useful especially for scanning workspaces. Also reduced the complexity of the operation for the default (ordered axis) case from Nˆ2 to N.

• MSDFit now supports model selection. Currently has the option of 3 models: MsdGauss, MsdPeters and MsdYi.

• LineProfile v1: Fixed a bug which could cause crashes when the line extended over the right or bottom edge of a workspace.

• Mean v1: Added error messages if the data is not appropriate.

• LoadLiveData v1: Fixed a bug affecting Live Data Processing in “Replace” mode. The bug meant that changes to Instrument position/rotation were overwritten by defaults on every load. Now fixed so that Instrument state is persistent across loads.

• CalMuonDetectorPhasees now fits a cos instead of a sin function.

## Performance¶

• Performance of UB indexing routines addressed. FindUBUsingLatticeParameters running 2x faster than before.

• Several changes to the core of how instrument geometry is stored and accessed. These changes have resulted in a few noteworthy performance improvements.

• The LoadNexusMonitors algorithm has improved by 30%.

• The ConvertSpectrumAxis algorithm has improved by 8%.

## Core functionality¶

• The IndexProperty has been added to the list of property types.

• The blocksize() of a workspace now throws an exception if the number of bins is not constant. size() has been modified to the sum of the number of bins in each Histogram.

## CurveFitting¶

### New¶

• PrimStretchedExpFT Provides the Fourier Transform of the Symmetrized Stretched Exponential Function integrated over each energy bin. Use in place of StretchedExpFT for fitting sample data featuring relaxation times longer than the resolution of the instrument.

• GramCharlier is a new fit function primarily for use in neutron compton scattering.

• SplineInterpolation is extended to support also linear interpolation, if only 2 points are given.

### Improved¶

• Fit outputs a function object containing the optimized parameter values. See the usage examples for more detail.

• CubicSpline is fixed to sort the y-values and x-values correctly.

• Fix displayed type name for optional boolean properties.

• Fix parameters that are tied to functions can now be untied correctly.

• Table workspaces do not have the values changed by viewing them (no rounding).

## Python¶

### Python Algorithms¶

• Exposed StringContainsValidator to python to enable python algorithms to place requirement on input string to contain certain substrings.

### Bugfixes¶

• MatchPeaks is fixed to not to leave temporary hidden workspaces behind.

• Fix a bug where Mantid could crash when trying to update live data if the network connection is lost.

### Python Fit Functions¶

• A bug that makes it difficult to define and use attributes in python fit functions has been fixed.

• The usability of the fit functions has been improved, enabling users to construct and modify the functions as objects rather than strings as described here.

Full list of Framework and Python changes on GitHub