ROOT — объектно-ориентированная компьютерная программа и библиотека, разработанная CERN . Первоначально он был разработан для анализа данных физики элементарных частиц и содержит несколько функций, специфичных для этой области, но он также используется в других приложениях, таких как астрономия и интеллектуальный анализ данных . Последний второстепенный выпуск — 6.28 от 3 февраля 2023 г. [3]
ЦЕРН в течение многих лет поддерживал библиотеку программ ЦЕРН , написанную на ФОРТРАНЕ . Его разработка и поддержка были прекращены в 2003 году в пользу ROOT, написанного на языке программирования C++ . Разработка ROOT была инициирована Рене Брюном и Фонсом Радемакерсом в 1994 году. Некоторые части публикуются под лицензией GNU Lesser General Public License (LGPL), а другие основаны на программном обеспечении GNU General Public License (GPL) и, таким образом, также публикуются на условиях лицензия GPL. Он обеспечивает независимый от платформы доступ к графической подсистеме компьютера и операционной системе с использованием абстрактных слоев . Частями абстрактной платформы являются: графический интерфейс пользователя и построитель GUI , классы контейнеров, отражение , сценарий C++ и интерпретатор командной строки ( CINT в версии 5, cling в версии 6), сериализация и персистентность объектов .
Пакеты, предоставляемые ROOT, включают пакеты для
Ключевой особенностью ROOT является контейнер данных, называемый деревом , с его подструктурами, ветвями и листьями . Дерево можно рассматривать как скользящее окно с необработанными данными, хранящимися в файле. Данные из следующей записи в файле можно получить, продвигая индекс в дереве. Это позволяет избежать проблем с распределением памяти, связанных с созданием объектов, и позволяет дереву действовать как легковесный контейнер, незаметно обрабатывая буферизацию.
ROOT рассчитан на высокую вычислительную эффективность , так как требуется для обработки данных экспериментов Большого адронного коллайдера , оцениваемых в несколько петабайт в год. По состоянию на 2009 год [обновлять]ROOT в основном используется для анализа и сбора данных в экспериментах по физике элементарных частиц (физике высоких энергий), и большинство текущих [обновлять]экспериментальных графиков и результатов в этих подобластях получены с использованием ROOT.
Включение интерпретатора C++ ( CINT до версии 5.34, Cling с версии 6.00) делает этот пакет очень универсальным, поскольку его можно использовать в интерактивном, скриптовом и скомпилированном режимах аналогично коммерческим продуктам, таким как MATLAB .
4 июля 2012 года эксперименты ATLAS и CMS LHC представили статус поиска Хиггса по Стандартной модели. Во всех графиках данных, представленных в тот день, использовался ROOT.
Несколько коллабораций в области физики элементарных частиц написали программное обеспечение на основе ROOT, часто предпочитая использовать более общие решения (например, использование контейнеров ROOT вместо STL ).
Критика ROOT включает в себя его сложность для новичков, а также различные аспекты его разработки и реализации. Частые причины разочарования включают чрезмерное раздувание кода , интенсивное использование глобальных переменных [4] и слишком сложную иерархию классов. Время от времени эти вопросы обсуждаются в списке рассылки пользователей ROOT. [5] [6] Хотя учёным, недовольным ROOT, в прошлом удавалось обойти его недостатки, [7] некоторые недостатки регулярно устраняются командой ROOT. Интерпретатор CINT, например, был заменен интерпретатором Cling [8] , и в каждом выпуске исправляются многочисленные ошибки.