ROOT

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
ROOT
ROOT-Logo
ROOT-Logo
Basisdaten
Erscheinungsjahr: 1994
Aktuelle Version: 6.02/02  (2. Dezember 2014)
root.cern.ch

ROOT ist eine am CERN entwickelte, objektorientierte freie Software (Lizenz: LGPL, Teile GPL), die zur Analyse von Daten eingesetzt wird. ROOT ist unter anderem unter den Betriebssystemen Linux, Solaris, Mac OS X und Windows lauffähig.

Geschichte[Bearbeiten]

ROOT wurde 1994 am CERN von René Brun und Fons Rademakers als Nachfolger des in Fortran programmierten PAW Software-Pakets entwickelt, da zu erwarten war, dass diese Software mit den beim LHC auftretenden Datenmengen nicht mehr zurechtkommen würde[1]. Die Entwicklung von PAW wurde inzwischen zugunsten von ROOT eingestellt. Ursprünglich für die Analyse von Daten im Bereich der Teilchenphysik entwickelt, wird ROOT inzwischen auch in anderen Anwendungsbereichen wie z. B. Data-Mining eingesetzt.

Funktionsumfang[Bearbeiten]

ROOT ist in C++ implementiert und verwendete bis zur Version 5 (einschließlich aller Unterversionen) den C++-Interpreter CINT. Seit Version 6 basiert ROOT auf dem C++ Interpreter Cling, der seinerseits auf dem C++-Compiler Clang und dem Compilerframework LLVM aufbaut. Programme, die das ROOT-Framework verwenden, können entweder nativ durch Einbindung der entsprechenden Bibliotheken und Header kompiliert, oder über den integrierten C++-Interpreter CINT ausgeführt werden.

ROOT weist einen sehr großen Funktionsumfang auf, darunter:

  • Bedienung über Konsole und/oder graphische Benutzeroberfläche
  • Erstellen von Histogrammen (2D/3D)
  • Erstellen von Graphen
  • Fitten von Funktionen
  • Statistische Datenanalyse
  • Zahlreiche mathematische Standard-Funktionen
  • 3D-Visualisierungen
  • Grafik-Export in zahlreiche Formate wie Postscript, EPS, PDF, PNG u.a.
  • Tree-Objekt zur Speicherung von (Roh-)Daten
  • Eigenes ROOT-Dateiformat zur Speicherung von ROOT-Objekten
  • Unterstützung von Distributed Computing

CINT[Bearbeiten]

CINT ist ein Kommandozeilen-Interpreter für die Programmiersprachen C++ und C. Obwohl CINT für die Verwendung mit anderen Teilen von ROOT konzipiert wurde, kann es ebenso als eigenständige Erweiterung für andere Programme verwendet werden, die einen solchen Interpreter benötigen.

CINT ist eine interpretierte Version für C++ und C, in etwa so, wie BeanShell eine interpretierte Version von Java ist. Zusätzlich zur Funktionalität als Sprachen-Interpreter verfügt es über verschiedene Bash-ähnliche Shell-Funktionen wie Verlauf und Befehlszeilenergänzung. Letzteres basiert stark auf der Reflexion-Unterstützung in ROOT.

Die durch CINT interpretierte Sprache ist in Wirklichkeit eine Mischung aus C und C++ und deckt etwa 95 % ANSI-C und 85 % von C++ ab.[2] Syntaxfehler werden zudem weniger streng geahndet als in C oder C++. So kann der Operator -> einfach durch ein . ersetzt werden, wobei nur eine optionale Warnung ausgegeben wird. Zusätzlich müssen Statements in der Kommandozeile nicht mit einem Semikolon enden. Dies ist nur bei Statements in Makros notwendig.

Quellen[Bearbeiten]

  1. ROOT-Handbuch, S. 21
  2. ROOT: An Object-Oriented Data Analysis Framework – Linux Journal

Weblinks[Bearbeiten]