[Følgende er oversat fra http://root.cern.ch/root/Mission.html]
ROOT systemet giver et sæt af Objekt Orienteret arbejdsrammer (frameworks) med al den funktionalitet der er brug for til at håndtere og analysere store datamængder på en meget effektiv måde. Med datasæt defineret som objekter, bruges specialiserede opbevaringsmetoder til at få adgang til separate egenskaber af brugerudvalgte objekter, uden at skulle røre ved hovedparten af datasættet.
Inkluderet er histogrammerings metoder i 1, 2, og 3 dimensioner, funktionstilpasning (linært og ikke-linært), minimeringsmetoder (Least-square, Log-likelyhood, etc.), grafik, og visualiserings klasser, hvilket tillader et nemt anskueligt analyse system der kan spørge til og processere data enten interaktivt eller i batch.
Takket være den indbygget CINT C++ fortolker, er kommandosproget til scripts og programmeringsproget begge C++. Fortolkeren tillader hurtig udvikling af prototype scripts, som uden større besvær kan laves om til et egentligt programmer. Fortolkeren giver også et godt miljø til at lære C++ i.
Systemet er designet sådan, at det kan stille spørgsmål til dets databaser parallelt på Multi-Processor maskiner, Farme, klynger a arbejdsstationer eller på kraftige desktopmaskiner.
ROOT er et åbent system der kan udvides dynamisk ved at linke eller indlæse eksterne biblioteker.
Alt dette gør at ROOT er en perfekt platform til at bygge dataakvisition-, simulation- og dataanalyse systemer på.
ROOT står for ROOT's Object Oriented Technologies, men navnet kom egentlig af at ROOT var tænkt som "The ROOT of everything" - ikke mere, men heller ikke mindre!
ROOT er udviklet ved CERN af René Brun og Fons Rademarkers i begyndelsen. Siden er flere kommet til og blevet en del af ROOT Team som lige nu tæller 6 personer. Mange andre (42) har bidraget større og mindre dele til ROOT.
Christian Holm [eller jeg] har bidraget med klasserne TPrincipal og TMultiDimFit som er to algoritmer til statistisk behandling og parametersering af multidimensionelle datasæt. Desuden har han [eller jeg] bidraget en del til byggesystemet.
Takket være at kildekoden er tilgængelig og postlisten roottalk@root.cern.ch kommer der også mange bugreporter og -løsninger fra den store brugerskare.
ROOTs brugerskare tæller omkring 100 fysik kollaboration verden over, plus et antal firmaer, og enkelt personer.
Selvom ROOT ikke er OpenSource i OSD-forstanden, på grund af et enkelt klausul i ROOTs Licens vedrørende redistribution af afledt arbejde, så foregår udviklingen meget i Bazaar-stilen.
ROOT kører på mange platforme. De platforme som ROOT tilbyder binære distributioner til er:
Operativ system | Chip |
---|---|
Linux | i386 |
Itanium | |
PPC | |
Compaq iPAQ Pocket PC | |
HP-UX | HP-UX (?) |
Digtal Unix (OSF1) | Compaq Alpha |
AIX | IBM (?) |
Solaris | Sun SPARC |
SGI IRIX | SGI |
Windows/NT/95/98 | i386 |
Listen er sikkert ikke komplet, for på en hvilken som helst Un*x (det vil sige, lever op til POSIX) skulle der være muligt at kører ROOT, og da kildekoden er tilgængelig (via CVS eller FTP), kan man jo bare forsøge sig. Det er også mulig at bygge RPM og DEB pakker direkte fra kildekoden. Forholdsvis nye RPM'er er tilgængelig.
Endelig findes der en udemærket manual til ROOT.
Det første eksempel jeg vidste, var at lave et histogram af tilfældige tal trukket fra en Gauss fordeling:
prompt% root ******************************************* * * * W E L C O M E to R O O T * * * * Version 3.02/01 17 October 2001 * * * * You are welcome to visit our Web site * * http://root.cern.ch * * * ******************************************* FreeType Engine v1.x used to render TrueType fonts. Compiled with thread support. CINT/ROOT C/C++ Interpreter version 5.15.15, Sep 30 2001 Type ? for help. Commands must be C++ statements. Enclose multiple statements between { }. root [0] TH1F* h = new TH1F("h", "Random numbers", 100, 0, 10); root [1] TRandom* r = new TRandom root [2] for (Int_t i = 0; i < 10000; i++) h->Fill(r->Gaus(5,2)) root [3] h->Draw() <TCanvas::MakeDefCanvas>: created default TCanvas with name c1
Det histogram fittede jeg ved at højreklikke på histogrammet, vælge "FitPanel" i dropmenuen, trykke "gaus" på fit panelet og så trykke "Fit". Det gav:
root [4] FCN=94.0864 FROM MIGRAD STATUS=CONVERGED 61 CALLS 62 TOTAL EDM=1.1486e-08 STRATEGY= 1 ERROR MATRIX ACCURATE EXT PARAMETER STEP FIRST NO. NAME VALUE ERROR SIZE DERIVATIVE 1 Constant 2.02030e+02 2.58627e+00 9.71957e-03 -7.91212e-06 2 Mean 4.98734e+00 2.05747e-02 9.79547e-05 7.04231e-03 3 Sigma 1.95475e+00 1.66673e-02 1.09125e-05 1.06915e-02
For at vise fit parameterene på plottet valgte jeg "Options->Show Fit Parameters" på Canvaset (det vindue histogrammet er tegnet i).
Resten af eksemplerne var fra ROOT's tutorials.
I C:
A * 1 / srqt(2 * sigma) * exp(pow((x-mean)/sigma, 2);
I LATEX:
A \frac1{\sqrt{2\sigma}} e^{\left(\frac{x - \mu}/\sigma\right)^2}