ROOT What & Why? ROOT Status ROOT Application ROOT Install ROOT Example ROOT References Introduction to March 13, 2003 Dae Jung CHEP.

Slides:



Advertisements
Similar presentations
Why ROOT?. ROOT ROOT: is an object_oriented frame work aimed at solving the data analysis challenges of high energy physics Object _oriented: by encapsulation,
Advertisements

Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
© 2010 Delmar, Cengage Learning Chapter 1 Getting Started with Dreamweaver.
Postgraduate Computing Lectures Applications I: Analysis Tools 1 Applications: Analysis Tools Analysis Tools –Used to extract Physics from reconstructed.
Postgraduate Computing Lectures ROOT 1 What is ROOT? Tool and a Framework for OO Data Analysis As a Tool –Enter commands to display and manipulate data.
MSc. Publishing on WWW JavaScript. What is JavaScript? A scripting language devised by Netscape Adds functionality to web pages by: Embedding code into.
Two Broad Categories of Software
LIGO-G0200XX-00-M Interactive DMT with Root John G. Zweizig LIGO, Caltech.
E-Commerce The technical side. LAMP Linux Linux Apache Apache MySQL MySQL PHP PHP All Open Source and free packages. Can be installed and run on most.
Objectives  Understand the purpose of the superuser account  Outline the key features of the Linux desktops  Navigate through the menus  Getting help.
Unix Presentation. What is an Operating System An operating system (OS) is a program that allows you to interact with the computer -- all of the software.
Linux Shell. 2 Linux Command-Line Interface ■ Linux shells: A shell is a command interpreter that allows you to type commands from the keyboard to interact.
Lesson 4 Computer Software
Getting Started with Dreamweaver
Input/Output Controller (IOC) Overview Andrew Johnson Computer Scientist, AES Controls Group.
Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1.
ROOT An object oriented HEP analysis framework.. Computing in Physics Physics = experimental science =>Experiments (e.g. at CERN) Planning phase Physics.
COMP1070/2002/lec3/H.Melikian COMP1070 Lecture #3 v Operating Systems v Describe briefly operating systems service v To describe character and graphical.
Introduction of ROOT Yao. ROOT Development In the mid 1990's, René Brun and Fons Rademakers, they had lead successful projects such as PAW, PIAF, and.
21-Apr-2005J. Adamczewski1 DVEE C++ course 2005 The ROOT framework 1: Introduction.
ECT 250: Survey of E-Commerce Technology FrontPage Publishing pages Unix.
FTP Server and FTP Commands By Nanda Ganesan, Ph.D. © Nanda Ganesan, All Rights Reserved.
Putting Applets into Web Pages.  Two things are involved in the process of putting applets onto web pages ◦ The.class files of the applet ◦ The html.
Realtime Technologies, Inc. Distributed Simulation Training  April 2005.
Install Software. UNIX Shell The UNIX/LINUX shell is a program important part of a Unix system. interface between the user & UNIX kernel starts running.
Compiling C/C++ Programs in Linux Lab اللهم علمنا ما ينفعنا،،، وانفعنا بما علمتنا،،، وزدنا علماً
Navigation and Ancillary Information Facility NIF Preparing for Programming Using the SPICE Toolkit March 2010.
The Joy of Programming (also known as) Introduction to Object-Oriented Programming.
CS 390 Unix Programming Summer Unix Programming - CS 3902 Course Details Online Information Please check.
As of 28 Juni 2005Getting Starged with GEM - Shuei Yamada 1 Getting Started with GEM Shuei YAMADA ICEPP, University of Tokyo What is GEM? Before you start.
INVITATION TO COMPUTER SCIENCE, JAVA VERSION, THIRD EDITION Chapter 6: An Introduction to System Software and Virtual Machines.
CMT Christian Arnault - LAL - Chep /18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation.
CGI Common Gateway Interface. CGI is the scheme to interface other programs to the Web Server.
Operating System What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware. An operating.
Slide No. 1 Slide No. 1 HTML and Web Publishing Continued CS 104 CS 104.
Advanced BioPSE NCRR How to Install and Configure J. Davison de St. Germain Chief Software Engineer SCI Institute December 2003 J. Davison.
LBSC 690 Session 5A Programming. Languages How do we learn a language? Learn by listening Then reading Then writing How do we teach programming? Learn.
Setting up Cygwin Computer Organization I 1 May 2010 ©2010 McQuain Cygwin: getting the setup tool Free, almost complete UNIX environment emulation.
CHEP 2013, Amsterdam Reading ROOT files in a browser ROOT I/O IN JAVASCRIPT B. Bellenot, CERN, PH-SFT B. Linev, GSI, CS-EE.
1 ALICE OFFLINE :ORGANIZATION A user point of view Yves Schutz, SUBATECH, France (PHOS biased)
Paul Scherrer Institut 5232 Villigen PSI CHEP 2006 in Mumbay / / Matthias Schneebeli ROME CHEP 2006 Presented by Matthias Schneebeli a universally.
Jericho CSCI 7818 September 5, 2001 Carissa Mills.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev ROOT 2002 GSI Online Offline Object Oriented Go4.
Mantid Manipulation and Analysis Toolkit for ISIS data.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
Threaded Programming Lecture 2: Introduction to OpenMP.
ROOT I/O in JavaScript Browsing ROOT Files on the Web For more information see: For any questions please use following address:
CS 245 – Part 1 Using Operating Systems and Networks for Programmers Jiang Guo Dept. of Computer Science California State University Los Angeles.
Agenda Using FTP What is FTP? How to Use the FTP Program How to transfer files Using FTP.
Postgraduate Computing Lectures PAW 1 PAW: Physicist Analysis Workstation What is PAW? –A tool to display and manipulate data. Learning PAW –See ref. in.
LBSC 690 Session 4 Programming. Languages How do we learn a language? Learn by listening Then reading Then writing How do we teach programming? Learn.
LCG AA Meeting 31 October 2007 The new dynamically and extensively customizable ROOT browser Bertrand Bellenot.
INFSO-RI Enabling Grids for E-sciencE Using of GANGA interface for Athena applications A. Zalite / PNPI.
Hands-On Microsoft Windows Server 2008 Chapter 5 Configuring Windows Server 2008 Printing.
S.Linev: Go4 - J.Adamczewski, H.G.Essel, S.Linev ROOT 2005 New development in Go4.
Operating Environment. Installation and Upgrade Options Solaris suninstall program Solaris Web Start Installation Custom Jumpstart procedure Standard.
NX Documentation Using Windows IIS (Internet Information Services) as a http server for NX documentation.
ScienceTools Linux Instructions Windows Instructions.
2001 ROOT Workshop The Summary. Content Most Requested Request already satisfied Build and Distribution Web Page Information and Documentation.
Cygwin: getting the setup tool
Matlab Programming for Engineers
CSC227: Operating Systems
PowerShell Introduction Copyright © 2016 – Curt Hill.
Distributed object monitoring for ROOT analyses with Go4 v.3
Introduction to Programming the WWW I
Software Installation
Software Installation, release 4.0
Cygwin: getting the setup tool
Review of Previous Lesson
Web Application Development Using PHP
Presentation transcript:

ROOT What & Why? ROOT Status ROOT Application ROOT Install ROOT Example ROOT References Introduction to March 13, 2003 Dae Jung CHEP

ROOT What & Why? ROOT is a Data Analysis and DAQ or other application Tool based on C/C++ PAW(Physics Analysis Workstation) is physics analysis tool using Fortran Lang. Why not PAW? Why ROOT? Very Huge Data >> Tbyte Computing Technology Regular grammar (C++) on command line Single language (compiled and interpreted) Object Oriented (use your class in the interpreter) Advanced Interactive User Interface Well Documented code. HTML class descriptions for every class. 3-d interfaces with OpenGL and X3D.

ROOT Status First ROOT release version 1.0 published in 1995 and update almost monthly….. Linux Unix (HP, SGI, Compaq…) Window(NT,2000) GCC, egcs, CC, g++, VC++, …. Platform & Complier

ROOT Applications Almost HEP/nuclear experiments in the World Other fields Economics Medical Applied physics WHY ?

ROOT Install Getting the source To install ROOT from source you first have to get the tar file containing the source. prompt% ftp root.cern.ch User: anonymous Password: ftp> cd /root ftp> bin ftp> get root-.source.tar.gz ftp> bye prompt% gzip -dc root-.source.tar.gz | tar -xf - Getting ready to build You may want to compile features into ROOT, which depends on third party libraries. Make sure you meet all demands for additional features before trying to enable them (see below). If you are using some Un*x, you need to have libXpm installed. On very few systems libXpm.a is not available. In that case get the pre-built version from: ftp://root.cern.ch/root/xpmftp://root.cern.ch/root/xpm Then use either environment variable XPM or "configure" flags "--with-xpm= " to specify where you installed libXpm, if you didn't install it in some generally searched directory (see more below). ROOT Install from source. You want to install in a generic directory, depending on environment variables ROOTSYS, LD_LIBRARY_PATH, and PATH. > setenv ROOTSYS /root set ROOTSYS to the `root' directory: (csh) >./configure --help now type the build commands: all shells: >./configure [change arch appropriately] > gmake [or, make -j2 for dual CPU machines] > gmake install [when run directory is not $ROOTSYS] > setenv PATH ${ROOTSYS}/bin:${PATH} add $ROOTSYS/bin to PATH > setenv LD_LIBRARY_PATH ${ROOTSYS}/lib:${LD_LIBRARY_PATH} add $ROOTSYS/lib to LD_LIBRARY_PATH > rehash > root try running root :

ROOT Framework

What Can we do with ??  Histogramming and Fitting(Gauss, Poly, exp, Landau..)  Graphics (2D, 3D)  I/O to file : specialized for histograms, Ntuples (Trees)  Collection Classes and Run Time Type Identification User Interface  GUI: Browsers, Panels, Tree Viewer  Command Line interface: C++ interpreter CINT  Script Processor (C++ compiled  C++ interpreted)

GUI windows, buttons, menus Root Command line CINT (C++ interpreter) Macros, applications, libraries (C++ compiler and interpreter) Three User Interfaces

ROOT Example hep2:2:11pm:Root_temp_527>> root *************************************************** * W E L C O M E to R O O T * * Version 3.03/07 5 August 2002 * * * * You are welcome to visit our Web site * * * **************************************************** FreeType Engine v1.x used to render TrueType fonts. Compiled for linuxkcc. CINT/ROOT C/C++ Interpreter version , July Type ? for help. Commands must be C++ statements. Enclose multiple statements between { }. root [0].q root [1].x file.C root [2].! ls(linux command) root [3] b = TBrowser(); Root[4].? Or.help root [0] TFile f("filter.root") root [3] f.ls() TFile** filter.root TFile* filter.root KEY: TH1F h1;1 x distribution KEY: TNtuple ntuple;1 data from ascii file

hep2:2:24pm:Root_temp_527>> more filter.txt hep2:2:21pm:Root_temp_527>> more filter.C //Reading " MCP Qunatum Efficiency + Polyca_2 + Al_0.1 + Al_1 + Al_3 + Al_5 microns " and making an ntuple // to read data from an ascii file and create a root file with and an ntuple. { gROOT->Reset(); FILE *fp = fopen("./filter.txt","r"); Float_t x,q,p,al_1,al_10,al_30,al_50; Int_t ncols; Int_t nlines = 0; TFile *f = new TFile("./filter.root","RECREATE"); TH1F *h1 = new TH1F("h1","x distribution",100,-4,4); TNtuple *ntuple = new TNtuple("ntuple","data from ascii file",“ x:q:p:al_1:al_10:al_30:al_50"); while (1) { ncols = fscanf(fp,"%f %f %f %f %f %f %f", &x, &q, &p, &al_1, &al_10, &al_30, &al_50); if (ncols < 0) break; if (nlines < 500) printf("x=%8f, q=%8f, p=%8f, al_1=%8f, al_10=%8f, al_30=%8f, al_50=%8f\n",x,q,p,al_1,al_10,al_30,al_50); h1->Fill(x); ntuple->Fill(x,q,p,al_1,al_10,al_30,al_50); nlines++; } printf(" found %d points\n",nlines); fclose(fp); f->Write(); } ROOT Example Cont. 1

hep2:2:37pm:Root_temp_527>> more filter_selection.C { gROOT->Reset(); c1 = new TCanvas("c1","The Ntuple canvas",200,10,700,780); gBenchmark->Start("ntuple1"); f1 = new TFile("./filter.root"); // Inside this canvas, we create 4 pads pad1 = new TPad("pad1","This is pad1",0.02,0.52,0.48,0.98,18); pad2 = new TPad("pad2","This is pad2",0.52,0.52,0.98,0.98,17); pad3 = new TPad("pad3","This is pad3",0.02,0.02,0.48,0.48,21); pad4 = new TPad("pad4","This is pad4",0.52,0.02,0.98,0.48,20); pad1->Draw();pad2->Draw(); pad3->Draw();pad4->Draw(); // pad 1 gStyle->SetStatW(0.30); gStyle->SetStatH(0.20); gStyle->SetStatColor(42); pad1->cd(); // MCP Quantum Efficiency Polycarbonate 2 micron pad1->GetFrame()->SetFillColor(38); pad1->GetFrame()->SetBorderSize(8); ntuple->SetMarkerColor(1); ntuple->Draw("q:x","x>0"); ntuple->SetMarkerColor(2); ntuple->Draw("p:x","x>0","same"); c1->Update(); // pad2 gStyle->SetStatW(0.30); gStyle->SetStatH(0.20); gStyle->SetStatColor(42); pad2->cd(); // Aluminum 0.1 micron // Aluminum 1 micron pad2->GetFrame()->SetFillColor(38); pad2->GetFrame()->SetBorderSize(8); ntuple->SetMarkerColor(1); ntuple->Draw("al_1:x","x>0"); ntuple->SetMarkerColor(2); ntuple->Draw("al_10:x","x>0","same"); c1->Update(); // pad 3 gStyle->SetStatW(0.30); gStyle->SetStatH(0.20); gStyle->SetStatColor(42); pad3->cd(); // Aluminum 3 micron // Aluminum 5 micron pad3->GetFrame()->SetFillColor(38); pad3->GetFrame()->SetBorderSize(8); ntuple->SetMarkerColor(1); ntuple->Draw("al_30:x","x>0"); ntuple->SetMarkerColor(2); ntuple->Draw("al_50:x","x>0","same"); c1->Update(); // Pad 4 gStyle->SetStatW(0.30); gStyle->SetStatH(0.20); gStyle->SetStatColor(42); // MCP Quantum Efficiency + Polycarbonate 2 micron + Aluminum 0.1 micron // MCP Quantum Efficiency + Polycarbonate 2 micron + Aluminum 1 micron // MCP Quantum Efficiency + Polycarbonate 2 micron + Aluminum 3 micron // MCP Quantum Efficiency + Polycarbonate 2 micron + Aluminum 5 micron // pad4->cd(); pad4->GetFrame()->SetFillColor(38); pad4->GetFrame()->SetBorderSize(8); ntuple->SetMarkerColor(1); ntuple->Draw("q*p*al_1:x","x>0"); ntuple->SetMarkerColor(2); ntuple->Draw("q*p*al_10:x","x>0","same"); ntuple->SetMarkerColor(3); ntuple->Draw("q*p*al_30:x","x>0","same"); ntuple->SetMarkerColor(4); ntuple->Draw("q*p*al_50:x","x>0","same"); c1->Update(); gStyle->SetStatColor(19); gBenchmark->Show("ntuple1"); } ROOT Example Cont. 2

Pad 1 Pad 3 Pad 2 Pad 4 ROOT Example Cont. 3

ROOT References : ROOT Home page : ROOT Fermilab