|
БИБЛИОТЕКА ПРОГРАММ JINRLIBFITTER_WEB - программа для фитирования данных, |
|
Язык: C++, JavaScript
Программа FITTER_WEB [1] предназначена для фитирования экспериментальных данных выбранной теоретической многопараметрической функцией. Современные тенденции развития программного обеспечения часто подразумевают более широкое использование Web-технологий. Благодаря им в распоряжении пользователя оказываются гораздо более мощные вычислительные ресурсы, нежели в случае использования локальных программ. Пользователь в таком случае получает единый интерфейс, независимый от его операционной системы. Данный проект является продолжением программы FITTER, разработанной для анализа информации, полученной на установке ЮМО, расположенной на 4-ом канале импульсного реактора ИБР-2 ЛНФ ОИЯИ. Особенностью программы FITTER_WEB является подгонка с использованием функции разрешения. В ней реализованы теоретические модели SANS, в которых форма частиц аппроксимируется простыми геометрическими телами – шарами, эллипсоидами, цилиндрами, призмами. Учитывается, что молекулы одного образца полимера имеют разную молекулярную массу и размеры, то есть представляют собой полидисперсную систему. Кроме того, для более широкой применимости добавлены некоторые стандартные математические модели. Для оптимизации процесса фитирования в приложении используются встроенные в пакет ROOT неявная многопоточность и векторизация функций. Для применения неявной многопоточности при самостоятельном редактировании программного кода модельной функции необходимо вызвать метод ROOT::EnableImplicitMT(nthreads), где nthreads – число потоков. Если модельная функция допускает реализацию через класс TFormula, то для ее векторизации следует вызвать метод TF1::SetVectorized(“true”). Программа использует JSROOT - фреймворк, связывающий JavaScript и пакет ROOT, разработанный для обработки результатов экспериментов физики высоких энергий. Реализованные в FITTER теоретические функции присутствуют в новом приложении в виде ROOT-скриптов. Пользователь может редактировать данный скрипт или создать новый, отвечающий его конкретной задаче. Экспериментальные данные загружаются в виде ASCII файла, содержащего как минимум три колонки – X, Y, ΔY. Для теоретических моделей, использующих функцию разрешения, необходима четвертая колонка – ΔX. Web-интерфейс предоставляет пользователю возможность фитирования в заданном диапазоне, выбор метода минимизации и конкретного алгоритма для фитирования, а также ряда других параметров. Для минимизации функционала, который является мерой отклонения теоретической кривой от экспериментальных данных, применяется библиотека алгоритмов оптимизации MINUIT, которая входит в состав пакета ROOT. При реализации интерфейса был использован входящий в дистрибутив ROOT компонент – FitPanel. Контроль процесса фитирования осуществляется на консоли, а его результат отображается на ROOT Canvas, которые представлены отдельными вкладками Web-окна. Результат фитирования может быть сохранен в виде текстовых файлов, содержащих значения теоретической функции и параметры фитирования, а также в виде изображения.
Графический интерфейс FITTER_WEB Приложение FITTER_WEB доступно по адресу http://fitter.jinr.ru. Литература:
|