Postgraduate Computing Lectures Applications I: Analysis Tools 1 Applications: Analysis Tools Analysis Tools –Used to extract Physics from reconstructed.

Slides:



Advertisements
Similar presentations
Noadswood Science,  To know how to use Python to produce windows and colours along with specified co-ordinates Sunday, April 12, 2015.
Advertisements

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,
Tutorial 12: Enhancing Excel with Visual Basic for Applications
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.
By Hrishikesh Gadre Session II Department of Mechanical Engineering Louisiana State University Engineering Equation Solver Tutorials.
1 Chapter 12 Working With Access 2000 on the Internet.
MATHEMATICA What it can do for you.. Overview Uses of Mathematica How the program works Language rules EXAMPLES!
Linux+ Guide to Linux Certification, Second Edition
World Wide Web1 Applications World Wide Web. 2 Introduction What is hypertext model? Use of hypertext in World Wide Web (WWW) – HTML. WWW client-server.
Guide To UNIX Using Linux Third Edition
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Guide To UNIX Using Linux Third Edition
Session 2 Tables and forms in HTML Adapted by Sophie Peter from original document by Charlie Foulkes.
Developing a Basic Web Page with HTML
1 Chapter 20 — Creating Web Projects Microsoft Visual Basic.NET, Introduction to Programming.
Chapter 9 Introduction to ActionScript 3.0. Chapter 9 Lessons 1.Understand ActionScript Work with instances of movie clip symbols 3.Use code snippets.
Digital Image Processing Lecture3: Introduction to MATLAB.
XP Tutorial 7New Perspectives on Creating Web Pages with HTML, XHTML, and XML 1 Working with Cascading Style Sheets Creating a Style for Online Scrapbooks.
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.
Chapter 6: Forms JavaScript - Introductory. Previewing the Product Registration Form.
Lecturer: Ghadah Aldehim
Introduction to Hall-D Software February 27, 2009 David Lawrence - JLab.
Java Programming, 3e Concepts and Techniques Chapter 3 Section 65 – Manipulating Data Using Methods – Java Applet.
Objectives Understand what MATLAB is and why it is widely used in engineering and science Start the MATLAB program and solve simple problems in the command.
Introduction to Visual Basic. Quick Links Windows Application Programming Event-Driven Application Becoming familiar with VB Control Objects Saving and.
ANSYS Fundamentals This document contains no technical data subject to the EAR or the ITAR.
®® Microsoft Windows 7 for Power Users Tutorial 13 Using the Command-Line Environment.
Higher Computing Computer Systems S. McCrossan 1 Higher Grade Computing Studies 1. Data Representation Data Representation – Why do we use binary? simplicity,
21-Apr-2005J. Adamczewski1 DVEE C++ course 2005 The ROOT framework 1: Introduction.
N ATIONAL E NERGY R ESEARCH S CIENTIFIC C OMPUTING C ENTER Charles Leggett A Lightweight Histogram Interface Layer CHEP 2000 Session F (F320) Thursday.
Computational Methods of Scientific Programming Lecturers Thomas A Herring, Room A, Chris Hill, Room ,
ImageJ EE4H, M.Sc Computer Vision Dr. Mike Spann
Tutorial 10 Programming with JavaScript
Input, Output, and Processing
File Structures Foundations of Computer Science  Cengage Learning.
1 Computer Programming (ECGD2102 ) Using MATLAB Instructor: Eng. Eman Al.Swaity Lecture (1): Introduction.
CS 3131 Introduction to Programming in Java Rich Maclin Computer Science Department.
Copyright © 2010 Certification Partners, LLC -- All Rights Reserved Perl Specialist.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
Bioinformatics Introduction to Perl. Introduction What is Perl Basic concepts in Perl syntax: – variables, strings, – Use of strict (explicit variables)
University of Sunderland CIF 102/FIF102 Fundamentals of DatabasesUnit 15 Programming in Microsoft Access using VBA Using VBA to add functionality.
Chapter Two Creating a First Project in Visual Basic.
ROOT’s graphics on iOS. ROOT’s graphics (general scheme):
1 UNIT 13 The World Wide Web Lecturer: Kholood Baselm.
ROOT What & Why? ROOT Status ROOT Application ROOT Install ROOT Example ROOT References Introduction to March 13, 2003 Dae Jung CHEP.
Copyright © 2003 ProsoftTraining. All rights reserved. Perl Fundamentals.
9-Nov-97Tri-Ada '971 TASH An Alternative to the Windows API TRI-Ada ‘97 Terry J. Westley
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,
25th May, 1999 HTL - Histogram Template Library Pavel Binko, LHCb / CERN 1 LHCb Computing Meeting HTL - Histogram Template Library Pavel Binko LHCb / CERN.
Creating a Java Application and Applet
Introduction to Files in VB Chapter 9.1, 9.3. Overview u Data Files  random access  sequential u Working with sequential files  open, read, write,
Introducing Dreamweaver. Dreamweaver The web development application used to create web pages Part of the Adobe creative suite.
Postgraduate Computing Lectures PAW 1 PAW: Physicist Analysis Workstation What is PAW? –A tool to display and manipulate data. Learning PAW –See ref. in.
Web-based Access to ROOT at D-Zero Joel Snow Langston University/D0 Collaboration ROOT 2001 Displaying histograms generated by ROOT in a Web BrowserDisplaying.
Visual Basic.NET Comprehensive Concepts and Techniques Chapter 3 Building an Application in the Visual Basic.NET Environment.
Linux+ Guide to Linux Certification, Second Edition Chapter 4 Exploring Linux Filesystems.
1 Agenda  Unit 7: Introduction to Programming Using JavaScript T. Jumana Abu Shmais – AOU - Riyadh.
1 UNIT 13 The World Wide Web. Introduction 2 Agenda The World Wide Web Search Engines Video Streaming 3.
1 UNIT 13 The World Wide Web. Introduction 2 The World Wide Web: ▫ Commonly referred to as WWW or the Web. ▫ Is a service on the Internet. It consists.
XP Tutorial 7New Perspectives on HTML and XHTML, Comprehensive 1 Working with Cascading Style Sheets Creating a Style for Online Scrapbooks Tutorial 7.
Linux Administration Working with the BASH Shell.
Fermilab Scientific Computing Division Fermi National Accelerator Laboratory, Batavia, Illinois, USA. Off-the-Shelf Hardware and Software DAQ Performance.
Chapter 6 : User interface design
Microsoft Foundation Classes MFC
An Introduction to Computers and Visual Basic
Digital Image Processing
An Introduction to Computers and Visual Basic
Topics Graphical User Interfaces Using the tkinter Module
The ROOT framework 1: Introduction
Presentation transcript:

Postgraduate Computing Lectures Applications I: Analysis Tools 1 Applications: Analysis Tools Analysis Tools –Used to extract Physics from reconstructed event data. Generics Tools e.g. – Mathematica HEP Specific Tools e.g –Paw Fortran based –ROOT C++

Postgraduate Computing Lectures Applications I: Analysis Tools 2 Applications: Analysis Tools Mathematica … The diagrams shown here come from The Mathematica Book by Stephen Wolfram. Mathematica –A set of interactive tools for numeric, symbolic and graphical representation of mathematical concepts Numeric Computation

Postgraduate Computing Lectures Applications I: Analysis Tools 3 Applications: Analysis Tools … Mathematica Symbolic Computation Graphics

Postgraduate Computing Lectures Applications I: Analysis Tools 4 Applications: Analysis Tools Paw… What is PAW? –A tool to display and manipulate data. Using PAW –Involves operations on 3 data types:- –Vectors: 1, 2 or 3 dimensional arrays –Histograms: 1 or 2 dimensional –N-tuples: Tables of events Vectors –Have character identifier e.g. vec –1, 2 or 3 dim. arrays e.g. vec(10,3) –Arbitrary size and number (almost!) –Create in memory, Read from disk (can filter) and Write to disk –Combine e.g. –Select subrange e.g. vec(2:5,2) –Draw (as histogram bins), Plot (histogram points) and Fit to function

Postgraduate Computing Lectures Applications I: Analysis Tools 5 Applications: Analysis Tools …Paw… Histograms –Have a numeric identifier e.g. 123 –1 or 2 dimensional –Can associate errors with bins –Read from / Write to disk / Create in memory. –Combine e.g. A = B * C –Select subrange e.g.123(1:20) –Wide range of plotting and fitting facilities N-tuples –Have numeric identifiers e.g. 123 –Record a set of n numbered (1..n) events each with m named attributes –Create in memory, I/O to disk. –Merge two or more. –Can plot functions of attributes, e.g. if have attributes x,y plot:- sqrt(x**2+y**2) –Can apply cuts on points to plot e.g.:- sin(x)+log(y) z>1.0.and.z<10.0

Postgraduate Computing Lectures Applications I: Analysis Tools 6 Applications: Analysis Tools …Paw... SIGMA –A system for vector operation e.g:- sigma x=array(200,0#2*pi) sigma s=sin(x) Create a 200 point vector x running  Create a 200 point vector s of sin(x) COMIS –A FORTRAN interpreter –Supports a subset of FORTRAN77 –Has access to PAW’s internal data structures Commands –Have a tree structure e.g. vector/operations/vscale –Can be stored in files as macros. Files have the extension.kumac –Complete programming language with:- Local and Global variables Flow control Argument passing - so that macros can be used like subroutines Embedded data files –Typically users develop kumac files as part of their analysis tool set

Postgraduate Computing Lectures Applications I: Analysis Tools 7 Applications: Analysis Tools …Paw Demo.kumac files –To run some standard demos:- cd some-work-dir cp ~west/lectures/paw/*.*./ paw (press return for default display) exec pawex1.kumac exec pawex2.kumac... exec pawex29.kumac –For example exec pawex1.kumac should produce:- Paw Tutorial:- –See

Postgraduate Computing Lectures Applications I: Analysis Tools 8 Applications: Analysis Tools ROOT... ROOT: Tool and a Framework for OO Data Analysis As a Tool –Enter commands to display and manipulate data –Commands are C++ (covers ~85% of full language – including simple templates) –Can use to prototype new code As a Framework –Use ROOT as a library and link in user C++ code –Can use result as a tool Supports User Classes –User can define new classes –Can do this either as Tool or Framework –These can inherit from ROOT classes.

Postgraduate Computing Lectures Applications I: Analysis Tools 9 Applications: Analysis Tools...ROOT... Base Classes –Objects –Files and Directories –I/O –System interface –Basics maths Containers –Collections –Lists –Arrays –Maps (hashs) Histogram and Minimisation –Up to 3D –Profile –Minuit (general fitting package) Trees and N-tuples –Generalise n-tuple concept to a binary tree of objects Matrices

Postgraduate Computing Lectures Applications I: Analysis Tools 10 Applications: Analysis Tools...ROOT... 2D Graphics –lines, text, shapes etc. 3D Graphics and Geometry –3D shapes e.g. cone, helix –Geometry description Tree of nodes Nodes properties: shape, material, rotation GUI –Toolkit to build GUI Meta Data –For describing classes Network –Access to network, including HTTP Documentation –Build HTML directly from source code Interactive Interface –For user application to act as a tool Parallel Process Support

Postgraduate Computing Lectures Applications I: Analysis Tools 11 Applications: Analysis Tools...ROOT... Naming Convention –TName e.g. TList TObject –Is the primordial object –Most other classes inherit from it –Provides base for generic operations such as:- I/O, Graphics, Containerisation Graphics: TCanvas, TPad –TCanvas is rectangular window holding TPads. –TPad maps to a rectangular area on a TCanvas –TPad holds a list of objects (including TPads) to be displayed

Postgraduate Computing Lectures Applications I: Analysis Tools 12 Applications: Analysis Tools...ROOT... File access: TDir and TFile –A TDir is a directory. It holds a list of named objects (can include other TDir) –A TFile is a file. It consists of a series of TDir objects. –Reading from a file Involves passing TFile the name of the object to be retrieved. It returns pointer. Event I/O: TTree and TBranch –General concept of an event A heterogeneous collection of objects. –All have to be output together –A TBranch holds a collection of objects It can include TBranch. It has its own buffer. –A TTree is a collection of TBranch. It synchronises I/O. –But, can just input partial event Select TBranch Input rest of Ttree conditionally

Postgraduate Computing Lectures Applications I: Analysis Tools 13 Applications: Analysis Tools...ROOT... hbooksm.ntp –n-tuple 800 –has variables:- Vx_x Vx_y Vx_z hbooksm.root –TTree h800 –TBranch:- Vx_x Vx_y Vx_z Working with a PAW HBOOK N-tuple –Converted using h2root:- hbooksm.ntp h2root hbooksm.root

Postgraduate Computing Lectures Applications I: Analysis Tools 14 Applications: Analysis Tools...ROOT... { // Clear out any object created by user in the current session by // sending Reset message to the master object gROOT. gROOT->Reset(); // Create a canvas (window) and within it define 3 pads (sub-windows // holding graphical material). // Create canvas giving name, title, top left corner, width and height // in pixels. c1 = new TCanvas("c1","ROOT Demo",200,10,700,500); // Create pads giving name, title, limits (as fraction of canvas) and // background colour (8 = white) pad1 = new TPad("pad1","Pad1: (Top half)", 0.02,0.52,0.98,0.98,8); pad2 = new TPad("pad2","Pad2: (Bottom left)", 0.02,0.02,0.48,0.48,8); pad3 = new TPad("pad3","Pad3: (Bottom right)",0.52,0.02,0.98,0.48,8); // Tell the pads to draw themselves. This actually adds them to the list // of objects that the canvas holds. Later, when the canvas is sent the // Update message, it will send an Update message to all its pads. pad1->Draw(); pad2->Draw(); pad3->Draw(); // Create a File object as an input from the file hbooksm.root. TFile *hfile = new TFile("hbooksm.root", "READ"); // Set up a Tree object pointer by asking hfile to find the object whose // name is h800 (the name created by h2root for n-tuple 800). The Get // message returns a pointer to Object so have to be cast up to a Tree. TTree *my_ntuple = (TTree *) hfile->Get("h800");

Postgraduate Computing Lectures Applications I: Analysis Tools 15 Applications: Analysis Tools...ROOT... // Make pad1 the current working graphics directory by sending it cd // (cf. Unix). From now on, any Draw message will draw in this pad. pad1->cd(); // Send the n-tuple a Draw message, supplying the expression to be drawn. // This automatically creates and fills a histogram object (like PAW). // pad1 will contain this histogram. my_ntuple->Draw("Vx_z"); // In a similar way, plot a 2d histogram in pad2. pad2->cd(); // This time we tell the n-tuple to change the defaults to be used when // creating the 2d histogram. my_ntuple->SetFillColor(5); my_ntuple->SetMarkerStyle(3); // Note the syntax is different to PAW (Vx_z%Vx_x). my_ntuple->Draw("Vx_z:Vx_x"); // Finally plot a 3d plot in pad3. This time, we also place a cut on the // data to be plotted. pad3->cd(); my_ntuple->SetMarkerStyle(7); my_ntuple->Draw("Vx_z:Vx_y:Vx_x", ”sqrt(Vx_x**2+Vx_y**2+Vx_z**2)<5000."); // Now tell the canvas to update itself, causing all its pads to tell all // the objects they contain to paint themselves. c1->Update(); }`

Postgraduate Computing Lectures Applications I: Analysis Tools 16 To run this example:- root.x ~west/lectures/root/demo/root_demo.C Applications: Analysis Tools...ROOT Documentation –Root home page:- From there look at the Root Tutorial