The convolution fitter finds the best least-squares fit of one or several free parameters in an S(q,w) model using a Monte-Carlo convolution approach. The S(q,w) model is fitted to one or more given measurement data files.
The fitter is called on the command-line by: "convofit my_fit.job" The input job file "my_fit.job" in this example has the following structure:
Calling "convofit" without command-line arguments shows its global options.
; convofit sample job file
; input files
input
{
; file with the TAS scan
scan_file "my_measurement.dat"
; temperature column in the scan file
temp_col "Ts"
; field column in the scan file
field_col "Bs"
; counter column in the scan file
counts_col "ctr1"
; monitor counter column in the scan file
monitor_col "mon2"
; normalise detector counts to monitor counts
norm_to_monitor 1
; manually set scan variable
;scan_axis "E"
; overrides
;temp_override "25"
;field_override "0.5"
; the instrument definition created by
; the Takin resolution parameter dialog
instrument_file "my_instrument.taz"
; which S(q,w) model to use?
sqw_model "py"
; S(q,w) input file. Here, a Python script
sqw_file "my_sqw.py"
; how is the temperature/field variable named
; the S(q,w) model? Here, "g_T" and "g_H" are
; global variables in the "my_sqw.py" script.
sqw_temp_var "g_T"
sqw_field_var "g_H"
; fix some variables in the S(q,w) model
sqw_set_params "g_my_param = 12.3"
; flip the sense of the coordinate system
flip_lhs_rhs 0
}
; output files
output
{
; a simplified copy of the original scan file for easier reading
; in an external plot program
scan_file "my_scan.dat"
; a file describing the fit results
model_file "my_model.dat"
; logs
log_file "my_log.dat"
; show a plot at the end of the fit
plot 1
; show live plots during fitting (very useful for debugging)
; gnuplot has to be installed for this to work
; (see "Set-up" section of this manual)
plot_intermediate 1
; specify an available gnuplot terminal
; list all available terminals using: gnuplot -e "set term"
; typically use: "x11", "qt", or "wxt"
; if no plot window appears, this is set to the wrong value!
plot_term "x11 noraise"
}
; includes a fit settings file (see below)
#include "my_settings.job"
; convofit sample fit settings file
; Monte-Carlo settings
montecarlo
{
; number of Monte-Carlo neutrons
neutrons 10000
; perform a secondary convolution of the sample shape (still beta)
sample_positions 1
; keep the same random seed for more stability
recycle_neutrons 1
}
; Resolution algo settings
resolution
{
; which algorithm to use?
algorithm "eck" ; "cn", "pop", "eck", or "viol"
; include the "resolution volume" prefactor?
use_r0 1
; use optimum vertical/horizontal monochromator/analyser focusing?
focus_mono_v 1
focus_mono_h 0
focus_ana_v 0
focus_ana_h 1
}
; Fitter settings
fitter
{
; do a convolution fit or just a plain convolution
; using the initial values?
do_fit 1
; which minimiser to use?
minimiser "simplex" ; "simplex" or "migrad"
; which Minuit strategy?
strategy 1 ; 0 (low), 1 (medium) or 2 (high)
; number of maximum function calls
max_funccalls 500
; Minuit's targeted "estimated distance to minimum"
tolerance 10.
sigma 1.
}
; which S(q,w) model parameters should be fitted?
; don't remove "scale", "slope" or "offs"!
fit_parameters
{
; the fit parameters: "scale", "slope" and "offs" are internal variables,
; "g_linewidth" is a parameter in the S(q,w) model. In this example,
; it is a global name in the "my_sqw.py" script.
params "scale " \
"slope " \
"offs " \
"g_linewidth "
; initial values of the three parameters
values "1e9 " \
"0 " \
"1e-6 " \
"0.02 "
; errors of the three parameters
errors "0.5e9 " \
"0 " \
"0.5e-6 " \
"0.01 "
; which parameters should be fitted?
; here, the fourth parameter, i.e. g_linewidth, is the only
; fit parameter
fixed "1 1 1 0 "
}