Download presentation
Presentation is loading. Please wait.
Published byErin Gibson Modified over 9 years ago
1
Experiences, limitations and suggested improvements The ALICE DQM Software and ROOT ROOT Users Workshop Barthelemy von Haller & Adriana Telesca for the ALICE DAQ Collaboration
2
ALICE : A Large Ion Collider Experiment 18 detectors Trigger rate : 10 KHz (max) Bandwidth to mass storage : 1.25 GB/s Online usage of ROOT « ROOTification » Detector algorithms Data Quality Monitoring ROOT in ALICE Online 11/03/2013 Barthélémy von Haller & Adriana Telesca, ALICE, PH department, CERN 2
3
Online feedback on the quality of data Make sure to take and record high quality data Identify and solve problem(s) early Data Quality Monitoring (DQM) involves -Online gathering of data -Analysis by user-defined algorithm -Storage of monitoring data -Visualization Data Quality Monitoring 11/03/2013 Barthélémy von Haller & Adriana Telesca, ALICE, PH department, CERN 3
4
AMORE : Automatic MOnitoring Environment A DQM framework for the ALICE experiment The AMORE framework 11/03/2013 Barthélémy von Haller & Adriana Telesca, ALICE, PH department, CERN 4
5
Publisher – Subscriber paradigm Database used for the data pool Published objects are encapsulated into « MonitorObject » structure Design & Architecture 11/03/2013 Barthélémy von Haller & Adriana Telesca, ALICE, PH department, CERN 5
6
MonitorObjects 11/03/2013 Barthélémy von Haller & Adriana Telesca, ALICE, PH department, CERN 6 Dictionaries allow introspection in the client Standard ROOT interfaces Easier for users, e.g. call Draw() blindly MOTObject allows embedding custom types
7
Data pool implemented as a database TMessage used to serialize MonitorObjects TMySQLServer et al. Plugin architecture using ROOT reflection Modules are dynamic libraries loaded at runtime Custom and generic GUI (see next slides) Macro for quick post-processing without releasing new version of a module AMORE and ROOT 11/03/2013 Barthélémy von Haller & Adriana Telesca, ALICE, PH department, CERN 7
8
Detectors custom GUI Expert view of the data their agent publishes User interfaces (1) 11/03/2013 Barthélémy von Haller & Adriana Telesca, ALICE, PH department, CERN 8
9
Generic User Interface Based on TRootBrowser, custom TGListTree TXMLEngine for layouts and preferences files User interfaces (2) 11/03/2013 9
10
Web access to images of the plots via the ALICE eLogbook Web access Barthélémy von Haller & Adriana Telesca, ALICE, PH department, CERN 10
11
ROOT provided key features C++ database interface Plugin mechanism GUI Macros XML We could have done the same with a palette of tools, here we got it all at once Quick, kind and effective support Still, anything can always be improved… Experience 11/03/2013 Barthélémy von Haller & Adriana Telesca, ALICE, PH department, CERN 11
12
ROOT not web friendly (Bertrand gives us hope!) View and manipulate ROOT objects like in a TCanvas/GUI Others are working on solutions, lack of concertations ? Axes are not easy to manipulate Responsibilities are unclear (histo, pad, axis) Time-based axes should be far easier to use Objects ownership E.g. TH1 with « functions » encapsulated in a MOTObject E.g. THStack (main histo is destroyed, not the others) CMake: missing FindROOT.cmake or ROOTConfig.cmake Using ROOT as a simple library (no TApplication) We want our core files and stack traces Difficulties (1) 11/03/2013 Barthélémy von Haller & Adriana Telesca, ALICE, PH department, CERN 12
13
Histograms hierarchy is wrong Sometimes obscure or inconsistent class interfaces E.g. TMessage::EnableSchemaEvolution() does actually nothing if not used in conjunction with TSocket E.g. Zoom is a property of TH1 != draw option and log scale are properties of TPad GUI: powerful but writing them is tough, error prone and pretty verbose Support Too often the answer is « Why don’t you do it this way? » instead of fixing the issue C++ standard or ROOT standard ? STL, Boost, Collections and types Difficulties (2) 11/03/2013 13
14
Code name « redemption » 1.No major new features 2.Fix the (base) classes inheritance and interfaces o Hopefully it can even be backward compatible 3.Make ROOT web friendly 4.Make ROOT looks nice o GUI and graphics need a modern look and feel o Simplify GUI programming while you are at it Prepare ROOT for the next 20 years and protect future users from mistakes made 20 years ago. My ideal ROOT 7 11/03/2013 Barthélémy von Haller & Adriana Telesca, ALICE, PH department, CERN 14
15
The ALICE DQM uses and relies on many features of ROOT ROOT provided a very complete toolbox which helped us develop effectively AMORE ROOT is going to be used for many more years and, today, there is an opportunity to fix long-standing issues Thank you for all the good work ! Conclusion 11/03/2013 Barthélémy von Haller & Adriana Telesca, ALICE, PH department, CERN 15
16
Backup slides 11/03/2013 Barthélémy von Haller & Adriana Telesca, ALICE, PH department, CERN 16
17
TMessage and objects evolution 11/03/2013 Barthélémy von Haller & Adriana Telesca, ALICE, PH department, CERN 17 Producer ROOT v. X Consumer ROOT v. Y>X TMes sage Datab ase Monitor Object Monitor Object Monitor Object Streamer Incompatible and no Streamer EnableSchemaEvolution doesn’t actually help. It only raises a flag in Tmessage that is used by TSocket
18
Web ROOT 11/03/2013 Barthélémy von Haller & Adriana Telesca, ALICE, PH department, CERN 18 An event (click) means a histo must be drawn An event (click) means a histo must be drawn 1.Get histo1 2.Use a special printer or method on the object 3.Send back the JSON or HTML5+JS or SVG+SMIL 1.Get histo1 2.Use a special printer or method on the object 3.Send back the JSON or HTML5+JS or SVG+SMIL myDiv.content = JSROOT.Draw(json) Another approach HTTP request (AJAX) Ask for data of histo1 JSON data HTML5+JS SVG+SMIL OR myDiv.content = data Server Client
19
JSON : close to what BB is doing, still people can easily use the js lib alone. Need for a performant and complete histograming JS library Adding DrawWeb() to classes seems a reasonably important effort (?) Creating a specific printer might even be simpler If no printer/method available for a certain type, simply degrade to generate an image. HTML or SWIG is lighter for the client but today clients (browsers) are powerful Web ROOT 11/03/2013 Barthélémy von Haller & Adriana Telesca, ALICE, PH department, CERN 19
20
To be done in the JSON option: Client o Optionally develop a facility js library to handle the request to server and the drawing in a div Server / ROOT o Find the best way of generating JSON for any object (new Printer or addition method in TObject). If not defined fall back to an image ? Client o Develop an efficient and complete histograming javascript library (drawing and manipulation). Usable without ROOT. Web ROOT 11/03/2013 Barthélémy von Haller & Adriana Telesca, ALICE, PH department, CERN 20
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.