Программный пакет ROOT
ROOT - пакет объектно-ориентированных программ и библиотек, разработанных в Европейском центре ядерных исследований. Пакет был разработан специально для использования в качестве платформы обработки экспериментальных данных физики высоких энергий и содержит специфичные для этой области продукты, однако также может быть использованы для анализа других данных, например, в астрономии. ROOT имеет графический интерфейс пользователя, классы-контейнеры, скриптовый язык на основе C++, командный интерпретатор (CINT), систему долговременного сохранения данных.
Научные инструменты и компьютерное имитационное моделирование порождают громадные объемы данных, для анализа и организации которых требуются новые научные методы. Каждый год объемы данных почти удваиваются. Поскольку новые научные инструменты обладают исключительной точностью, так же быстро улучается качество данных. Для анализа этих данных с целью нахождения тонких эффектов, упущенных в предыдущих исследованиях, требуются алгоритмы, которые одновременно могут работать с огромными наборами данных и обнаруживать при этом очень тонкие эффекты. В настоящее время ROOT стал практически стандартом программного обеспечения для современных ускорительных экспериментов.
Пакеты, включённые в ROOT, содержат:
- средства для создания гистограмм и графиков функций для визуализации и анализа вероятностных распределений и функций;
- средства «подгонки» (фитирования) теоретических кривых под экспериментальные данные и минимизации функций (для подборки наиболее простой зависимости, описывающей экспериментальные данные);
- инструменты статистического анализа;
- инструменты матричной алгебры;
- средства для четырёхвекторных вычислений (четырёхмерное пространство Минковского удобно применяется в физике высоких энергий);
- стандартные математические функции;
- инструменты многовариантного анализа данных, в частности использование нейронных сетей;
- средства обработки изображений, используемые, например, для анализа астрономических снимков;
- средства доступа к распределённым данным (в контексте таблиц баз данных);
- инструменты распределённых вычислений, параллелизации обработки данных;
- средства сериализации и долговременного сохранения объектов;
- инструменты доступа к базам данных;
- средства геометрической 3D-визуализации;
- инструменты для создания файлов в различных графических форматах, таких как PostScript, JPEG, SVG;
- двусторонние интерфейсы к языкам Python и Ruby (возможно использование средств ROOT для кода на Python или Ruby и использование модулей, написанных на Python или Ruby, в ROOT);
- интерфейсы к генераторам Монте-Карло событий физики элементарных частиц.