HEP data analysis using ROOT

Size: px
Start display at page:

Download "HEP data analysis using ROOT"

Transcription

1 HEP data analysis using ROOT week I ROOT, CLING and the command line Histograms, Graphs and Trees Mark Hodgkinson

2 Course contents ROOT, CLING and the command line Histograms, Graphs and Trees File I/O, memory and object ownership Fitting, peak finding and Fourier analysis Using Maths and Physics libraries ROOT geometries Developing shared libraries Bindings to other languages ROOT as a dependence in your application 2

3 Aims/Objectives To work through various HEP use cases biased by J. Perkins own experience on T2K slides (mostly) written by J. Perkins Not a digest of existing documentation will signpost useful resources where apt To be interactive problems/exercises each week - not assessed, but I am supposed to check you tried them! So either we can do this as we go along (only if everyone has a laptop with them) or just me the output of the tasks ( address at end). 3

4 About Me My own perspective is an ATLAS user and mostly with C++, with some python and a lot of shell scripting. Mostly have used ROOT for histograms, fitting of histograms and machine learning (neural net to find K0s particles in BaBar and BDT to distinguish pi0 and hadronic calorimeter clusters in ATLAS). Some experiments may have their own additional layers - e.g. ATLAS has its own analysis frameworks which works directly with ATLAS specific c++ objects, some people then convert those formats to TTree (see relevant slides) which can be used outside ATLAS code framework. 4

5 How to Get Help Any relevant mailing lists in your experiment. Ask a someone in our HEP group (e.g. who you share an office with). Ask on ROOT forums -don t send them your code. They very often ask for a small self contained and standalone example demonstrating the issue you have, so that they can run it to reproduce your issue. 5

6 Week 1 ROOT, CLING and the command line quick introduction to ROOT and CLING Histograms and Graphs reading, writing and visualising data formatting and plot aesthetics writing simple macros Trees This course assumes you are familiar with C++ and Object Oriented programming - if not, we can divert some (brief) time to explain concepts as they come up. Just ask 6

7 ROOT and CINT Written at CERN, ROOT has been developed for many years evolved from many other projects, mainly PAW (Fortran) It predates ANSI C++ Your compiler will complain if you break standards and conventions ROOT 5 CINT probably won t - but we will learn using ROOT 6 ROOT 5 CINT contains many relics/implementations that are not considered good practice today idiosyncrasies, particularities and peculiarities galore ROOT is not the only data analysis package you can use, and some people argue not even close to the best - but it is the most widely used in particle physics. 7

8 ROOT, CINT and CLING CLING (or CINT) is a C/C++ JIT (interpreter) in which lines of code can be executed in similar fashion to a standard nix shell * not ANSI compliant CLING replaced CINT in ROOT6 CLING (or CINT) is a useful environment in which to manipulate data interactively and develop code emulation incurs performance overheads so not suitable for large-scale processing 8

9 Where to find ROOT There are many versions available, sometimes with different features enabled - default on hep cluster is 5.34 (should be setup for you already and you can just type root to run it) If you would like a different version (or non-default features) you can ask the hep cluster admins to install that - hep-cluster-admins@sheffield.ac.uk You can also install your favourite version on your laptop - the ROOT webpages have details of how to do it via various different methods (download binary, download source code, get source code from git etc). 9

10 General Setup We will use ROOT 6 for this course. export ROOTSYS=/usr/local/root/ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ROOTSYS/lib export PATH=$PATH:$ROOTSYS/bin Or use setenv if not using the bash shell. On OS X LD_LIBRARY_PATH is DYLD_LIBRARY_PATH You can put your favourite setup in a login script (mine is in the file /home/hodgkinson/.bashrc) so you don t need to remember if you prefer. LD_LIBRARY_PATH tells your shell where to find ROOT libraries - can be needed when compiling for example. PATH tells it where to find the ROOT executable (what you run when you type root ). 10

11 Where to find ROOT If you work in a large collaboration they may have a way for you to use a version they recommend. For example ATLAS provides the setup (for other experiments you will have to ask colleagues) shown on the next page

12 Where to find ROOT

13 Starting ROOT 13

14 ROOT Login Scripts In my case I apply the ATLAS style settings, which is a C file provided by the ATLAS collaboration. This ensures all my plots can follow the ATLAS guidelines for public plots. Your experiment may have something similar. 14

15 Starting ROOT 15

16 Command Prompt Once ROOT starts up you get the CLING prompt. You can scope objects to look up methods - hit the tab key after typing TObject::Get 16

17 Starting ROOT Review command history with arrow keys shell accessible via.! see ~/.root_hist 17

18 Histograms Many HEP data are binned into histograms but don t down-sample unnecessarily! write un-binned, plot binned should not have to reproduce data* in order to rebin, change axis ranges, perform fits etc.» *perhaps taking many hours Simple example - TASK1: Make sure you can draw the histogram on the next page. 18

19 Histograms 19

20 Histograms name h should be unique or ROOT will complain since addresses map to names compiler won t (just a string!) - this is valid c++. fun runtime errors if name collision occurs in a binary title; x-axis title; y-axis title nbins, x_low, x_high FillRandom is inherited from TH1 parent class gaus is a built-in formula 20

21 ROOT classes are documented here. Can click through to TH1F. Careful you use the documentation for the version of ROOT you are using! 21

22 Graphs un-binned (x,y) values no argument for name in constructor(s)! graphs can be useful for fitting data with errors (week II) TASK2: right click the graph and choose the FitPanel» fit a pol2, what is the χ 2 /NDF? 22

23 Graphs 23

24 TGraph data from a file Write some data to a file and create a Graph this could be scope data from the lab Construct a TGraph, with filename as argument in the constructor. Watch out - in c++ of ofstream is in the std namespace, as is endl. Compiler will insist on the below code: 24

25 TGraph data from a file Task3: Make sure you can draw this graph. 25

26 TGraph data from a file Default format is %lg %lg second argument to constructor is format string new TGraph( <filename>, <format_string> ); e.g. can skip a column : %lg %*lg %lg see TGraph documentation for more info Also I found this nice page about scanf formatting - e.g. %lg means double. 26

27 Plot aesthetics Use the GUI to make your plots nicer choose Editor from the View menu Interactively set (via right click in relevant places) line widths colors [sic] axis titles grid lines choose Toolbar from View menu for more features Use SaveAs *.C to save a file which can regenerate this plot. 27

28 ROOT macros Simply lines of ROOTish enclosed in {} can execute from command line or CLING TCanvas::SaveAs( <name>.c ) wrote a macro note how the data points are saved don t save data in this way, just exploit auto-code generation TASK3: save one of today s plots as a macro run via command line $ root mymacro.c run via CLING root [1].x mymacro.c make some edits and rerun 28

29 ROOT macros the { insert ROOTish here } macro format is only interpretable by CINT/CLING compilation requires more conventional (but not quite) C++ style coding strictness dependent on choice of compiler native ROOT compiler (one of) your system(s) compiler(s) will return to macro compilation in week IV 29

30 Trees Histograms are useful, but they only store a single parameter can extend to 2D hist of entries*weights with bin errors, but still limited How to store information across many channels? use TTrees! n.b. there were no namespaces in C++ when ROOT began, hence the T prefix on all ROOT types 30

31 Trees Trees in ROOT have branches and leaves they also offer compression and I/O optimisation The branches can be basic data types or user defined classes single instances of or multi-dimensional containers of One usually saves data at the event level so the Tree level data usually has structure many tracks and vertices in a single event tracks and vertices have their own sub structure 31

32 Trees You can add branches (TBranch) and leaves (TLeaf) to (T)Trees by hand but this is not the ROOT preferred method! though you will undoubtedly encounter it many times, The correct/expected way to read and write to a Tree is to use a class that encapsulates your data then your Tree just contains a reference to this struct/ object no need to reference all the individual parameters Writing classes to a Tree requires compilation this is covered later for now just focus on reading data in a Tree 32

33 Trees Task4: Run one of the tutorial macros to generate a file containing a Tree Open the file $ root tree2.root And start a browser double click the leaves/branches to draw them 33

34 34

35 Can examine Tree branch structure 35

36 Trees notice that pointer to Tree t2 is automatically instantiated Tree was loaded into global directory when file was opened FUN TASK: start a new root session and type and list the global file pointer, gfile->ls() looking at branches, can see some are arrays can plot elements on different axes root [4] t2->draw("vect[0]:vect[1]:vect[2] ) 36

37 Trees 37

38 Can scan branches TTrees Can perform cuts based analysis directly using TTree::Draw() 38

39 Trees 39

40 Trees TASK5: use TTDraw( <var>, <cut> ) to draw some other cut dependent quantities To get the drawn histogram redirect draw expression note C style type-casting, safer c++ achieves same thing: 40

41 Back to Histograms FAQ: how to normalise to unity? e.g. for shape comparison of two spectra Note CLING lets you declare variables without declaring their type - not possible with compiled c++ (unless you use auto keyword, but that should be used with care). 41

42 ~/rootlogon.c you can place a macro in your home area that makes some useful definitions e.g. stylistic changes 42

43 ~/rootlogon.c 43

44 ~/rootlogon.c 44

45 Closing remarks RTFM there s a lot of documentation out there likely someone has faced your issue already also check the ROOT forum Have highlighted some ROOTisms today there are many more to come remember not to assume what you see is good coding practice Next time: I/O and memory fitting and spectral analysis Any questions? Also m.hodgkinson@sheffield.ac.uk for questions. 45

Introduction to ROOT. M. Eads PHYS 474/790B. Friday, January 17, 14

Introduction to ROOT. M. Eads PHYS 474/790B. Friday, January 17, 14 Introduction to ROOT What is ROOT? ROOT is a software framework containing a large number of utilities useful for particle physics: More stuff than you can ever possibly need (or want)! 2 ROOT is written

More information

ROOT: An object-orientated analysis framework

ROOT: An object-orientated analysis framework C++ programming for physicists ROOT: An object-orientated analysis framework PD Dr H Kroha, Dr J Dubbert, Dr M Flowerdew 1 Kroha, Dubbert, Flowerdew 14/04/11 What is ROOT? An object-orientated framework

More information

ROOT Course. Vincenzo Vitale, Dip. Fisica and INFN Roma 2

ROOT Course. Vincenzo Vitale, Dip. Fisica and INFN Roma 2 ROOT Course Vincenzo Vitale, Dip. Fisica and INFN Roma 2 Introduction This is a basic introduction to ROOT. The purpose of the course is to provide a starting knowledge and some practical experiences on

More information

HEP data analysis using ROOT

HEP data analysis using ROOT HEP data analysis using ROOT week 3 ROOT Maths and Physics Libraries ROOT Geometries Mark Hodgkinson 1 Week 3 ROOT maths and physics libraries vectors and their operations data modelling with RooFit ROOT

More information

ROOT. Introduction. Spring 2010 Lecture 5. S. Lehti and V.Karimäki. COMPUTING METHODS IN HIGH ENERGY PHYSICS (page 1)

ROOT. Introduction. Spring 2010 Lecture 5. S. Lehti and V.Karimäki. COMPUTING METHODS IN HIGH ENERGY PHYSICS (page 1) Introduction ROOT is an object-oriented framework aimed at solving data analysis challenges of high energy physics. The commonly used components of ROOT are Command line interpreter Histogramming and fitting

More information

Lecture I: Basics REU Root Duke Jen Raaf

Lecture I: Basics REU Root Duke Jen Raaf Lecture I: Basics Linux commands What is ROOT? Interactive ROOT session - command line vs. macros vs. user-compiled code Opening files / accessing information Histograms and Trees and Functions, Oh My!

More information

Practical Statistics for Particle Physics Analyses: Introduction to Computing Examples

Practical Statistics for Particle Physics Analyses: Introduction to Computing Examples Practical Statistics for Particle Physics Analyses: Introduction to Computing Examples Louis Lyons (Imperial College), Lorenzo Moneta (CERN) IPMU, 27-29 March 2017 Introduction Hands-on session based on

More information

Contents. Note: pay attention to where you are. Note: Plaintext version. Note: pay attention to where you are... 1 Note: Plaintext version...

Contents. Note: pay attention to where you are. Note: Plaintext version. Note: pay attention to where you are... 1 Note: Plaintext version... Contents Note: pay attention to where you are........................................... 1 Note: Plaintext version................................................... 1 Hello World of the Bash shell 2 Accessing

More information

INTRODUCTION TO ROOT & BASIC APPLICATIONS

INTRODUCTION TO ROOT & BASIC APPLICATIONS INTRODUCTION TO ROOT & BASIC APPLICATIONS by Alexis Pompili (pompili@ba.infn.it) Master course Laboratorio di Analisi Da3 Esercitazione 0 LABORATORIO ANALISI DATI Alexis Pompili How to access the Virtual

More information

Introduction to ROOT. Sebastian Fleischmann. 06th March 2012 Terascale Introductory School PHYSICS AT THE. University of Wuppertal TERA SCALE SCALE

Introduction to ROOT. Sebastian Fleischmann. 06th March 2012 Terascale Introductory School PHYSICS AT THE. University of Wuppertal TERA SCALE SCALE to ROOT University of Wuppertal 06th March 2012 Terascale Introductory School 22 1 2 3 Basic ROOT classes 4 Interlude: 5 in ROOT 6 es and legends 7 Graphical user interface 8 ROOT trees 9 Appendix: s 33

More information

CS 1110 SPRING 2016: GETTING STARTED (Jan 27-28) First Name: Last Name: NetID:

CS 1110 SPRING 2016: GETTING STARTED (Jan 27-28)   First Name: Last Name: NetID: CS 1110 SPRING 2016: GETTING STARTED (Jan 27-28) http://www.cs.cornell.edu/courses/cs1110/2016sp/labs/lab01/lab01.pdf First Name: Last Name: NetID: Goals. Learning a computer language is a lot like learning

More information

Lab: Supplying Inputs to Programs

Lab: Supplying Inputs to Programs Steven Zeil May 25, 2013 Contents 1 Running the Program 2 2 Supplying Standard Input 4 3 Command Line Parameters 4 1 In this lab, we will look at some of the different ways that basic I/O information can

More information

Bioinformatics? Reads, assembly, annotation, comparative genomics and a bit of phylogeny.

Bioinformatics? Reads, assembly, annotation, comparative genomics and a bit of phylogeny. Bioinformatics? Reads, assembly, annotation, comparative genomics and a bit of phylogeny stefano.gaiarsa@unimi.it Linux and the command line PART 1 Survival kit for the bash environment Purpose of the

More information

CS1110 Lab 1 (Jan 27-28, 2015)

CS1110 Lab 1 (Jan 27-28, 2015) CS1110 Lab 1 (Jan 27-28, 2015) First Name: Last Name: NetID: Completing this lab assignment is very important and you must have a CS 1110 course consultant tell CMS that you did the work. (Correctness

More information

INTRODUCTION TO MATLAB, SIMULINK, AND THE COMMUNICATION TOOLBOX

INTRODUCTION TO MATLAB, SIMULINK, AND THE COMMUNICATION TOOLBOX INTRODUCTION TO MATLAB, SIMULINK, AND THE COMMUNICATION TOOLBOX 1) Objective The objective of this lab is to review how to access Matlab, Simulink, and the Communications Toolbox, and to become familiar

More information

INTRODUCTION TUTORIAL

INTRODUCTION TUTORIAL INTRODUCTION TUTORIAL Introduction to ROOT Adrian Bevan YETI January 2007 Uses ROOT 5.12.00 OVERVIEW 3 tutorials over the next two days: Introduction: Introduction to ROOT. Multi Variate Analysis: Training

More information

CSE 101 Introduction to Computers Development / Tutorial / Lab Environment Setup

CSE 101 Introduction to Computers Development / Tutorial / Lab Environment Setup CSE 101 Introduction to Computers Development / Tutorial / Lab Environment Setup Purpose: The purpose of this lab is to setup software that you will be using throughout the term for learning about Python

More information

Contents A Little C++

Contents A Little C++ Contents 1 A Little C++ 3 1.1 Classes, Methods and Constructors...................................... 3 1.2 Inheritance and Data Encapsulation..................................... 4 1.2.1 Method Overriding...........................................

More information

An Introduction to Root I/O

An Introduction to Root I/O An Introduction to Root I/O C Coleman-Smith Duke Physics cec24@phy.duke.edu March 31, 2010 Outline Getting Started With Root What is root What can root do Compiling, installing, getting help Macros & Functions

More information

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture 04 Programs with IO and Loop We will now discuss the module 2,

More information

ROOT Trips & Tricks. Ole Hansen. Jefferson Lab. Hall A & C Analysis Workshop June 26 27, 2017

ROOT Trips & Tricks. Ole Hansen. Jefferson Lab. Hall A & C Analysis Workshop June 26 27, 2017 ROOT Trips & Tricks Ole Hansen Jefferson Lab Hall A & C Analysis Workshop June 26 27, 2017 Ole Hansen (Jefferson Lab) ROOT Trips & Tricks Analysis Workshop 2017 1 / 25 Brief Introduction Ole Hansen (Jefferson

More information

Introduction to UNIX. Logging in. Basic System Architecture 10/7/10. most systems have graphical login on Linux machines

Introduction to UNIX. Logging in. Basic System Architecture 10/7/10. most systems have graphical login on Linux machines Introduction to UNIX Logging in Basic system architecture Getting help Intro to shell (tcsh) Basic UNIX File Maintenance Intro to emacs I/O Redirection Shell scripts Logging in most systems have graphical

More information

Hall-C Analyzer & Hall-C Replay

Hall-C Analyzer & Hall-C Replay Hall-C Analyzer & Hall-C Replay Jefferson Lab Hall-C Analyzer Overview Hall-C ROOT Analysis framework (HCANA) is written in C++ and is an extension of the Hall A analyzer podd Based on previous Fortran

More information

Unix Tutorial Haverford Astronomy 2014/2015

Unix Tutorial Haverford Astronomy 2014/2015 Unix Tutorial Haverford Astronomy 2014/2015 Overview of Haverford astronomy computing resources This tutorial is intended for use on computers running the Linux operating system, including those in the

More information

The first thing we ll need is some numbers. I m going to use the set of times and drug concentration levels in a patient s bloodstream given below.

The first thing we ll need is some numbers. I m going to use the set of times and drug concentration levels in a patient s bloodstream given below. Graphing in Excel featuring Excel 2007 1 A spreadsheet can be a powerful tool for analyzing and graphing data, but it works completely differently from the graphing calculator that you re used to. If you

More information

Starting to Program in C++ (Basics & I/O)

Starting to Program in C++ (Basics & I/O) Copyright by Bruce A. Draper. 2017, All Rights Reserved. Starting to Program in C++ (Basics & I/O) On Tuesday of this week, we started learning C++ by example. We gave you both the Complex class code and

More information

MODEL-BASED DEVELOPMENT -TUTORIAL

MODEL-BASED DEVELOPMENT -TUTORIAL MODEL-BASED DEVELOPMENT -TUTORIAL 1 Objectives To get familiar with the fundamentals of Rational Rhapsody. You start with the simplest example possible. You end with more complex functionality, and a more

More information

Introduction - GAMA. Gis & Agent-based Modeling Architecture. Agent-based, spatially explicit, modeling and simulation platform.

Introduction - GAMA. Gis & Agent-based Modeling Architecture. Agent-based, spatially explicit, modeling and simulation platform. Econofisica / Econophysics, Prof. Terna Anno accademico 2016/2017 GAMA Gis & Agent-based Modeling Architecture JADE JAVA Agent DEvelopment Framework Dr. Jacopo Pellegrino - http://personalpages.to.infn.it/~japelleg/

More information

Week 1: Introduction to R, part 1

Week 1: Introduction to R, part 1 Week 1: Introduction to R, part 1 Goals Learning how to start with R and RStudio Use the command line Use functions in R Learning the Tools What is R? What is RStudio? Getting started R is a computer program

More information

Exercise sheet 1 To be corrected in tutorials in the week from 23/10/2017 to 27/10/2017

Exercise sheet 1 To be corrected in tutorials in the week from 23/10/2017 to 27/10/2017 Einführung in die Programmierung für Physiker WS 207/208 Marc Wagner Francesca Cuteri: cuteri@th.physik.uni-frankfurt.de Alessandro Sciarra: sciarra@th.physik.uni-frankfurt.de Exercise sheet To be corrected

More information

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR 603203 DEPARTMENT OF COMPUTER SCIENCE & APPLICATIONS QUESTION BANK (2017-2018) Course / Branch : M.Sc CST Semester / Year : EVEN / II Subject Name

More information

Week - 01 Lecture - 04 Downloading and installing Python

Week - 01 Lecture - 04 Downloading and installing Python Programming, Data Structures and Algorithms in Python Prof. Madhavan Mukund Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 01 Lecture - 04 Downloading and

More information

Getting Started With Linux and Fortran Part 2

Getting Started With Linux and Fortran Part 2 Getting Started With Linux and Fortran Part 2 by Simon Campbell [The K Desktop Environment, one of the many desktops available for Linux] ASP 3012 (Stars) Computer Tutorial 2 1 Contents 1 Some Funky Linux

More information

Introduction to Python Part 2

Introduction to Python Part 2 Introduction to Python Part 2 v0.2 Brian Gregor Research Computing Services Information Services & Technology Tutorial Outline Part 2 Functions Tuples and dictionaries Modules numpy and matplotlib modules

More information

PyROOT: Seamless Melting of C++ and Python. Pere MATO, Danilo PIPARO on behalf of the ROOT Team

PyROOT: Seamless Melting of C++ and Python. Pere MATO, Danilo PIPARO on behalf of the ROOT Team PyROOT: Seamless Melting of C++ and Python Pere MATO, Danilo PIPARO on behalf of the ROOT Team ROOT At the root of the experiments, project started in 1995 Open Source project (LGPL2) mainly written in

More information

CS354 gdb Tutorial Written by Chris Feilbach

CS354 gdb Tutorial Written by Chris Feilbach CS354 gdb Tutorial Written by Chris Feilbach Purpose This tutorial aims to show you the basics of using gdb to debug C programs. gdb is the GNU debugger, and is provided on systems that

More information

Use the Move tool to drag A around and see how the automatically constructed objects (like G or the perpendicular and parallel lines) are updated.

Use the Move tool to drag A around and see how the automatically constructed objects (like G or the perpendicular and parallel lines) are updated. Math 5335 Fall 2015 Lab #0: Installing and using GeoGebra This semester you will have a number of lab assignments which require you to use GeoGebra, a dynamic geometry program. GeoGebra lets you explore

More information

Programming for Non-Programmers

Programming for Non-Programmers Programming for Non-Programmers Python Chapter 2 Source: Dilbert Agenda 6:00pm Lesson Begins 6:15pm First Pillow example up and running 6:30pm First class built 6:45pm Food & Challenge Problem 7:15pm Wrap

More information

The Command Shell. Fundamentals of Computer Science

The Command Shell. Fundamentals of Computer Science The Command Shell Fundamentals of Computer Science Outline Starting the Command Shell Locally Remote Host Directory Structure Moving around the directories Displaying File Contents Compiling and Running

More information

A Brief Haskell and GHC Refresher

A Brief Haskell and GHC Refresher A Brief Haskell and GHC Refresher Henrik Nilsson and Neil Sculthorpe School of Computer Science University of Nottingham 24th September 2013 1 Introduction The purpose of this document is to give you quick

More information

15-122: Principles of Imperative Computation

15-122: Principles of Imperative Computation 15-122: Principles of Imperative Computation Lab 0 Navigating your account in Linux Tom Cortina, Rob Simmons Unlike typical graphical interfaces for operating systems, here you are entering commands directly

More information

Operator overloading

Operator overloading 1 Introduction 2 The copy constructor 3 Operator Overloading 4 Eg 1: Adding two vectors 5 The -> operator 6 The this pointer 7 Overloading = 8 Unary operators 9 Overloading for the matrix class 10 The

More information

Matlab Advanced Programming. Matt Wyant University of Washington

Matlab Advanced Programming. Matt Wyant University of Washington Matlab Advanced Programming Matt Wyant University of Washington Matlab as a programming Language Strengths (as compared to C/C++/Fortran) Fast to write -no type declarations needed Memory allocation/deallocation

More information

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #17. Loops: Break Statement

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #17. Loops: Break Statement Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #17 Loops: Break Statement (Refer Slide Time: 00:07) In this session we will see one more feature that is present

More information

Shell Scripting. Jeremy Sanders. October 2011

Shell Scripting. Jeremy Sanders. October 2011 Shell Scripting Jeremy Sanders October 2011 1 Introduction If you use your computer for repetitive tasks you will find scripting invaluable (one of the advantages of a command-line interface). Basically

More information

CSE 374 Programming Concepts & Tools. Hal Perkins Fall 2015 Lecture 19 Introduction to C++

CSE 374 Programming Concepts & Tools. Hal Perkins Fall 2015 Lecture 19 Introduction to C++ CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 19 Introduction to C++ C++ C++ is an enormous language: All of C Classes and objects (kind of like Java, some crucial differences) Many

More information

BobCAD-CAM FAQ #50: How do I use a rotary 4th axis on a mill?

BobCAD-CAM FAQ #50: How do I use a rotary 4th axis on a mill? BobCAD-CAM FAQ #50: How do I use a rotary 4th axis on a mill? Q: I ve read FAQ #46 on how to set up my milling machine. How do I enable 4th axis to actually use it? A: Enabling 4th axis in the machine

More information

Computer and Programming: Lab 1

Computer and Programming: Lab 1 01204111 Computer and Programming: Lab 1 Name ID Section Goals To get familiar with Wing IDE and learn common mistakes with programming in Python To practice using Python interactively through Python Shell

More information

Deep Learning Photon Identification in a SuperGranular Calorimeter

Deep Learning Photon Identification in a SuperGranular Calorimeter Deep Learning Photon Identification in a SuperGranular Calorimeter Nikolaus Howe Maurizio Pierini Jean-Roch Vlimant @ Williams College @ CERN @ Caltech 1 Outline Introduction to the problem What is Machine

More information

P445/515 Data Analysis using PAW

P445/515 Data Analysis using PAW P445/515 Data Analysis using PAW C. McGrew February 10, 2003 Abstract PAW (Physics Analysis Workstation) is a complete physics analysis package developed at CERN to handle high energy physics data. It

More information

Lecture 3. Functions & Modules

Lecture 3. Functions & Modules Lecture 3 Functions & Modules Labs this Week Lab 1 is due at the beginning of your lab If it is not yet by then, you cannot get credit Only exception is for students who added late (Those students should

More information

Operating System Interaction via bash

Operating System Interaction via bash Operating System Interaction via bash bash, or the Bourne-Again Shell, is a popular operating system shell that is used by many platforms bash uses the command line interaction style generally accepted

More information

Exploring Python Basics

Exploring Python Basics CptS 111 Lab #1 Exploring Python Basics Learning Objectives: - Use the IDLE Shell window to run Python interactively - Use the IDLE Editor window to write a Python program (script) - Run Python programs

More information

2. Getting Started When you start GeoGebra, you will see a version of the following window. 1

2. Getting Started When you start GeoGebra, you will see a version of the following window. 1 Math 5335 Fall 2018 Lab #0: Installing and using GeoGebra This semester you will have a number of lab assignments which require you to use GeoGebra, a dynamic geometry program. GeoGebra lets you explore

More information

Name: Dr. Fritz Wilhelm Lab 1, Presentation of lab reports Page # 1 of 7 5/17/2012 Physics 120 Section: ####

Name: Dr. Fritz Wilhelm Lab 1, Presentation of lab reports Page # 1 of 7 5/17/2012 Physics 120 Section: #### Name: Dr. Fritz Wilhelm Lab 1, Presentation of lab reports Page # 1 of 7 Lab partners: Lab#1 Presentation of lab reports The first thing we do is to create page headers. In Word 2007 do the following:

More information

Installing a Custom AutoCAD Toolbar (CUI interface)

Installing a Custom AutoCAD Toolbar (CUI interface) Installing a Custom AutoCAD Toolbar (CUI interface) I used 2008LT for this tutorial; you may have a later AutoCAD with a different appearance. However, the customize user interface (cui) should be similar.

More information

Computer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring Topic Notes: C and Unix Overview

Computer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring Topic Notes: C and Unix Overview Computer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring 2009 Topic Notes: C and Unix Overview This course is about computer organization, but since most of our programming is

More information

3 Getting Started with Objects

3 Getting Started with Objects 3 Getting Started with Objects If you are an experienced IDE user, you may be able to do this tutorial without having done the previous tutorial, Getting Started. However, at some point you should read

More information

Intermediate Programming, Spring Misha Kazhdan

Intermediate Programming, Spring Misha Kazhdan 600.120 Intermediate Programming, Spring 2017 Misha Kazhdan Outline Unix/Linux command line Basics of the Emacs editor Compiling and running a simple C program Cloning a repository Connecting to ugrad

More information

Survey of Math: Excel Spreadsheet Guide (for Excel 2016) Page 1 of 9

Survey of Math: Excel Spreadsheet Guide (for Excel 2016) Page 1 of 9 Survey of Math: Excel Spreadsheet Guide (for Excel 2016) Page 1 of 9 Contents 1 Introduction to Using Excel Spreadsheets 2 1.1 A Serious Note About Data Security.................................... 2 1.2

More information

MATLAB INTRODUCTION. Matlab can be used interactively as a super hand calculator, or, more powerfully, run using scripts (i.e., programs).

MATLAB INTRODUCTION. Matlab can be used interactively as a super hand calculator, or, more powerfully, run using scripts (i.e., programs). L A B 6 M A T L A B MATLAB INTRODUCTION Matlab is a commercial product that is used widely by students and faculty and researchers at UTEP. It provides a "high-level" programming environment for computing

More information

QUIZ Friends class Y;

QUIZ Friends class Y; QUIZ Friends class Y; Is a forward declaration neeed here? QUIZ Friends QUIZ Friends - CONCLUSION Forward (a.k.a. incomplete) declarations are needed only when we declare member functions as friends. They

More information

BASIC USER TRAINING PROGRAM Module 5: Test Case Development

BASIC USER TRAINING PROGRAM Module 5: Test Case Development BASIC USER TRAINING PROGRAM Module 5: Test Case Development Objective Student will have an understanding of how to create, edit and execute a Test Case from Develop a Test Case Activity Page. Student will

More information

CS 251 Intermediate Programming Methods and Classes

CS 251 Intermediate Programming Methods and Classes CS 251 Intermediate Programming Methods and Classes Brooke Chenoweth University of New Mexico Fall 2018 Methods An operation that can be performed on an object Has return type and parameters Method with

More information

CS 251 Intermediate Programming Methods and More

CS 251 Intermediate Programming Methods and More CS 251 Intermediate Programming Methods and More Brooke Chenoweth University of New Mexico Spring 2018 Methods An operation that can be performed on an object Has return type and parameters Method with

More information

Lecture 05 I/O statements Printf, Scanf Simple statements, Compound statements

Lecture 05 I/O statements Printf, Scanf Simple statements, Compound statements Programming, Data Structures and Algorithms Prof. Shankar Balachandran Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 05 I/O statements Printf, Scanf Simple

More information

Educational Fusion. Implementing a Production Quality User Interface With JFC

Educational Fusion. Implementing a Production Quality User Interface With JFC Educational Fusion Implementing a Production Quality User Interface With JFC Kevin Kennedy Prof. Seth Teller 6.199 May 1999 Abstract Educational Fusion is a online algorithmic teaching program implemented

More information

Software Installation - Accessing Linux and Checking your Environmental Variables

Software Installation - Accessing Linux and Checking your Environmental Variables Accessing Linux and Checking your Environmental Although you may be fortunate enough to have a powerful multi-processor desktop running Linux, most of our sponsors do not. Most of our sponsors will have

More information

Polymorphism Part 1 1

Polymorphism Part 1 1 Polymorphism Part 1 1 What is Polymorphism? Polymorphism refers to a programming language s ability to process objects differently depending on their data type or class. Number person real complex kid

More information

Root programming and data analysis

Root programming and data analysis Special Praktikum: Root programming and data analysis Ascii data: Co60.dat Ge detector t Preamplifier Shaping amp. MCA γ 60Co γ-source 1173 and 1333 kev Ascii data Ascii data: Each line: corresponds to

More information

CSC 101 Spring 2010 Lab #8 Report Gradesheet

CSC 101 Spring 2010 Lab #8 Report Gradesheet CSC 101 Spring 2010 Lab #8 Report Gradesheet Name WFU Username Lab Section: A B C D Partner s Name (if you had one): Topic Points Notes Pre-lab questions 20 total - 5 at 4 points each Lab report questions

More information

Introduction to Linux. Woo-Yeong Jeong Computer Systems Laboratory Sungkyunkwan University

Introduction to Linux. Woo-Yeong Jeong Computer Systems Laboratory Sungkyunkwan University Introduction to Linux Woo-Yeong Jeong (wooyeong@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu What is Linux? A Unix-like operating system of a computer What is an

More information

Lab 1 Introduction to R

Lab 1 Introduction to R Lab 1 Introduction to R Date: August 23, 2011 Assignment and Report Due Date: August 30, 2011 Goal: The purpose of this lab is to get R running on your machines and to get you familiar with the basics

More information

ROOT5. L. Peter Alonzi III. November 10, University of Virginia

ROOT5. L. Peter Alonzi III. November 10, University of Virginia ROOT5 L. Peter Alonzi III University of Virginia November 10, 2010 Philosophy ROOT was written by people who haven t done physics for 20 years for people who won t do physics for 20 years. Back in the

More information

ARM DS-5. Using the Debugger. Copyright 2010 ARM. All rights reserved. ARM DUI 0446A (ID070310)

ARM DS-5. Using the Debugger. Copyright 2010 ARM. All rights reserved. ARM DUI 0446A (ID070310) ARM DS-5 Using the Debugger Copyright 2010 ARM. All rights reserved. ARM DUI 0446A () ARM DS-5 Using the Debugger Copyright 2010 ARM. All rights reserved. Release Information The following changes have

More information

CS1114: Matlab Introduction

CS1114: Matlab Introduction CS1114: Matlab Introduction 1 Introduction The purpose of this introduction is to provide you a brief introduction to the features of Matlab that will be most relevant to your work in this course. Even

More information

CS 2400 Laboratory Assignment #1: Exercises in Compilation and the UNIX Programming Environment (100 pts.)

CS 2400 Laboratory Assignment #1: Exercises in Compilation and the UNIX Programming Environment (100 pts.) 1 Introduction 1 CS 2400 Laboratory Assignment #1: Exercises in Compilation and the UNIX Programming Environment (100 pts.) This laboratory is intended to give you some brief experience using the editing/compiling/file

More information

Bash command shell language interpreter

Bash command shell language interpreter Principles of Programming Languages Bash command shell language interpreter Advanced seminar topic Louis Sugy & Baptiste Thémine Presentation on December 8th, 2017 Table of contents I. General information

More information

CSE 374 Programming Concepts & Tools. Hal Perkins Spring 2010

CSE 374 Programming Concepts & Tools. Hal Perkins Spring 2010 CSE 374 Programming Concepts & Tools Hal Perkins Spring 2010 Lecture 19 Introduction ti to C++ C++ C++ is an enormous language: g All of C Classes and objects (kind of like Java, some crucial differences)

More information

The Unix Shell & Shell Scripts

The Unix Shell & Shell Scripts The Unix Shell & Shell Scripts You should do steps 1 to 7 before going to the lab. Use the Linux system you installed in the previous lab. In the lab do step 8, the TA may give you additional exercises

More information

PAW: Physicist Analysis Workstation

PAW: Physicist Analysis Workstation PAW: Physicist Analysis Workstation What is PAW? A tool to display and manipulate data. Learning PAW See ref. in your induction week notes. Running PAW: 2 Versions:- PAW: 2 windows: A terminal window for

More information

Essentials for Scientific Computing: Bash Shell Scripting Day 3

Essentials for Scientific Computing: Bash Shell Scripting Day 3 Essentials for Scientific Computing: Bash Shell Scripting Day 3 Ershaad Ahamed TUE-CMS, JNCASR May 2012 1 Introduction In the previous sessions, you have been using basic commands in the shell. The bash

More information

Course May 18, Advanced Computational Physics. Course Hartmut Ruhl, LMU, Munich. People involved. SP in Python: 3 basic points

Course May 18, Advanced Computational Physics. Course Hartmut Ruhl, LMU, Munich. People involved. SP in Python: 3 basic points May 18, 2017 3 I/O 3 I/O 3 I/O 3 ASC, room A 238, phone 089-21804210, email hartmut.ruhl@lmu.de Patrick Böhl, ASC, room A205, phone 089-21804640, email patrick.boehl@physik.uni-muenchen.de. I/O Scientific

More information

Course Text. Course Description. Course Objectives. StraighterLine Introduction to Programming in C++

Course Text. Course Description. Course Objectives. StraighterLine Introduction to Programming in C++ Introduction to Programming in C++ Course Text Programming in C++, Zyante, Fall 2013 edition. Course book provided along with the course. Course Description This course introduces programming in C++ and

More information

KLiC C++ Programming. (KLiC Certificate in C++ Programming)

KLiC C++ Programming. (KLiC Certificate in C++ Programming) KLiC C++ Programming (KLiC Certificate in C++ Programming) Turbo C Skills: Pre-requisite Knowledge and Skills, Inspire with C Programming, Checklist for Installation, The Programming Languages, The main

More information

EL2310 Scientific Programming

EL2310 Scientific Programming Lecture 6: Introduction to C (pronobis@kth.se) Overview Overview Lecture 6: Introduction to C Roots of C Getting started with C Closer look at Hello World Programming Environment Schedule Last time (and

More information

GDB Tutorial. A Walkthrough with Examples. CMSC Spring Last modified March 22, GDB Tutorial

GDB Tutorial. A Walkthrough with Examples. CMSC Spring Last modified March 22, GDB Tutorial A Walkthrough with Examples CMSC 212 - Spring 2009 Last modified March 22, 2009 What is gdb? GNU Debugger A debugger for several languages, including C and C++ It allows you to inspect what the program

More information

Introduction to ROOT and application to data analysis at the LHC

Introduction to ROOT and application to data analysis at the LHC Introduction to ROOT and application to data analysis at the LHC INSTITUTE OF PHYSICS, HANOI August 13, 2014 1 Outline 1 ROOT: Motivation and Introduction 2 ROOT basics 3 ROOT analysis 4 Application to

More information

Lecture 10: building large projects, beginning C++, C++ and structs

Lecture 10: building large projects, beginning C++, C++ and structs CIS 330: / / / / (_) / / / / _/_/ / / / / / \/ / /_/ / `/ \/ / / / _/_// / / / / /_ / /_/ / / / / /> < / /_/ / / / / /_/ / / / /_/ / / / / / \ /_/ /_/_/_/ _ \,_/_/ /_/\,_/ \ /_/ \ //_/ /_/ Lecture 10:

More information

CS 112 Project Assignment: Visual Password

CS 112 Project Assignment: Visual Password CS 112 Project Assignment: Visual Password Instructor: Dan Fleck Overview In this project you will use Python to implement a visual password system. In the industry today there is ongoing research about

More information

SECTION 1: INTRODUCTION. ENGR 112 Introduction to Engineering Computing

SECTION 1: INTRODUCTION. ENGR 112 Introduction to Engineering Computing SECTION 1: INTRODUCTION ENGR 112 Introduction to Engineering Computing 2 Course Overview What is Programming? 3 Programming The implementation of algorithms in a particular computer programming language

More information

This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units.

This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units. This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units. Introduction Overview Advancements in technology are

More information

CISC 220 fall 2011, set 1: Linux basics

CISC 220 fall 2011, set 1: Linux basics CISC 220: System-Level Programming instructor: Margaret Lamb e-mail: malamb@cs.queensu.ca office: Goodwin 554 office phone: 533-6059 (internal extension 36059) office hours: Tues/Wed/Thurs 2-3 (this week

More information

cling Axel Naumann (CERN), Philippe Canal (Fermilab), Paul Russo (Fermilab), Vassil Vassilev (CERN)

cling Axel Naumann (CERN), Philippe Canal (Fermilab), Paul Russo (Fermilab), Vassil Vassilev (CERN) cling Axel Naumann (CERN), Philippe Canal (Fermilab), Paul Russo (Fermilab), Vassil Vassilev (CERN) Creating cling, an interactive interpreter interface for clang cling? C++* interpreter* *: not really

More information

Exploring Python Basics

Exploring Python Basics CptS 111 Lab #1 Fall 2017 Exploring Python Basics Learning Objectives: - Use the IDLE Shell window to run Python interactively - Use the IDLE Editor window to write a Python program (script) - Run Python

More information

Unix as a Platform Exercises. Course Code: OS-01-UNXPLAT

Unix as a Platform Exercises. Course Code: OS-01-UNXPLAT Unix as a Platform Exercises Course Code: OS-01-UNXPLAT Working with Unix 1. Use the on-line manual page to determine the option for cat, which causes nonprintable characters to be displayed. Run the command

More information

Lecture 3. Functions & Modules

Lecture 3. Functions & Modules Lecture 3 Functions & Modules Labs this Week Lab 1 is due at the beginning of your lab If it is not yet by then, you cannot get credit Only exception is for students who added late (Those students should

More information

Java Object Oriented Design. CSC207 Fall 2014

Java Object Oriented Design. CSC207 Fall 2014 Java Object Oriented Design CSC207 Fall 2014 Design Problem Design an application where the user can draw different shapes Lines Circles Rectangles Just high level design, don t write any detailed code

More information

Using LINUX a BCMB/CHEM 8190 Tutorial Updated (1/17/12)

Using LINUX a BCMB/CHEM 8190 Tutorial Updated (1/17/12) Using LINUX a BCMB/CHEM 8190 Tutorial Updated (1/17/12) Objective: Learn some basic aspects of the UNIX operating system and how to use it. What is UNIX? UNIX is the operating system used by most computers

More information

Appendix A. Introduction to MATLAB. A.1 What Is MATLAB?

Appendix A. Introduction to MATLAB. A.1 What Is MATLAB? Appendix A Introduction to MATLAB A.1 What Is MATLAB? MATLAB is a technical computing environment developed by The Math- Works, Inc. for computation and data visualization. It is both an interactive system

More information