210 likes | 389 Views
A ROOT-Based Client-Server Event Display for ZEUS. Krzysztof Wrona , Oliver Gutsche and Rainer Mankel (DESY Hamburg) Computing in High Energy Physics 2003 24-Mar-2003. Motivation. Architecture, Data Model & Implementation. Server Design & Performance. Graphical User Interface.
E N D
A ROOT-Based Client-Server Event Display for ZEUS Krzysztof Wrona, Oliver Gutsche and Rainer Mankel (DESY Hamburg) Computing in High Energy Physics 2003 24-Mar-2003 K. Wrona, A ROOT-based Client Server Event Display for ZEUS
Motivation Architecture, Data Model & Implementation Server Design & Performance Graphical User Interface Display examples Outline K. Wrona, A ROOT-based Client Server Event Display for ZEUS
Motivation for New ZEUS Event Display • During the HERA luminosity upgrade, new detector components have been installed which require extended 3D capabilities • Example: Micro-vertex detector (MVD), straw tube tracker (STT) • Needed a non-monolithic solution, which includes analysis software as a modular component • Client/server approach allows clear separation • lightweight client (purely C++, no experiment libraries) • server application (encapsulates legacy code) ZeVis = Zeus Visualization K. Wrona, A ROOT-based Client Server Event Display for ZEUS
Architecture ZClient Main client application & GUI ZEvtBuild ZEUS event to ROOT conversion ZGeomBuild ZEUS geom to ROOT conversion ZesAgent Event agent for server ZevLib Detector objects ZevLibX ZEUS DDL interfaces other ZEUS software • ZClient is a lightweight client application which only depends on ZevLib and ROOT K. Wrona, A ROOT-based Client Server Event Display for ZEUS
Data Model • Clear separation of geometry and event information to minimize amount of data transfer • Geometry: only needs to be loaded once (or few times at most) • optimize for fast drawing. All ZEUS geometry classes derive from corresponding shapes in ROOT. • Geometry can draw itself independently • present size 450 kB • Event: many ROOT-files to be transferred & stored (cached) • file contains tree of event-objects • objects contain drawable event information (e.g. track objects), refer to geometry information during drawing, cannot be drawn independently • optimize for size. Data structure similar to ZEUS miniDST • about 30 kB/evt K. Wrona, A ROOT-based Client Server Event Display for ZEUS
Implementation With ROOT • Parallel implementation of 3D display and layered 2D projections is achieved by overloading “Paint()” member function • in 3D mode, use Paint() function of basic ROOT class • in 2D mode: • 3D-object contains list of 2D-representation-objects • Paint() function draws list of objects according to the desired projected shape • Fish-eye view in XY and ZR projection to allow simultaneous inspection of inner (MVD) and outer detector (muon system) • achieved by overloading TView::WCtoNDC function • Extensive use of picking functionality and “describe object below mouse pointer” • Extension of TWebfile class to integrate feedback from server • For control room, special mode which periodically loads the next online event K. Wrona, A ROOT-based Client Server Event Display for ZEUS
Straight-forward “projections” of 3D representation can be complex & confusing • Layered projections with proper ordering allow to really analyze the event Integrationof 2D/3D views • Perspective views with hidden surface removal are useful for understanding geometry, but do not show the event well K. Wrona, A ROOT-based Client Server Event Display for ZEUS
Tag DB Event Store dCache Client-Server Motivation • Event display needs access to experiment’s event store and online system • Idea: separation of • portable lightweight client, which can run wherever ROOT can run • central geometry & event server on DESY site and connect via HTTP protocol (ROOT’s TWebFile) to pass firewall HTTP User work station Central ZeVis Server (1 Dual-Xeon 2GHz) Mass storage control room LAN office on-site LAN off-site, home WAN DESY Computer Center K. Wrona, A ROOT-based Client Server Event Display for ZEUS
Apache + ROOT module + PHP4 Geometry file Geometry file Geometry file Dispatcher (PHP4) Event agent Event agent Event agent Event agent Event agent ROOT Conversion Online Events Events of the Week (PR) Internal Structure of The ZeVis Server Constants DB Geometry Builder Geometry request Tag DB Single event request Event Store File request Online Reconstruction Online event request EOTW request K. Wrona, A ROOT-based Client Server Event Display for ZEUS
Components of The ZeVis Server • Single event server • random access to event from ZEUS Event Store and conversion to ROOT format on-the-fly • normally based on run/event number, optionally with query on about 300 tag variables per event (both modes involve tag database, Objectivity/DB 7.0) • staging handled by dCache system if necessary • for low latency, the “event agents” are pre-initialized and wait for a request passed to them (daemon-fashion) • 10 event agent processes per software release (pro + dev), 20 in total • Online event server • online system splits RAW events off the event stream at about 0.1 Hz • on-the-fly reconstruction and ROOT conversion on dedicated server • Geometry and propaganda events • static ROOT files on the server, which are produced offline • download of geometry file takes << 1s K. Wrona, A ROOT-based Client Server Event Display for ZEUS
(no server cache) Server Performance • Less than 2 s average response time • even faster on cached events • this includes event analysis and conversion to ROOT format Stress test • In reality, simultaneous requests will hardly occur at all • Server can stand up at least 4 requests in parallel without noticeable performance loss K. Wrona, A ROOT-based Client Server Event Display for ZEUS
Input modes Zoom controls Option tabs Status information Canvas Pads Object information Graphical User Interface K. Wrona, A ROOT-based Client Server Event Display for ZEUS
GUI: Single Event Server K. Wrona, A ROOT-based Client Server Event Display for ZEUS
GUI: Download file mode K. Wrona, A ROOT-based Client Server Event Display for ZEUS
GUI: Online Mode K. Wrona, A ROOT-based Client Server Event Display for ZEUS
Projections XY and RZ • These are the main views for event analysis • Projections complement the geometry of the detector K. Wrona, A ROOT-based Client Server Event Display for ZEUS
Fish-eye View • Allows to see details in the vertex detector simultaneously with the outer detectors • Also available in ZR view K. Wrona, A ROOT-based Client Server Event Display for ZEUS
MVD Clusters • Occasional (well-known) fill area clipping artifacts from ROOT MVD Display • ROOT allows 3D view within a pad (wire frame only) K. Wrona, A ROOT-based Client Server Event Display for ZEUS
Drift Chamber Raw Hits • Normally, CTD display shows assigned hits, taking drift distance into account • Special mode shows cell structure and raw hits K. Wrona, A ROOT-based Client Server Event Display for ZEUS
Muon Chambers and Hits Muon Hits • Not yet final K. Wrona, A ROOT-based Client Server Event Display for ZEUS
Summary • Client-Server event display successfully developed with ROOT as basis • highly portable, light-weight client • fast geometry & event access via HTTP. Mature server design. • Full integration of 2D/3D views. Online display • Ergonomic GUI • Excellent experience with ROOT functionality Contributions by: U. Fricke, C. Genta, O. Gutsche, S. Hanlon, E. Heaphy, R. Kaczorowski, O. Kind, R. Mankel, J. Rautenberg, V. Sipica Thanks to the ROOT team for help & advice (and for providing ROOT!) K. Wrona, A ROOT-based Client Server Event Display for ZEUS