LIGO-G0200XX-00-M Interactive DMT with Root John G. Zweizig LIGO, Caltech.

Slides:



Advertisements
Similar presentations
Parallel Virtual Machine Rama Vykunta. Introduction n PVM provides a unified frame work for developing parallel programs with the existing infrastructure.
Advertisements

The Web Warrior Guide to Web Design Technologies
ROOT TOOLKIT (I) Técnicas Fundamentales de Simulación, Reconstrucción y Análisis de Datos en Física Experimental de Partículas Isidro González Caballero.
 2005 Pearson Education, Inc. All rights reserved Introduction.
C++ Basics Prof. Shermane Austin. Learning Programming Language Basics Data Types – simple Expressions Relational and Logical Operators Conditional Statements.
CIS 101: Computer Programming and Problem Solving Lecture 8 Usman Roshan Department of Computer Science NJIT.
CS Lecture 03 Outline Sed and awk from previous lecture Writing simple bash script Assignment 1 discussion 1CS 311 Operating SystemsLecture 03.
LIGO-G0200XX-00-M Writing a DMT Monitor John G. Zweizig LIGO / Caltech LHO, August 21, 2004.
General Computer Science for Engineers CISC 106 Lecture 26 Dr. John Cavazos Computer and Information Sciences 04/24/2009.
LIGO-G0200XX-00-M DMT Monitors: Beyond the FOM John Zweizig LIGO/Caltech LLO August 18, 2006.
Basic Elements of C++ Chapter 2.
Introduction to C Language
Introduction to C++ - How C++ Evolved Most popular languages currently: COBOL, Fortran, C, C++, Java (script) C was developed in 1970s at AT&T (Richie)
Unclassified/FOUO Zeta White Noise Hour Presents: NeXtMidas / X-Midas Interoperability 18 Jan 2006.
ROOT An object oriented HEP analysis framework.. Computing in Physics Physics = experimental science =>Experiments (e.g. at CERN) Planning phase Physics.
Intro. to Game Programming Want to program a game?
COMP1070/2002/lec3/H.Melikian COMP1070 Lecture #3 v Operating Systems v Describe briefly operating systems service v To describe character and graphical.
Universal Linear Algebra API based on M4 Michael Fiero Isaac Asiamah.
GDS Software Status John Zweizig LIGO/Caltech LSC/Virgo DetChar Session Cambridge, July 25, 2007 LIGO-G Z.
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.
By Noorez Kassam Welcome to JNI. Why use JNI ? 1. You already have significantly large and tricky code written in another language and you would rather.
OOP (Java): Simple/ OOP (Java) Objectives – –give some simple examples of Java applications and one applet 2. Simple Java Programs Semester.
GNU Compiler Collection (GCC) and GNU C compiler (gcc) tools used to compile programs in Linux.
Engineering Computing I Chapter 1 – Part A A Tutorial Introduction.
Chapter 1 Introduction to Computers and C++ Programming Goals: To introduce the fundamental hardware and software components of a computer system To introduce.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
Rossella Lau Lecture 1, DCO10105, Semester B, DCO10105 Object-Oriented Programming and Design  Lecture 1: Introduction What this course is about:
FLUKA GUI Status FLUKA Meeting CERN, 10/7/2006.
MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.
CPSC 230 Computers and Programming I Spring 2003 Dr. Lynn Lambert.
1 Control Software (CAT) Introduction USB Interface implementation Calorimeter Electronics Upgrade Meeting Frédéric Machefert Wednesday 5 th May, 2010.
10/31/2015PHYS 3446 DØ Data Analysis with ROOT Venkat (for Dr.Yu)
Looping and Counting Lecture 3 Hartmut Kaiser
ROOT What & Why? ROOT Status ROOT Application ROOT Install ROOT Example ROOT References Introduction to March 13, 2003 Dae Jung CHEP.
A first program 1. #include 2. using namespace std; 3. int main() { 4. cout
CHEP 2013, Amsterdam Reading ROOT files in a browser ROOT I/O IN JAVASCRIPT B. Bellenot, CERN, PH-SFT B. Linev, GSI, CS-EE.
Getting rid of the “G__” thingies ROOT Team Meeting CERN Diego Marcos && Leandro Franco.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
ROOT I/O in JavaScript Browsing ROOT Files on the Web For more information see: For any questions please use following address:
PROGRAM ESSENTIALS. TOKENS  SMALLEST UNITS OF A PROGRAM LANGUAGE  Special Symbols  Mathematical Operators  Punctuation  Word Symbols  Key Words.
General Computer Science for Engineers CISC 106 Lecture 12 James Atlas Computer and Information Sciences 08/03/2009.
Postgraduate Computing Lectures PAW 1 PAW: Physicist Analysis Workstation What is PAW? –A tool to display and manipulate data. Learning PAW –See ref. in.
CINT & Reflex – The Future CINT’s Future Layout Reflex API Work In Progress: Use Reflex to store dictionary data Smaller memory footprint First step to.
C++ Programming Lecture 14 Arrays – Part I The Hashemite University Computer Engineering Department (Adapted from the textbook slides)
C++ Basics Programming. COMP104 Lecture 5 / Slide 2 Introduction to C++ l C is a programming language developed in the 1970s with the UNIX operating system.
C is a high level language (HLL)
Sudeshna Sarkar, IIT Kharagpur 1 Programming and Data Structure Sudeshna Sarkar Lecture 3.
 2003 Prentice Hall, Inc. All rights reserved Basics of a Typical C++ Environment C++ systems –Program-development environment –Language –C++
Chapter 4 Repetition Statements Program Development and Design Using C++, Third Edition.
 Prepared by: Eng. Maryam Adel Abdel-Hady
PROGRAMMING USING PYTHON LANGUAGE ASSIGNMENT 1. INSTALLATION OF RASPBERRY NOOB First prepare the SD card provided in the kit by loading an Operating System.
Programming Languages Concepts Chapter 1: Programming Languages Concepts Lecture # 4.
Chapter 1 slides1 What is C? A high-level language that is extremely useful for engineering computations. A computer language that has endured for almost.
Experience of PROOF cluster Installation and operation
CS1010: Intro Workshop.
Chapter Topics The Basics of a C++ Program Data Types
Chapter 1: Introduction to computers and C++ Programming
A bit of C programming Lecture 3 Uli Raich.
Introduction to Visual Basic 2008 Programming
Basic Elements of C++.
Objectives Identify the built-in data types in C++
INTRODUCTION TO BASIC MATLAB
Programming Assignment 1
MATLAB DENC 2533 ECADD LAB 9.
Basic Elements of C++ Chapter 2.
Exploring the Power of EPDM Tasks - Working with and Developing Tasks in EPDM By: Marc Young XLM Solutions
Programs written in C and C++ can run on many different computers
Capitolo 1 – Introduction C++ Programming
Chapter 1 c++ structure C++ Input / Output
Presentation transcript:

LIGO-G0200XX-00-M Interactive DMT with Root John G. Zweizig LIGO, Caltech

LIGO-G0200XX-00-M What is Root Scientific data analysis workstation »Histogramming, fitting & plotting »Data manipulation »Graphics, GUI tools C++ Interpreter »“Command” language is C++ »Macro facility - »Class libraries provided with root »Interface to user classes (dynamically loaded shared object) CINT ROOT Class Libraries Histograms Graphics Trees Object I/O DMT Classes Containers Signal Processing Frame I/O Macros (C++ programs)

LIGO-G0200XX-00-M Example Session: Hello World ~]$ root ******************************************* * * * W E L C O M E to R O O T * * * * Version 4.00/06 7 July 2004 * * * * You are welcome to visit our Web site * * * * * ******************************************* FreeType Engine v2.1.3 used to render TrueType fonts. Compiled for linux with thread support. CINT/ROOT C/C++ Interpreter version , May Type ? for help. Commands must be C++ statements. Enclose multiple statements between { }. LIGO Root initialization starting. Loading libraries from $DMTHOME/rev_2.9.1/lib Connecting default input accessor (In) to /online/LHO_Online Root initialization complete root [0] printf("Hello World\n"); Hello World root [1] cout << "Hello World" << endl; Hello World root [2] 2+2 (const int)4 root [3].q sandbox termination in progress... All done. Ciao! Run ‘root’ Root says ‘Hi’ DMT startup macro takes over: Loads DMT libraries. And opens data accessor C++ statements can be entered as commands too. Expressions without ‘;’ are evaluated and printed out. Exit with “. q” Root will execute any C command you enter.

LIGO-G0200XX-00-M Documentation All DMT classes a documented under doc++ documentation for e.g. containers follow links ‘DMT Library’ -> ‘Containers’ -> ‘Container classes’ Within root (DMT and root classes), type.class For documentation of root classes, go to and select ‘Reference guide’ link.

LIGO-G0200XX-00-M Setup Root & DMT On LHO GC machines »Log on to e.g. fortress.ligo-wa.caltech.edu »touch.dmt-setup »Log off / log on. »root-setup On DMT machines »Log on to e.g. sand.ligo-wa.caltech.edu »Add to your.cshrc file –setenv DMTHOME /export/home/dmt –source $DMTHOME/pro/bin/setup »Log off / log on »root-setup Root-setup prints out root and DMT versions, checks compatibility, links in root initialization macro

LIGO-G0200XX-00-M Data Containers TSeries: time series »Contains arbitrary type data: short, int, float, double, complex »Data in copy-on-write vectors »Time metadata: t 0,  t »Manipulation methods: getData(), extract() »Arithmetic methods: add(), sub(), mpy(), div(), dot(), cdot() »Arithmetic operators: +, -, *, /, +=, -=, *=, /= FSeries: frequency series »Frequency & time metadata. »Similar methods to TSeries. FSpectrum: PSD TSeries ts(Time(0), Interval(1./512), 512, Sine(100)); TSeries ts2(Time(0), Interval(1./512), 512, Sine(50)); ts *= 0.5; ts += ts2; TSeries ts3(ts.extract(Time(0), 0.125)); TPlot(&ts3);

LIGO-G0200XX-00-M Data accessor (Dacc) class Function »Read multiple channels from a common time stride. »Channels may be time series or frequency series API »Specify input frame files: –addFile(const char* frames), addList(const char* listfile); »Specify channel names: –addChannel(const char* chan, TSeries** pts=0, int decim8=2); –addFSeries(const char* chan, FSeries** pfs=0); »Fill all channels with one stride of data –int fillData(Interval dt); »Find TSeries with channel data –const TSeries* refData(const char* chan); »Skip data to specified time –seek(const Time& t);

LIGO-G0200XX-00-M Root Macros Root macros are c++ code segments »Unnamed macros enclosed in “{…}” »Named macros have c++ function syntax, i.e., “type fname(args) {…}” Named functions may be loaded into CINT with “.L macro.cc” or with gROOT->Load(“macro.cc”) and executed with e.g. fname() Macros may be executed with “.x macro.cc(args)” DMT plotting macros »TPlot(const TSeries* ts); »TPlot(const char* name); »THist(const TSeries* ts); »XYPlot(const TSeries&x, const TSeries& y); »Spectrum(const FSpectrum& fs); »ABSpectrum(const FSpectrum& a, const FSpectrum& b); »pTrend(const char* chan, const char* fdir, const Time& t, Interval dt); Loaded by DMT initialization macro

LIGO-G0200XX-00-M Example: Plotting Spectra Compare 2 Spectra { In.addFile( “/samrds/S2/L1/LHO/H-RDS_R_L17320/*.gwf”); In.seek(Time( )); TSeries* ts(0); In.addChannel(“H0:PEM-PSL2_MIC”, &ts); FSpectrum fs; for (int i=0; i<20; i++) { In.fillData(1.0); fs += FSpectrum(*ts); } In.fillData(20.0); FSpectrum fs2; for (int i=0; i<20; i++) { In.fillData(1.0); fs2 += FSpectrum(*ts); } ABSpectrum(fs, fs2); }

LIGO-G0200XX-00-M Signal Processing Pipe: Time domain filter API »Perform transformation on a TSeries producing a TSeries »Base class for time domain filters, windows, decimators, et. »Status methods: –getStartTime(), getCurrentTime(), dataCheck(const TSeries&), inUse() »Control methods –reset() »Data processing methods –apply(const TSeries&), operator()(const TSeries&) FDFilter: Frequency domain filter »So far, only applies to FSpectrum

LIGO-G0200XX-00-M Signal Processing: Examples Windowing:.L ABSpectrum.cc Hanning w; TSeries ts(Time(0), Interval(1./1024), 1024, Sine(35.5)); FSpectrum fs(ts); FSpectrum fsw(w(ts)); ABSpectrum(fs, fsw); Filter design: FilterDesign fd(“notch(60,100)”, ); Pipe* p = fd.release(); TSeries ts(Time(0), Interval(1./1024), 2048, Sine(60.0)); TSeries tsf(p->apply(ts)); TPlot(&tsf);