\(\renewcommand\AA{\unicode{x212B}}\)
DiffractionEventCalibrateDetectors v1¶

DiffractionEventCalibrateDetectors dialog.¶
Summary¶
This algorithm optimizes the position and angles of all of the detector panels. The target instruments for this feature are SNAP and TOPAZ.
See Also¶
Properties¶
Name |
Direction |
Type |
Default |
Description |
---|---|---|---|---|
InputWorkspace |
Input |
Mandatory |
The workspace containing the geometry to be calibrated. |
|
Params |
Input |
string |
A comma separated list of first bin boundary, width, last bin boundary. Optionally this can be followed by a comma and more widths and last boundary pairs. Use bin boundaries close to peak you wish to maximize. Negative width values indicate logarithmic binning. |
|
MaxIterations |
Input |
number |
10 |
Stop after this number of iterations if a good fit is not found |
LocationOfPeakToOptimize |
Input |
number |
2.0308 |
Optimize this location of peak by moving detectors |
DetCalFilename |
Input |
string |
Mandatory |
The output filename of the ISAW DetCal file. Allowed extensions: [‘.detcal’] |
BankName |
Input |
string |
Optional: To only calibrate one bank. Any bank whose name does not match the given string will have no events. |
Description¶
Moves the detectors in an instrument to optimize the maximum intensity of each detector using gsl_multimin_fminimizer_nmsimplex. Only bin data close to peak you wish to maximize.
Usage¶
Example: move detectors to maximize intensity
import os
ws = CreateSampleWorkspace("Event",NumBanks=1,BankPixelWidth=1)
ws = MoveInstrumentComponent(Workspace='ws', ComponentName='bank1', X=0.5, RelativePosition=False)
wsD = ConvertUnits(InputWorkspace='ws', Target='dSpacing')
maxD = Max(wsD)
#Peak is at 2.69 in dSpace
DiffractionEventCalibrateDetectors(InputWorkspace='ws', Params = "2.6, 0.001, 2.8",
LocationOfPeakToOptimize=2.67, BankName="bank1", DetCalFilename="Test.DetCal")
LoadIsawDetCal(InputWorkspace='ws',Filename=os.path.join(config["defaultsave.directory"], 'Test.DetCal'))
ws = ConvertUnits(InputWorkspace='ws', Target='dSpacing')
maxA = Max(ws)
print("Peak in dSpace {:.11f}".format(0.5*(maxD.readX(0)[0]+maxD.readX(0)[1])))
print("Peak from calibration {:.11f}".format(0.5*(maxA.readX(0)[0]+maxA.readX(0)[1])))
Output:
Peak in dSpace 2.6...
Peak from calibration 2.6...
Categories: AlgorithmIndex | Diffraction\Calibration | CorrectionFunctions\InstrumentCorrections
Source¶
C++ header: DiffractionEventCalibrateDetectors.h
C++ source: DiffractionEventCalibrateDetectors.cpp