DAQ & data format Peter Fischer Institut für Technische Informatik, Universität Mannheim Presentation given at the EUDET / JRA-1 review, 4.4.2006, Geneva.

Slides:



Advertisements
Similar presentations
Network II.5 simulator ..
Advertisements

Device Drivers. Linux Device Drivers Linux supports three types of hardware device: character, block and network –character devices: R/W without buffering.
Lectures on File Management
CCNA – Network Fundamentals
Operating-System Structures
1/1/ / faculty of Electrical Engineering eindhoven university of technology Introduction Part 3: Input/output and co-processors dr.ir. A.C. Verschueren.
Using the EUDET pixel telescope for resolution studies on silicon strip sensors with fine pitch Thomas Bergauer for the SiLC R&D collaboration 21. May.
April 2006Jean-Sébastien GraulichSlide 1 DAQ Status o Goal for BTF o Status o First results o To be done.
Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory.
Introduction to TCP/IP
Students:Gilad Goldman Lior Kamran Supervisor:Mony Orbach Mid-Semester Presentation Spring 2005 Network Sniffer.
Chapter 11 Operating Systems
The Structure of the “THE” -Multiprogramming System Edsger W. Dijkstra Jimmy Pierce.
Rensselaer Polytechnic Institute CSC 432 – Operating Systems David Goldschmidt, Ph.D.
Check Disk. Disk Defragmenter Using Disk Defragmenter Effectively Run Disk Defragmenter when the computer will receive the least usage. Educate users.
Gursharan Singh Tatla Transport Layer 16-May
Graphical Alarm Management System
New Features of APV-SRS-LabVIEW Data Acquisition Program Eraldo Oliveri on behalf of Riccardo de Asmundis INFN Napoli [Certified LabVIEW Developer] NYC,
Process-to-Process Delivery:
© 2008, Renesas Technology America, Inc. All Rights Reserved The RCAN-ET peripheral and the CAN API SH2 & SH2A MCUs V 1.2 Mar 2010.
Emlyn Corrin, DPNC, University of Geneva EUDAQ Status of the EUDET JRA1 DAQ software Emlyn Corrin, University of Geneva 1.
NetSim ZigBee Simulation Code Walkthrough in 10 steps
FINAL MPX DELIVERABLE Due when you schedule your interview and presentation.
Internet Addresses. Universal Identifiers Universal Communication Service - Communication system which allows any host to communicate with any other host.
LWIP TCP/IP Stack 김백규.
6.1. Transport Control Protocol (TCP) It is the most widely used transport protocol in the world. Provides reliable end to end connection between two hosts.
Penn State CSE “Optimizing Network Virtualization in Xen” Aravind Menon, Alan L. Cox, Willy Zwaenepoel Presented by : Arjun R. Nath.
SITRA Test beams Simulations Zdeněk Doležal Charles University Prague Annual EUDET meeting Munich October 2006.
Who is UMA ? Peter Fischer, I. Peric, F. Giesen, V. Kreidl Lehrstuhl für Schaltungstechnik und Simulation Institut für Technische Informatik Universität.
Ethernet Driver Changes for NET+OS V5.1. Design Changes Resides in bsp\devices\ethernet directory. Source code broken into more C files. Native driver.
Module 5: Implementing Printing. Overview Introduction to Printing in the Windows Server 2003 Family Installing and Sharing Printers Managing Access to.
JANA and Raw Data David Lawrence, JLab Oct. 5, 2012.
Network Programming Chapter 5: Raw Socket Programming.
Agilent Technologies Copyright 1999 H7211A+221 v Capture Filters, Logging, and Subnets: Module Objectives Create capture filters that control whether.
1 Presented By: Eyal Enav and Tal Rath Eyal Enav and Tal Rath Supervisor: Mike Sumszyk Mike Sumszyk.
Overview of DAQ at CERN experiments E.Radicioni, INFN MICE Daq and Controls Workshop.
Chapter 24 Transport Control Protocol (TCP) Layer 4 protocol Responsible for reliable end-to-end transmission Provides illusion of reliable network to.
DEPARTEMENT DE PHYSIQUE NUCLEAIRE ET CORPUSCULAIRE JRA1 Parallel - DAQ Status, Emlyn Corrin, 8 Oct 2007 EUDET Annual Meeting, Palaiseau, Paris DAQ Status.
1 Computer Systems II Introduction to Processes. 2 First Two Major Computer System Evolution Steps Led to the idea of multiprogramming (multiple concurrent.
DEPARTEMENT DE PHYSIQUE NUCLEAIRE ET CORPUSCULAIRE JRA1 DAQ Status Daniel Haas DPNC Genève Status DAQ board INFN Strasbourg DAQ boards TLU Bristol Software.
IPHC - DRS Gilles CLAUS 04/04/20061/20 EUDET JRA1 Meeting, April 2006 MAPS Test & DAQ Strasbourg OUTLINE Summary of MimoStar 2 Workshop CCMOS DAQ Status.
DEPARTEMENT DE PHYSIQUE NUCLEAIRE ET CORPUSCULAIRE JRA1 - Data Acquisition Status Report Daniel Haas DPNC Genève Extended SC Meeting 1 Sep 2008.
Source Controller software Ianos Schmidt The University of Iowa.
David Cussans, 18 th October 2006 JRA1 Beam Telescope DAQ and Trigger.
Online Monitoring System at KLOE Alessandra Doria INFN - Napoli for the KLOE collaboration CHEP 2000 Padova, 7-11 February 2000 NAPOLI.
Status & development of the software for CALICE-DAQ Tao Wu On behalf of UK Collaboration.
Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Root based Object oriented Midas Extension Presented by Matthias.
THE NETWORKS Theo Chakkapark. Open System Interconnection  The tower of power!  The source of this power comes from the model’s flexibility.
Threshold Scan Inject various charges and histogram number of hits seen (occupancy plot) for each pixel Vcal (charge) from 0V to 200V (101 steps) For each.
October Test Beam DAQ. Framework sketch Only DAQs subprograms works during spills Each subprogram produces an output each spill Each dependant subprogram.
1 Kyung Hee University Chapter 11 User Datagram Protocol.
UDP: User Datagram Protocol Chapter 12. Introduction Multiple application programs can execute simultaneously on a given computer and can send and receive.
LHC CMS Detector Upgrade Project RCT/CTP7 Readout Isobel Ojalvo, U. Wisconsin Level-1 Trigger Meeting June 4, June 2015, Isobel Ojalvo Trigger Meeting:
DEPARTEMENT DE PHYSIQUE NUCLEAIRE ET CORPUSCULAIRE FACULTÉ DES SCIENCES UNIVERSITÉ DE GENÈVE EUDET JRA1 Meeting Munich October 2006 DAQ Status Emlyn Corrin.
LonWorks Introduction Hwayoung Chae.
Paul Scherrer Institut 5232 Villigen PSI ROME / / Matthias Schneebeli ROME Root based Object oriented Midas Extension Presented by Matthias.
Monitoring Dynamic IOC Installations Using the alive Record Dohn Arms Beamline Controls & Data Acquisition Group Advanced Photon Source.
Scalable Readout System Data Acquisition using LabVIEW Riccardo de Asmundis INFN Napoli [Certified LabVIEW Developer]
Chapter 11 User Datagram Protocol
DUT integration DAQ buffers & data format
Muen Policy & Toolchain
Silicon Lab Bonn Physikalisches Institut Universität Bonn
Process-to-Process Delivery:
Tracker Software Status
Lecture 4 Communication Network Protocols
Implementing an OpenFlow Switch on the NetFPGA platform
Modern PC operating systems
COMP755 Advanced Operating Systems
Transport Layer 9/22/2019.
Presentation transcript:

DAQ & data format Peter Fischer Institut für Technische Informatik, Universität Mannheim Presentation given at the EUDET / JRA-1 review, , Geneva

EUDET JRA1: DAQ starting pointPeter Fischer, Uni Mannheim, Page 2 Introduction  We have decided to use the present DEPFET DAQ as a starting point.  Note: This DAQ has been written with a minimum effort, so –not enough documentation –still hard coded stuff –some error checking, no ‘recovery’ (but good enough)  This starting point must be improved: –need a clever way for process communication (across operating systems?) –need a ‘global controller’ –need a better way to request Monitoring data –need ‘shared buffer through TCP/IP’ –…  This cannot be done by Mannheim (or Bonn), it is not our task, neither are we real experts…

EUDET JRA1: DAQ starting pointPeter Fischer, Uni Mannheim, Page 3 Present DEPFET ‘Mini-DAQ’  PC based, at the moment Windows based. Very light weight.  DAQ Software is divided into many parallel tasks: –several Producer tasks read the hardware –one FileWriter task bundles events, writes to file and sends subsets for monitoring –There can be several Online - Monitoring tasks –one Buffer Monitor task allows to see what is going on –a FileReader can re-inject data into the monitoring  Central data flow element: ‘shared buffers’ –Used between Producers and Writer and between Writer and Monitors –Events have unambiguous trigger ID in the buffers for later sorting –Mutex elements are used to control access of the buffers –Uses begin-of-run (BORE), data (DATA), end-of-run (EORE) events.

EUDET JRA1: DAQ starting pointPeter Fischer, Uni Mannheim, Page 4 Present DEPFET ‘Mini-DAQ’ Hardware Writer task telescope ‘producer’ task DEPFET ‘producer’ task other ‘producer’ tasks Monitoring task 1Monitoring task 2 DAQ buffers Monitoring buffers file

EUDET JRA1: DAQ starting pointPeter Fischer, Uni Mannheim, Page 5 Shared Buffers  Organize data transport between tasks.  Two types: –DAQ buffersfrom DAQ tasks to WRITER –Monitoring Buffersfrom WRITER to MONITORING tasks  Two port buffer: one task can write, one task can read (no checks!)  Very simple & efficient: –~300 lines of source code for class implementation –writing & reading can be done simultaneously, arbitration only needed at start / end of transfers. –data blocks are always contiguous blocks of data so that tasks do not have to bother with wrapping pointers in ring buffers  Can be extended to send data from PC to PC (via TCP/IP)  Buffers are created by the writing task. (If they already exist, the task connects to the existing buffer)  Buffers automatically disappear when nobody refers to them any more.

EUDET JRA1: DAQ starting pointPeter Fischer, Uni Mannheim, Page 6 Shared Buffer header (part) class TSharedBuffer { static const unsigned int MAX_SHARED_BUF; public: TSharedBuffer (AnsiString Name, unsigned int Size, SBufferType Type = BUFTYPE_DAQ); ~TSharedBuffer (); bool Created; // flags if buffer was newly created or already existed bool IsEmpty (void); float GetFillLevel (void); // return fill level unsigned int * GetWriteAddress (unsigned int BlockSize); // request a pointer to write void FinishWrite (unsigned int * NextPos); // flag that we are done unsigned int GetDataSize (void); // see how much data is there unsigned int * GetReadAddress (unsigned int * Size); // get data address (and size) void FinishRead (unsigned int * NextPos); // release data until NextPos void Clear (void); // delete all data... }

EUDET JRA1: DAQ starting pointPeter Fischer, Uni Mannheim, Page 7 data structure in the shared buffers  one word = unsigned integer (32 bit)  data is organized in events with a 2 word header: -word 0: event typebegin of run BORE end of run EORE dataDATA event size(including header)size event contentgroup dataGROUP detector datadevice / module / flags -word 1:trigger numberstart with 0, magic numbers for BORE/EORE -word 2…size:size-2 data words

EUDET JRA1: DAQ starting pointPeter Fischer, Uni Mannheim, Page 8 present bit allocation Event Type: 0x0: BORE 0x1: EORE 0x2: DATA 0x3: unused Device Type: GROUP TELESCOPE DEPFET 13 x unused TLU ? 310trigger data word 1 data word 2 310data word N word 1 word 2 word 3 word N+2 19 Size (including header) = N+2 Module Flags

EUDET JRA1: DAQ starting pointPeter Fischer, Uni Mannheim, Page 9 packets in the buffers DAQ buffer (single events): BORE - info word BORE trigger = magic BORE word BORE data 1 BORE data N DATA- info word event #1 0x DATA data 1 DATA data N DATA- info word event #2 0x DATA data 1 DATA data N EORE - info word EORE trigger = magic EORE word EORE data 1 EORE data N monitoring buffers and file (GROUP Events!): BORE - info word: GROUP type BORE trigger = magic BORE word BORE 1 BORE N event #1 event #2 EORE DATA - info word: GROUP type 0x DATA event 1 DATA event N DATA - info word: GROUP type 0x DATA event 1 DATA event N EORE - info word: GROUP type trigger = magic EORE word EORE event 1 EORE event N                                                  

EUDET JRA1: DAQ starting pointPeter Fischer, Uni Mannheim, Page 10 BORE and EORE events  BORE (Begin Of Run Event): –time, date, … –detector configuration data (bias values, thresholds, pedestals, …)  EORE (End Of Run Event): –error flags –statistics for consistency checks (total number of data words,…) –…

EUDET JRA1: DAQ starting pointPeter Fischer, Uni Mannheim, Page 11 GROUP events  GROUP events are used to bundle data for ONE TRIGGER from several sources.  They are written to file and sent to the monitoring tasks.  data events within GROUP events are identical to full single events (i.e. headers are not stripped) –this gives a small overhead, as trigger ID is repeated –but it makes copying and analysis much simpler

EUDET JRA1: DAQ starting pointPeter Fischer, Uni Mannheim, Page 12 example of possible ‘advanced’ data flow USB DUT1 hardware DUT DAQ PC - WIN (beam area, via VNC) PCI VME telescope DAQ PC - LIN (beam area, via VNC) CAMAC main PC - WINDOWS (counting room) DUT2 hardware telescope hardware TDC hardware writer Mon 1 Producer TCP MON PC - LINUX (remote) TCP Mon 2

EUDET JRA1: DAQ starting pointPeter Fischer, Uni Mannheim, Page 13 Demo 1.Buffer Monitor + file writer  fill levels, raw data format 2.Add file writer  Observe emptying of buffers and BORE, EORE mechanism 3.Add monitoring task  Modify Producer parameters  restart a new run  two monitoring tasks 4.Have a look at source code (?)

EUDET JRA1: DAQ starting pointPeter Fischer, Uni Mannheim, Page 14 Deliverables (to Daniel, David, Gilles,… ?)  shared buffer class  event class, derived DEPFET event class  Applications written in C++ under Borland CBuilder (Windows): –BufferMonitor –DEPFET_DummyProducer –FileWriter –DEPFET_OMO –TEST_OMO  A fair amount of comments in the code…

EUDET JRA1: DAQ starting pointPeter Fischer, Uni Mannheim, Page 15 Summary  Pipelined operation  Small tasks keep units simple  Clearly defined interface at buffer ends  Extensions are simple  flexible choice of operating system  Several small monitoring tasks can run in parallel  Later: –Preprocessed data (tracks) can be included into the data flow and be used by monitoring tasks. This requires some modifications, but sounds like a very interesting option! –Send buffers through TCP/IP (work in progress) to relief main DAQ computer  Still needed: –Overall control task (flush all buffers, start/stop run,…) –Sending stuff over TCP/IP –Better control over detector configuration –Logfile –…