ROOT — об'єктно-орієнтована програма та бібліотека, розроблена в ЦЕРНi () для аналізу та візуалізації даних, котрі характерні для ядерної фізики, фізики елементарних частинок та релятивістської фізики високих енергій, однак зараз широко використовується в інших областях для аналізу та різноманітної обробки даних. Майже стандартно застосовується наприклад в обробці експериментальних даних в атомній та молекулярній фізиці, лазерній фізиці, а також в астрономії.
Історія Впродовж багатьох років в ЦЕРНі було розроблено на фортрані дуже багато специфічних бібліотек для аналізу різноманітних даних з фізики високих енергій та елементарних частинок. Однак подальший розвиток, абстракція та узагальнення бібліотек зіткнулися з проблемою росту, оскільки тодішній стандарт фортрану та компілятори не дозволяли ефективно використовувати об'єктно-орієнтовану модель програмування. Також висловлювались сумніви, чи наявне програмне забезпечення дозволить ефективно аналізувати гігантський потік даних з детекторів LHC.
Розвиток ROOT бере свій початок від розробників Рене Брюн (René Brun) та Фонс Радемекерз (Fons Rademakers), котрі ініціювали цей проект в 1994 році (використовуючи мову C++) як заміну бібліотеки , котра раніше також була створена в ЦЕРН. Розвиток PAW було припинено на користь ROOT у 2003 році. ROOT вийшов під ліцензією LGPL/GPL i забезпечує незалежний від платформи доступ до операційної системи і зокрема до графічної підсистеми комп'ютера за допомогою стандартних абстрактних інтерфейсів. Складовими абстрактної платформи є: графічний інтерфейс користувача та конструктор для нього, найрізноманітніші класи-контейнери, підтримка рефлексії (відображення), серіалізації об'єктів та персистентності.
Можливості ROOT надає доступ до десятків різноманітних спеціалізованих пакетів у вигляді об'єктної моделі: побудова різноманітних гістограм, графів та графіків для перегляду і аналізу розподілу функції регресійний аналіз та мінімізація функціоналів статистичні інструменти для аналізу та вибірки даних матрична алгебра 4-вектори для релятивістських обчислень у фізиці високих енергій усі стандартні математичні функції та велика кількість спеціальних (як вбудованих, так і через інтерфейс до GSL) багатовимірний аналіз даних, наприклад, з використанням нейронних мереж імпорт, створення та запис файлів в різних графічних форматах а також аналіз та математична обробка графічних файлів доступ до розподілених даних (в контексті Grid) розподілені обчислення, розпаралелювання аналізу даних (PROOF) доступ до баз даних 3D візуалізація (геометрія) двосторонній інтерфейс взаємодії та доступу з/до Python і Ruby серіалізація та персистентність об'єктів інтерфейс до Монте-Карло генераторів випадкових величин
ROOT був вибраний внаслідок високої ефективності обчислень як основний інструмент для обробки даних експериментів на Великому адронному колайдері, котрих набігає у декілька десятків петабайт на рік. Включення інтерпретатора CINT зробило ROOT досить універсальною програмою і його можна використовувати зараз в інтерактивному режимі чи в режимі виконання скриптів на C++, за аналогією з таким комерційним продуктом, як MATLAB. Критика ROOT полягає в досить високих вимогах до рівня знань C++ у початківців, а також різні не зовсім вдалі рішення, аспекти розробки та реалізації.
Див. також matplotlib SciPy R (мова програмування) Наукова візуалізація Geant4
Примітки
Література
Посилання
Офіційна сторінка системи ROOT Список розсилки для користувачів ROOT Офіційна сторінка PAW