ROOT (ROOT)
ROOT | |
---|---|
| |
Тип | Анализ данных |
Автор | ЦЕРН |
Разработчик | CERN |
Написана на | C++ |
Операционная система | Cross-platform |
Первый выпуск | 1995[1] |
Аппаратные платформы | IA-32[3] и x86-64[3] |
Последняя версия | |
Репозиторий | github.com/root-project/… |
Лицензия | LGPL/GPL |
Сайт | root.cern.ch |
Медиафайлы на Викискладе |
ROOT — пакет объектно-ориентированных программ и библиотек, разработанных в Европейском центре ядерных исследований. Пакет был разработан специально для использования в качестве платформы обработки экспериментальных данных физики высоких энергий и содержит специфичные для этой области продукты, однако также может быть использованы для анализа других данных, например, в астрономии.
Описание
[править | править код]CERN поддерживал свою программную библиотеку, написанную на языке Фортран 77; разработка и поддержка была прекращена в 2003 году в пользу ROOT, написанного на C++.
Разработка ROOT была инициирована сотрудниками CERNа Рене Брюном и Фонсом Рэйдмэйкерсом в 1994 году. Некоторые части пакета опубликованы под лицензией LGPL, некоторые — под GPL, таким образом весь проект базируется на свободном программном обеспечении. Он предоставляет кроссплатформенный интерфейс к графической подсистеме и операционной системе используя механизмы абстракции данных. Частями абстрактной платформы являются:
- графический интерфейс пользователя,
- графический интерфейс разработки,
- классы-контейнеры,
- система средств самоизменения программ,
- скриптовый язык на основе C++,
- командный интерпретатор (CINT),
- система сериализации объектов,
- система долговременного сохранения данных (persistence ).
Пакеты, включённые в ROOT, содержат:
- средства для создания гистограмм и графиков функций для визуализации и анализа вероятностных распределений и функций;
- средства «подгонки» (фитирования) теоретических кривых под экспериментальные данные и минимизации функций (для подборки наиболее простой зависимости, описывающей экспериментальные данные);
- инструменты статистического анализа;
- инструменты матричной алгебры;
- средства для четырёхвекторных вычислений (четырёхмерное пространство Минковского удобно применяется в физике высоких энергий);
- стандартные математические функции;
- инструменты многовариантного анализа данных, то есть использования нейронных сетей;
- средства обработки изображений, используемые, например, для анализа астрономических снимков;
- средства доступа к распределённым данным (в контексте таблиц баз данных);
- инструменты распределённых вычислений, параллелизации обработки данных;
- средства сериализации и долговременного сохранения объектов;
- инструменты доступа к базам данных;
- средства геометрической 3D-визуализации;
- инструменты для создания файлов в различных графических форматах, таких как PostScript, JPEG, SVG;
- двусторонние интерфейсы к языкам Python и Ruby (возможности использования средств ROOT из кода на Python или Ruby и использование модулей, написанных на Python или Ruby, из ROOT);
- интерфейсы к Монте-Карло-генераторам событий физики элементарных частиц.
Ключевой возможностью пакета ROOT является специальный контейнер данных, называемый деревом (Tree), вместе с его подмножествами ветвями (Branch) и листьями (Leaf). Дерево может быть представлено как удобное средство чтения и записи данных в файле. Следующий элемент данных, записанный в файле, может быть получен инкрементированием индекса дерева. Такой подход позволяет избежать проблем с выделением памяти при создании объектов, и даёт возможность дереву выступать в качестве «лёгкого» контейнера при буферизации данных.
ROOT разрабатывался как высокопроизводительная вычислительная библиотека, необходимая для обработки данных Большого Адронного Коллайдера, поток которых достигает нескольких петабайт в год. С 2009 года ROOT используется в подавляющем большинстве экспериментов физики высоких энергий; абсолютное большинство современных результатов и иллюстраций в этой области науки получено именно с использованием ROOT.
Включение в пакет интерпретатора C++ CINT значительно увеличило гибкость пакета, так как позволило использовать средства ROOT в интерактивном режиме или посредством написания скриптов, что сделало его похожим на MATLAB.
Основная критика ROOT связана с утверждениями о том, что для начинающих пользователей достаточно сложно освоить этот продукт, его широкие возможности и средства[4]. Периодически эти проблемы обсуждаются пользователями и разработчиками ROOT в специальном списке рассылки[5][6].
Применения ROOT
[править | править код]Многие экспериментальные лаборатории физики высоких энергий используют программное обеспечение, основанное на ROOT, иногда вопреки более стандартным программным решениям (например, использование контейнеров ROOT вместо классов STL).
Программное обеспечение, основанное на ROOT, используется в экспериментах:
- ALICE.
- ATLAS.
- BaBar.
- CB-ELSA/TAPS.
- CDF.
- CMS.
- COMPASS.
- NA61.
- DZero.
- H1.
- LHCb.
- MINOS.
- PHENIX.
- PHOBOS.
- STAR.
- ZEUS.
- CRESST.
- КМД-3.
- КЕДР.
Будущие эксперименты, которые на данный момент разрабатывают своё программное обеспечение с использованием ROOT:
Астрофизические проекты, использующие ROOT:
- AMS.
- ANTARES.
- Fermi.
- IceCube.
- H.E.S.S..
- MAGIC.
- Milagro (experiment).
- Pierre Auger Observatory.
- VERITAS.
- PAMELA.
- PoGOLite.
- Baikal-GVD
См. также
[править | править код]Примечания
[править | править код]- ↑ https://root.cern.ch/root/htmldoc/guides/users-guide/ROOTUsersGuide.html#preface
- ↑ Release 6.32.08 — 2024.
- ↑ 1 2 https://root.cern.ch/supported-platforms
- ↑ The problem with ROOT Архивировано 18 июля 2011 года.
- ↑ ROOTTALK: 27 July 2006 . Дата обращения: 19 июня 2010. Архивировано 1 августа 2012 года.
- ↑ ROOTTALK: 28 July 2008 . Дата обращения: 19 июня 2010. Архивировано 1 августа 2012 года.
Ссылки
[править | править код]- Официальный сайт пакета ROOT Архивная копия от 12 марта 2009 на Wayback Machine
- Сайт проекта Qt/ROOT
- OpenScientist Архивная копия от 23 февраля 2009 на Wayback Machine система анализа данных на C++, совместимая с AIDA.
- The RooFit Toolkit for Data Modeling Архивная копия от 30 августа 2010 на Wayback Machine, расширение для ROOT с функциями анализа методом максимального правдоподобия
- Perl Binding using SWIG (недоступная ссылка)
- The Karma Rootra
- Краткое руководство для начинающих Архивная копия от 10 сентября 2016 на Wayback Machine / Linux Format №83, Сентябрь 2006, Балдин Евгений
- Программное обеспечение по алфавиту
- Программное обеспечение, разработанное в 1995 году
- Физическое программное обеспечение
- Свободное графическое программное обеспечение
- Свободное статистическое программное обеспечение
- Свободное программное обеспечение, написанное на C++
- Библиотеки C++
- Программы для управления данными