9/12/99R. Moore1 Level 2 Trigger Software Interface R. Moore, Michigan State University.

Slides:



Advertisements
Similar presentations
Device Drivers. Linux Device Drivers Linux supports three types of hardware device: character, block and network –character devices: R/W without buffering.
Advertisements

GCT Software ESR - 10th May 2006 Jim Brooke. Jim Brooke, 10 th May 2006 HAL/CAEN Overview GCT Driver GCT GUI Trigger Supervisor Config DB Test scripts.
Michigan State University 4/15/ Simulation for Level 2 James T. Linnemann Michigan State University NIU Triggering Workshop October 17, 1997.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2004 Go4 v2.8 Analysis Design.
The Web Warrior Guide to Web Design Technologies
1 CS 161 Introduction to Programming and Problem Solving Chapter 9 C++ Program Components Herbert G. Mayer, PSU Status 10/20/2014.
June 19, 2002 A Software Skeleton for the Full Front-End Crate Test at BNL Goal: to provide a working data acquisition (DAQ) system for the coming full.
DriveAP 1.2 & 2.1 DriveWare®.
Reconstruction and Analysis on Demand: A Success Story Christopher D. Jones Cornell University, USA.
1 Analysis code for KEK Test-Beam M. Ellis Daresbury Tracker Meeting 30 th August 2005.
C# Programming: From Problem Analysis to Program Design1 Advanced Object-Oriented Programming Features C# Programming: From Problem Analysis to Program.
Guide To UNIX Using Linux Third Edition
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 8: Implementing and Managing Printers.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 8: Implementing and Managing Printers.
CH 13 Server and Network Monitoring. Hands-On Microsoft Windows Server Objectives Understand the importance of server monitoring Monitor server.
SubVersioN – the new Central Service at DESY by Marian Gawron.
Framework for Online Alignment 4th LHCb Computing Workshop 6 November 2014 Beat Jost / Cern.
CVSQL 2 The Design. System Overview System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing.
Database Infrastructure for Application Development Designing tables and relations (Oracle Designer) Creating and maintaining database tables d0om - ORACLE.
Operating System Program 5 I/O System DMA Device Driver.
1 Chapter One A First Program Using C#. 2 Objectives Learn about programming tasks Learn object-oriented programming concepts Learn about the C# programming.
Computer Organization
Use of ROOT in the D0 Online Event Monitoring System Joel Snow, D0 Collaboration, February 2000.
L3 Filtering: status and plans D  Computing Review Meeting: 9 th May 2002 Terry Wyatt, on behalf of the L3 Algorithms group. For more details of current.
SOFTWARE.
Testing. What is Testing? Definition: exercising a program under controlled conditions and verifying the results Purpose is to detect program defects.
Framework for Automated Builds Natalia Ratnikova CHEP’03.
May 14, 2001E. Gallas/Trigger Database1 Status of the Trigger Database Elizabeth Gallas, Rich Wellner, Vicky White Fermilab - Computing Division See my.
Nachos Phase 1 Code -Hints and Comments
JAS3 + AIDA LC Simulations Workshop SLAC 19 th May 2003.
Status of the Cuore software Marco Pallavicini Cuore Co-Software coordinator with M. Pavan (Milano) Università di Genova & INFN.
Upgrade to Real Time Linux Target: A MATLAB-Based Graphical Control Environment Thesis Defense by Hai Xu CLEMSON U N I V E R S I T Y Department of Electrical.
DTIAtlasBuilder Adrien Kaiser Neuro Image Research and Analysis Laboratories University of North Carolina at Chapel Hill A tool to create an atlas from.
CSC 142 B 1 CSC 142 Java objects: a first view [Reading: chapters 1 & 2]
Some notes on ezTree and EMC data in MuDst Marco van Leeuwen, LBNL.
©G. Millbery 2003Systems and User Interface SoftwareSlide 1 Self Documenting Systems  Systems where no external documentation is necessary  Includes:
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
Axel Naumann University of Nijmegen / NIKHEF, NL ROOT 2004 Users Workshop The Future of THtml Plans and Status of ROOT’s documentation facility.
Oct 15, 2007Sprenkle - CS1111 Objectives Creating your own functions.
1 Online Calibration of Calorimeter Mrinmoy Bhattacharjee SUNY, Stony Brook Thanks to: D. Schamberger, L. Groer, U. Bassler, B. Olivier, M. Thioye Institutions:
The european ITM Task Force data structure F. Imbeaux.
C++ History C++ was designed at AT&T Bell Labs by Bjarne Stroustrup in the early 80's Based on the ‘C’ programming language C++ language standardised in.
Recent Software Issues L3 Review of SM Software, 28 Oct Recent Software Issues Occasional runs had large numbers of single-event files. INIT message.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
TrigSim Status ● What is TrigSim? ● What version do I use? ● Web site ● Basic running ● Features of p ● Drawbacks of p ● Future plans 10/24/03.
Svtsim status Bill Ashmanskas, CDF simulation meeting, Main authors: Ashmanskas, Belforte, Cerri, Nakaya, Punzi Design goals/features: –main.
Processes Introduction to Operating Systems: Module 3.
1 CSC/ECE 517 Fall 2010 Lec. 3 Overview of Eclipse Lectures Lecture 2 “Lecture 0” Lecture 3 1.Overview 2.Installing and Running 3.Building and Running.
Apr. 8, 2002Calibration Database Browser Workshop1 Database Access Using D0OM H. Greenlee Calibration Database Browser Workshop Apr. 8, 2002.
Online Reconstruction 1M.Ellis - CM th October 2008.
TB1: Data analysis Antonio Bulgheroni on behalf of the TB24 team.
Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower than CPU.
1 FESA architecture v.1.0 Framework Configuration & Data-entry Tool 5 th December 2003.
STL CSSE 250 Susan Reeder. What is the STL? Standard Template Library Standard C++ Library is an extensible framework which contains components for Language.
Configuration database status report Eric van Herwijnen September 29 th 2004 work done by: Lana Abadie Felix Schmidt-Eisenlohr.
Hands-On Microsoft Windows Server 2008 Chapter 5 Configuring Windows Server 2008 Printing.
1 Tracker Software Status M. Ellis MICE Collaboration Meeting 27 th June 2005.
Level 1-2 Trigger Data Base development Current status and overview Myron Campbell, Alexei Varganov, Stephen Miller University of Michigan August 17, 2000.
DZero Monte Carlo Production Ideas for CMS Greg Graham Fermilab CD/CMS 1/16/01 CMS Production Meeting.
Current Status of the Tracking Trigger Software Andrew W. Rose.
“Port Monitor”: progress & open questions Torsten Wilde and James Kohl Oak Ridge National Laboratory CCA Forum Quarterly Meeting Santa Fe, NM ~ October.
POOL Based CMS Framework Bill Tanenbaum US-CMS/Fermilab 04/June/2003.
MAUS Status A. Dobbs CM43 29 th October Contents MAUS Overview Infrastructure Geometry and CDB Detector Updates CKOV EMR KL TOF Tracker Global Tracking.
HYDRA Framework. Setup of software environment Setup of software environment Using the documentation Using the documentation How to compile a program.
Development Environment
CMS High Level Trigger Configuration Management
Lecture Topics: 11/1 General Operating System Concepts Processes
Discussing an OVS/OVN Split
Use Of GAUDI framework in Online Environment
Presentation transcript:

9/12/99R. Moore1 Level 2 Trigger Software Interface R. Moore, Michigan State University

9/12/99R. Moore2 L2 Crate Administrator Worker Data InputData Output Trigger Control Computer External Communications Internal Communications

9/12/99R. Moore3 Software Components Administrator MBus Worker Level User code Tool Level User code L2 Software Framework Worker Physics! Pre-Proc Worker Global Tool Global Worker

9/12/99R. Moore4 L2 Simulator Packed Data Raw Chunk Unpack Data Chunk Event Interface Worker Code Event Interface Online Offline (testing only) dynamic_cast<> Online Code Offline Package I/Ogen

9/12/99R. Moore5 L2 Simulator L2 simulator runs online worker code only –framework code (administrator) not included because it has no physics impact Online L2 framework replaced by offline code: –control hooks replaced by offline framework package –data interface replaced to use unpacked data chunks

9/12/99R. Moore6 Writing L2 Code What you need to know: –L2 coding guidelines ( How to use DOC++ –How to use the offline build environment CTBuild user guide hopefully appearing soon…? –Input and output object formats tell Dylan and he’ll add them to the L2 I/Ogen configuration file –Worker algorithm What you don’t need to know! –Unpacked data chunks –Whether you are running online or offline

9/12/99R. Moore7 Creating a Worker Create a new package for the algorithm code named: –l2 worker –e.g. l2gblworker, l2cttworker Write the main worker class and put it into this package –the same class is used online AND offline –Class name: Worker e.g. GlobalWorker Create a new package to interface to trigsim, called: –tsim_l2 –e.g. tsim_l2gbl, tsim_l2ctt …

9/12/99R. Moore8 Writing the Worker Class Worker class is ONLINE code –ALL L2 workers need one –Required methods: void processEvent(void) Plus others to be added later for monitoring, initialization etc. –MUST obey L2 online coding guidelines: no STL! processEvent(void) –processes the current event –Event I/O handled by offline or online framework

9/12/99R. Moore9 Offline Interface Use L2 specific macros to register with framework –e.g. tsim_l2gbl.cpp #include "framework/Registry.hpp" #include "l2workersim/FrameworkMacros.hpp" #include "l2gblworker/GlobalWorker.hpp" #include "l2gblworker/GlobalEventInput.hpp" #include "l2gblworker/GlobalEventOutput.hpp" #include "l2workersim/WorkerSim.hpp" using namespace l2gblworker; using namespace l2workersim; L2FWK_REGISTRY_IMPL(Global,"$Name: $") #include "framework/Registry.hpp" #include "l2workersim/FrameworkMacros.hpp" L2FWK_REGISTRY_DECL(Global) –e.g. Regtsim_l2gbl.cpp

9/12/99R. Moore10 Input Format L2Header Object L2Trailer Object = InputBuffer = ChunkInputBuffer Single MBT (or UDC if offline) channel maps to a template class Behaves like an array of the given object type Inherits from L2Header to allow access to header data

9/12/99R. Moore11 Output Format L3Header L3Trailer Node Header L2Header Object L2Trailer Object L2Header Object L2Trailer Object Channel Module Raw DataUnpacked Data Chunk

9/12/99R. Moore12 High Level Format Each worker and administrator has three possible output modules –Normal L2 output –Copy of inputs (UBS events) –Special UBS event data output Raw DataUnpacked Data Chunk Crate=System L3 Output UBS Inputs=Module UBS Output

9/12/99R. Moore13 Building the Output Output created by ‘ChannelFiller’ templates which each fill one channel Template parameters: –Object type stored in channel –‘Getter’ class ‘Getter’ class fetches the data from the worker code: –bool gotData() returns true if there is more data to get – &nextObject() returns the next object –void newEvent() notifies class of a new event Some standard ‘Getters’ provided

9/12/99R. Moore14 Event I/O Classes to access data created by evigen python script – EventInput – EventOutput Configuration file similar to Windows.ini files Full documentation being worked on…

9/12/99R. Moore15 Example.evi [Worker] package = l2gblworker name = Global system = GBL_L2 stdout = GBL_STD_OUTPUT ubsout = GBL_UBS_OUTPUT ubsin = GBL_UBS_INPUTS [Input0] name = pTTrack object = CTTPTTrack type = unpacked limit = 50 system = CTT_L2 module = CTT_STD_OUTPUT channel = GBL_PTTRACK comment = pT tracks from CTT

9/12/99R. Moore16 Example.evi II [StdOutput0] object = Electron getter = l2workerbase/FetchTag channel = GBLOUT_ELECTRON majorver = 0 minorver = 1 [StdOutput4] object = Tau getter = l2workerbase/FetchTag channel = GBLOUT_TAU majorver = 0 minorver = 1 [UbsOutput0] object = Electron getter = l2workerbase/FetchAll channel = GBLOUT_ELECTRON majorver = 0 minorver = 1

9/12/99R. Moore17 Accessing the Data To access the input data inherit the EventInput class class ATool : public GlobalEventInput { … void findElectron(void); … }; void ATool::findElectron(void) { if (pTTrack.bunch() != emCluster.bunch()) errlog << “Calling SCL init!”… … dphi=pTTrack[i].phi()- emCluster[j].phi(); … }

9/12/99R. Moore18 Writing the Data To use provided “Getter” classes output objects inherit from a “Creator” This provides a static method “create()” which returns a pointer to a new class instance –you cannot use ‘new’ ! class Electron : public Creator { … }; Electron *myelectron = Electron::create();

9/12/99R. Moore19 Current Status Basic software packages written and docs in progress –Basic interface stable, only minor changes or additions –Ready for L2PP’s to start using framework –BUT still a little rough: Need to liase with Dylan/me Not everything will work “out of the box” just yet –Toy “GlobalWorker” written by Dylan Can test single Global tools

9/12/99R. Moore20 Still to do… Add interface to L2 low level parser –L2parser package written and documented –Can’t use RCP: online code Add hook for monitoring data: collectStatus() Add support for ‘non- standard’ data formats: –e.g. CTT has private header –if L2 input not stored in L3 raw data need to write a package to recreate it –BUT some L1 packages will use L2 UDC standard (L1Cal)

9/12/99R. Moore21 Yet more to do… Make a L2 release –Currently all packages in CVS but not in a release Understand the build system (CTBuild/SRT/…) –Need to set compiler options e.g. “-DOFFLINE”, “-DDEBUG” –CTBuild docs promised…

9/12/99R. Moore22 Conclusion The basic L2 framework is complete and ready for use –should remove a lot of the pain we have had to endure! Switching to online is easy… once we have the hardware –Code written 6+ months ago –Needs interfacing with low level device drivers “Bells and whistles” will be added over the next several months as interfaces are agreed upon –monitoring –configuration

9/12/99R. Moore23 Data I/O All L2 I/O done using I/Ogen classes: –Python script which generates code to convert between packed memory and C++ class –handles multiple format versions in offline –centralizes object formats to ensure compatibility –interfaces easily to the (new) Unpacked Data Chunks –creates routines to print data classes in human- readable form

9/12/99R. Moore24 I/Ogen in l2io Configuration File [l2io.iogen] Python Script IO Classes Data Classes