|
PROGRAM LIBRARY JINRLIBFITTER_WEB is a program for fitting data obtained on a small-angle neutron scattering spectrometer, implemented as a Web applicationAuthors: A.G.Soloviev, T.M.Solovjeva |
|
Language: C++, JavaScript
The FITTER_WEB [1] program is designed to fit experimental data with a selected theoretical multi-parameter function. Software development modern trends often imply a wider use of Web technologies. Thanks to them, the user has much more powerful computing resources than in the case of using local programs. The user in this case receives a uniform interface, independent of his operating system. This project is a continuation of the FITTER program developed for the analysis of information obtained at the YuMO facility located on the 4th channel of the IBR-2 pulsed reactor at FLNP JINR. A feature of the FITTER_WEB program is the fit using the resolution function. It implements the theoretical SANS models, in which the shape of the particles is approximated by simple geometric bodies - balls, ellipsoids, cylinders, prisms. It is taken into account that the molecules of one polymer sample have different molecular weights and sizes, that is, they represent a polydisperse system. In addition, some standard mathematical models have been added for wider applicability. To optimize the fitting process, the application uses implicit multithreading and function vectorization built into the ROOT package. To apply implicit multithreading when editing the program code of a model function on your own, you must call the ROOT::EnableImplicitMT(nthreads) method, where nthreads is the number of threads. If the model function can be implemented through the TFormula class, then the TF1 method should be called to vectorize it::SetVectorized(“true”). The program uses JSROOT, a framework that links JavaScript and the ROOT package, designed to process the results of high energy physics experiments. The theoretical functions implemented in FITTER are present in the new application in the form of ROOT scripts. The user can edit this script or create a new one that meets his specific task. Experimental data is loaded as an ASCII file containing at least three columns - X, Y, ΔY. For theoretical models that use the resolution function, a fourth column, ΔX, is needed. The Web interface provides the user with the ability to fit in a given range, select the minimization method and a specific algorithm for fitting, as well as a number of other parameters. To minimize the functional, which is a measure of the deviation of the theoretical curve from the experimental data, the MINUIT optimization algorithms library, which is part of the ROOT package, is used. When implementing the interface, the component included in the ROOT distribution, FitPanel, was used. The fitting process is controlled on the console, and its result is displayed on the ROOT Canvas, which are represented by separate tabs of the Web window. The result of fitting can be saved as text files containing theoretical function values and fitting parameters, as well as an image.
FITTER_WEB's main window The FITTER_WEB application is available at http://fitter.jinr.ru.References:
|