\(\renewcommand\AA{\unicode{x212B}}\)

IndexPeaks v1

../_images/ImageNotFound.png

Enable screenshots using DOCS_SCREENSHOTS in CMake

Summary

Index the peaks using the UB from the sample. Leave MaxOrder at default value 0 to get this value, and ModVectors (unless overridden) from the sample.

See Also

IndexSXPeaks

Properties

Name

Direction

Type

Default

Description

PeaksWorkspace

InOut

IPeaksWorkspace

Mandatory

Input Peaks Workspace

Tolerance

Input

number

0.15

Main peak indexing tolerance

ToleranceForSatellite

Input

number

0.15

Satellite peak indexing tolerance

RoundHKLs

Input

boolean

True

Round H, K and L values to integers

CommonUBForAll

Input

boolean

False

Index all orientations with a common UB

ModVector1

Input

dbl list

0,0,0

Modulation Vector 1: dh, dk, dl

ModVector2

Input

dbl list

0,0,0

Modulation Vector 2: dh, dk, dl

ModVector3

Input

dbl list

0,0,0

Modulation Vector 3: dh, dk, dl

MaxOrder

Input

number

0

Maximum order to apply Modulation Vectors. Default = 0

CrossTerms

Input

boolean

False

Include combinations of modulation vectors in satellite search

SaveModulationInfo

Input

boolean

False

If true, update the OrientedLattice with the maxOrder, modulation vectors & cross terms values input to the algorithm

NumIndexed

Output

number

Gets set with the number of indexed peaks.

AverageError

Output

number

Gets set with the average HKL indexing error.

MainNumIndexed

Output

number

Gets set with the number of indexed main peaks.

SateNumIndexed

Output

number

Gets set with the number of indexed main peaks.

MainError

Output

number

Gets set with the average HKL indexing error of Main Peaks.

SatelliteError

Output

number

Gets set with the average HKL indexing error of Satellite Peaks.

Description

Given a PeaksWorkspace with a UB matrix stored with the sample, this algorithm will use UB inverse to index the peaks. If there are peaks from multiple runs in the workspace, the stored UB matrix will be used to get an initial indexing for the peaks from each individual run. Subsequently, a temporary UB matrix will be optimzed for the peaks from each individual run, and used to index the peaks from that run. In this way, a consistent indexing of the peaks from multiple runs will be obtained, which indexes the largest number of peaks, although one UB matrix may not produce exactly that indexing for all peaks, within the specified tolerance.

To not optimize the UB for each run, use the option, CommonUBForAll. In this case, the same UB stored in the workspace will be used to index all the peaks with no optimization.

Any peak with any Miller index more than the specified tolerance away from an integer will have its (h,k,l) set to (0,0,0). The calculated Miller indices can either be rounded to the nearest integer value, or can be left as decimal fractions.

Usage

Example - a simple example of IndexPeaks

Note

To run these usage examples please first download the usage data, and add these to your path. In Mantid this is done using Manage User Directories.

# Load Peaks found in SXD23767.raw
Load(Filename='SXD23767.peaks',OutputWorkspace='peaks_qLab')

#Set orientated lattice
ubMatrix = [-0.06452276,  0.2478114,  -0.23742194, 0.29161678, -0.00914316, -0.12523779, 0.06958942, -0.1802702,  -0.14649001]
SetUB('peaks_qLab',UB=ubMatrix)

# Run Algorithm
indexed =IndexPeaks(PeaksWorkspace='peaks_qLab',Tolerance=0.12,RoundHKLs=1)

print("Number of Indexed Peaks: {:d}".format(indexed[0]))

Output:

Number of Indexed Peaks: 147

Source

C++ header: IndexPeaks.h

C++ source: IndexPeaks.cpp