ROOT
ROOT — об'єктно-орієнтована програма та бібліотека, розроблена в ЦЕРНi (фр. CERN) для аналізу та візуалізації даних, котрі характерні для ядерної фізики, фізики елементарних частинок та релятивістської фізики високих енергій, однак зараз широко використовується в інших областях для аналізу та різноманітної обробки даних. Майже стандартно застосовується наприклад в обробці експериментальних даних в атомній та молекулярній фізиці, лазерній фізиці, а також в астрономії.
Презентація експерименту ATLAS, виконана у пакеті ROOT | |
Тип | Бібліотека для аналізу та візуалізації даних |
---|---|
Автор(и) | CERN |
Розробник | CERN |
Перший випуск | 1995[1] |
Стабільний випуск | 6.12/06 (9 лютого 2018[2]) |
Версії | 6.24/06 (1 вересня 2021)[3] |
Репозиторій | github.com/root-project/root |
Нестабільний випуск | 6.13/02 (20 березня 2018[2]) |
Платформа | IA-32[4] і x86_64[4] |
Операційна система | Solaris, IBM AIX, Linux, Windows, OS X |
Мова програмування | C++ |
Ліцензія | GPL, LGPL |
Онлайн-документація |
root.cern/manual/ root.cern/doc/master/ |
Вебсайт | root.cern.ch |
ROOT у Вікісховищі |
Історія
Впродовж багатьох років в ЦЕРНі було розроблено на фортрані дуже багато специфічних бібліотек для аналізу різноманітних даних з фізики високих енергій та елементарних частинок. Однак подальший розвиток, абстракція та узагальнення бібліотек зіткнулися з проблемою росту, оскільки тодішній стандарт фортрану та компілятори не дозволяли ефективно використовувати об'єктно-орієнтовану модель програмування. Також висловлювались сумніви, чи наявне програмне забезпечення дозволить ефективно аналізувати гігантський потік даних з детекторів LHC.
Розвиток ROOT бере свій початок від розробників Рене Брюн (René Brun) та Фонс Радемекерз (Fons Rademakers), котрі ініціювали цей проект в 1994 році (використовуючи мову C++) як заміну бібліотеки PAW, котра раніше також була створена в ЦЕРН. Розвиток PAW було припинено на користь ROOT у 2003 році. ROOT вийшов під ліцензією LGPL/GPL i забезпечує незалежний від платформи доступ до операційної системи і зокрема до графічної підсистеми комп'ютера за допомогою стандартних абстрактних інтерфейсів. Складовими абстрактної платформи є: графічний інтерфейс користувача та конструктор для нього, найрізноманітніші класи-контейнери, підтримка рефлексії (відображення), серіалізації об'єктів та персистентності.
Можливості
ROOT надає доступ до десятків різноманітних спеціалізованих пакетів у вигляді об'єктної моделі:
- побудова різноманітних гістограм, графів та графіків для перегляду і аналізу розподілу функції
- регресійний аналіз та мінімізація функціоналів
- статистичні інструменти для аналізу та вибірки даних
- матрична алгебра
- 4-вектори для релятивістських обчислень у фізиці високих енергій
- усі стандартні математичні функції та велика кількість спеціальних (як вбудованих, так і через інтерфейс до GSL)
- багатовимірний аналіз даних, наприклад, з використанням нейронних мереж
- імпорт, створення та запис файлів в різних графічних форматах а також аналіз та математична обробка графічних файлів
- доступ до розподілених даних (в контексті Grid)
- розподілені обчислення, розпаралелювання аналізу даних (PROOF)
- доступ до баз даних
- 3D візуалізація (геометрія)
- двосторонній інтерфейс взаємодії та доступу з/до Python і Ruby
- серіалізація та персистентність об'єктів
- інтерфейс до Монте-Карло генераторів випадкових величин
ROOT був вибраний внаслідок високої ефективності обчислень як основний інструмент для обробки даних експериментів на Великому адронному колайдері, котрих набігає у декілька десятків петабайт на рік. Включення інтерпретатора CINT зробило ROOT досить універсальною програмою і його можна використовувати зараз[коли?] в інтерактивному режимі чи в режимі виконання скриптів на C++, за аналогією з таким комерційним продуктом, як MATLAB. Критика ROOT полягає в досить високих вимогах до рівня знань C++ у початківців, а також різні не зовсім вдалі рішення, аспекти розробки та реалізації.
Примітки
- ROOT Data Analysis Framework User’s Guide. CERN. Процитовано 29.08.2016.
- Releases. CERN. Процитовано 23.05.2018.
- ROOT Version 6.24 Release Notes
- https://root.cern.ch/supported-platforms
Література
- ROOT User's Guide: 6 Release Cycle = [Довідник користувача ROOT: 6-та серія випусків] : [англ.]. (У форматах html, pdf, EPUB.)