Elliott Wolin CLAS12 Software Workshop U of Richmond 25-May-2010.

Slides:



Advertisements
Similar presentations
STRING AN EXAMPLE OF REFERENCE DATA TYPE. 2 Primitive Data Types  The eight Java primitive data types are:  byte  short  int  long  float  double.
Advertisements

Formal Language, chapter 4, slide 1Copyright © 2007 by Adam Webber Chapter Four: DFA Applications.
Data Types in Java Data is the information that a program has to work with. Data is of different types. The type of a piece of data tells Java what can.
Lab#1 (14/3/1431h) Introduction To java programming cs425
Engineering Problem Solving With C++ An Object Based Approach Fundamental Concepts Chapter 1 Engineering Problem Solving.
1 File Output. 2 So far… So far, all of our output has been to System.out  using print(), println(), or printf() All input has been from System.in 
1 Engineering Problem Solving With C++ An Object Based Approach Fundamental Concepts Chapter 1 Engineering Problem Solving.
Session 1 CS-240 Data Structures Binghamton University Dick Steflik.
© Lethbridge/Laganière 2001 Chap. 3: Basing Development on Reusable Technology 1 Let’s get started. Let’s start by selecting an architecture from among.
Chapter 8: I/O Streams and Data Files. In this chapter, you will learn about: – I/O file stream objects and functions – Reading and writing character-based.
1 CMSC 132: Object-Oriented Programming II Java Constructs Department of Computer Science University of Maryland, College Park.
1 Project: File System Textbook: pages Lubomir Bic.
Differences between C# and C++ Dr. Catherine Stringfellow Dr. Stewart Carpenter.
Bertrand Bellenot root.cern.ch ROOT I/O in JavaScript Reading ROOT files from any web browser ROOT Users Workshop
Networking Nasrullah. Input stream Most clients will use input streams that read data from the file system (FileInputStream), the network (getInputStream()/getInputStream()),
Stream Handling Streams - means flow of data to and from program variables. - We declare the variables in our C++ for holding data temporarily in the memory.
Feb. 19, 2015 David Lawrence JLab Counting House Operations.
May. 11, 2015 David Lawrence JLab Counting House Operations.
Introduction to Hall-D Software February 27, 2009 David Lawrence - JLab.
Online Data Challenges David Lawrence, JLab Feb. 20, /20/14Online Data Challenges.
Thomas Jefferson National Accelerator Facility Page 1 Clas12 Reconstruction and Analysis Framework V. Gyurjyan S. Mancilla.
Files and Streams. Java I/O File I/O I/O streams provide data input/output solutions to the programs. A stream can represent many different kinds of sources.
Prepared by : A.Alzubair Hassan Kassala university Dept. Computer Science Lecture 2 I/O Streams 1.
Conditions DB in LHCb LCG Conditions DB Workshop 8-9 December 2003 P. Mato / CERN.
Streams Reading: 2 nd Ed: , rd Ed: 11.1, 19.1, 19.4
Online Monitoring Status David Lawrence JLab Oct. 2, /2/14Monitoring Status -- David Lawrence1.
Geoff Holmes and Bernhard Pfahringer COMP206-08S General Programming 2.
Chapter 9 1 Chapter 9 – Part 1 l Overview of Streams and File I/O l Text File I/O l Binary File I/O l File Objects and File Names Streams and File I/O.
File I/O ifstreams and ofstreams Sections 11.1 &
Operator Overloading Mark Hennessy Dept. Computer Science NUI Maynooth C++ Workshop 18 th – 22 nd September 2006.
Lecture 8 February 29, Topics Questions about Exercise 4, due Thursday? Object Based Programming (Chapter 8) –Basic Principles –Methods –Fields.
Term 2, 2011 Week 1. CONTENTS Problem-solving methodology Programming and scripting languages – Programming languages Programming languages – Scripting.
JANA and Raw Data David Lawrence, JLab Oct. 5, 2012.
Thomas Jefferson National Accelerator Facility Page 1 Clas12 Reconstruction and Analysis Framework V. Gyurjyan S. Mancilla.
Current Assignments Start Reading Chapter 6 Project 3 – Due Thursday, July 24 Contact List Program Homework 6 – Due Sunday, July 20 First part easy true/false.
Elliott Wolin Hall D Offline Meeting 6-Apr  DANA -> EVIO conversion 95% complete  Handles 20 DANA objects plus ID bank  Includes object ID’s.
File I/O 1 ifstreams and ofstreams Sections 11.1 & 11.2.
Introduction CMS database workshop 23 rd to 25 th of February 2004 Frank Glege.
Control Structures (B) Topics to cover here: Sequencing in C++ language.
BEGINNING PROGRAMMING.  Literally – giving instructions to a computer so that it does what you want  Practically – using a programming language (such.
Paul Scherrer Institut 5232 Villigen PSI CHEP 2006 in Mumbay / / Matthias Schneebeli ROME CHEP 2006 Presented by Matthias Schneebeli a universally.
SoLID simulation with GEMC Zhiwen Zhao 2015/03/26.
“How do I analyze the data?” -- everyone who’s ever analyzed data “How do I access the data?” Analysis Framework.
Topics memory alignment and structures typedef for struct names bitwise & for viewing bits malloc and free (dynamic storage in C) new and delete (dynamic.
Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Collaboration Meeting in Pisa Presented by Matthias Schneebeli.
The JANA Reconstruction Framework David Lawrence - JLab May 25, /25/101JANA - Lawrence - CLAS12 Software Workshop.
Online Monitoring System at KLOE Alessandra Doria INFN - Napoli for the KLOE collaboration CHEP 2000 Padova, 7-11 February 2000 NAPOLI.
Monitoring Update David Lawrence, JLab Feb. 20, /20/14Online Monitoring Update -- David Lawrence1.
Oct HPS Collaboration Meeting Jeremy McCormick (SLAC) HPS Web 2.0 OR Web Apps and Databases (Oh My!) Jeremy McCormick (SLAC)
Characters and Strings
File Processing Files are used for data persistance-permanent retention of large amounts of data. Computer store files on secondary storage devices,such.
The MEG Offline Project General Architecture Offline Organization Responsibilities Milestones PSI 2/7/2004Corrado Gatto INFN.
Learners Support Publications Working with Files.
The DCS Databases Peter Chochula. 31/05/2005Peter Chochula 2 Outline PVSS basics (boring topic but useful if one wants to understand the DCS data flow)
C++ Namespaces, Exceptions CSci 588: Data Structures, Algorithms and Software Design All material not from online sources copyright © Travis Desell, 2011.
Event Management. EMU Graham Heyes April Overview Background Requirements Solution Status.
C Programming Day 2. 2 Copyright © 2005, Infosys Technologies Ltd ER/CORP/CRS/LA07/003 Version No. 1.0 Union –mechanism to create user defined data types.
CSE 232: Moving Data Within a C++ Program Moving Data Within a C++ Program Input –Getting data from the command line (we’ve looked at this) –Getting data.
Operating Systems A Biswas, Dept. of Information Technology.
October 19, 2010 David Lawrence JLab Oct. 19, 20101RootSpy -- CHEP10, Taipei -- David Lawrence, JLab Parallel Session 18: Software Engineering, Data Stores,
“Success consists of going from failure to failure without loss of enthusiasm.” Winston Churchill.
1 GlueX Software Oct. 21, 2004 D. Lawrence, JLab.
David Lawrence JLab May 11, /11/101Reconstruction Framework -- GlueX Collab. meeting -- D. Lawrence.
DANA David Lawrence Oct. 21, D. Lawrence, JLab GlueX Software Workshop Oct Outline Requirements Philosophy Overview of Features Open Questions.
BINARY I/O IN JAVA CSC 202 November What should be familiar concepts after this set of topics: All files are binary files. The nature of text files.
Engineering Problem Solving With C An Object Based Approach
University of Central Florida COP 3330 Object Oriented Programming
CSCI 161: Introduction to Programming
Overview of Hadoop MapReduce MapReduce is a soft work framework for easily writing applications which process vast amounts of.
Dr. Bhavani Thuraisingham The University of Texas at Dallas
Presentation transcript:

Elliott Wolin CLAS12 Software Workshop U of Richmond 25-May-2010

 Many opportunities for sharing  Maybe with Halls A and C, but they are different  CLAS12 and Hall D very similar  Online – almost identical  Offline – similar, but different computing models

 CLARA – SOA architecture  JANA – multi-threaded analysis framework  EVIO – binary I/O of in-memory tree model  Event Display – bCNU plus customizations  cMsg – generic publish/subscribe IPC  CODA – JLab DAQ package  EPICS – for online control systems  RootSpy – display of distributed ROOT hist  ROOT, MySQL, PHP, etc.

 Event display  CNU student working on Hall D event display  Developments could benefit CLAS12 as well  RootSpy  CNU student from Yelena will start soon  Developments will benefit both halls

 elog  alarm system – BEAST?  backup and restore – from ORNL?  Archiver – from ORNL?  EPICS displays – Labview? CSS?  JavaIOC – in development  online farm management  online event processing/monitoring  online databases  controls database – IRMIS?

 Calibration constants database  DST format  Magnetic field storage on disk  Track swimming in inhomogeneous field  Kalman filter package  Matrix package using SIMD instructions  PWA analysis framework  Geant4  Geometry database and XML representation

 Original C package just did binary buffer I/O  You had to manually set the bits and bytes  Now implements in-memory object model  Includes auto-serialization to binary buffer  no more setting bits and bytes by hand!  C++ and Java (different in-memory models)  Implements XML-like tree in memory  C++ - Custom STL-based  Java – based on JTree  Machine/architecture independent  Automatically handles endian conversions

 Tree consists of container nodes and leaf nodes  Container nodes only hold other nodes  Leaf node contains array of one primitive type  int32_t, int 16_t, float, double, string, etc.  Nodes can have 2- or 1-word header on disk  Nodes with 2-word headers (“banks”) have user- settable int16_t “tag” and int8_t “num”

0xffffffff 0xfffffffe 0xfffffffd 0xfffffffc 0xfffffffb 0xfffffffa 0xfffffff9 0xfffffff8 0xfffffff7 0xfffffff6 0xfffffff5 0xfffffff4 0xfffffff3 0xfffffff2 0xfffffff1 0xfffffff0 0xffffffef 0xffffffee 0xffffffed 0xffffffec 0xffffffeb 0xffffffea 0xffffffe9 0xffffffe8 0xffffffe7 0xffffffe6 0xffffffe5 0xffffffe4 0xffffffe3 0xffffffe

#include int main(int argc, char **argv) { try { // create evio file channel object for reading, argv[1] is filename evioFileChannel chan(argv[1], “r”); // open the file chan.open(); // loop over events while(chan.read()) { // create tree from contents of file channel object evioDOMTree tree(chan); // print tree cout << tree.toString() << endl; } // eof reached...close file chan.close(); } catch (evioException *e) { cerr toString() << endl << endl; exit(EXIT_FAILURE); } // done exit(EXIT_SUCCESS); }

 CODA raw event I/O  Serialize objects to binary array  Transport via cMsg or other protocols (e.g. CLARA)  Storage on disk (e.g. DANAEVIO)  Geant4 output  Input to event display

 Convert from EVIO to XML  Then can use XML browser  Convert from XML to EVIO  Doesn’t handle string arrays yet…  Extract, copy events  Use XML browser after conversion from binary

 Eliminate event blocking  Vastly simplifies I/O code  Random-access I/O  Using in-memory index created when file opened  Improve in-memory tree query (esp. in Java)  Goal is same power in C++ and Java  Can implement multiple query models

 Code sharing is win-win-win  CLAS12 – Hall D – JLab/DOE  Many opportunities for joint code development  No-brainer in online  Quite feasible in offline  Many packages already shared  Some with joint code development  EVIO package  Easily modified to meet future CLAS12 and Hall D needs