needs narrowing Ba Bar WIRED the Ba Bar
needs narrowing Ba. Bar WIRED: the Ba. Bar Experience with WIRED needs widening Hep. Rep: a Generic Interface Definition for HEP Event Display Representables Joseph Perl, SLAC Computing Services Hep. Rep forms the central part of a complete generic interface for client server event displays. The Hep. Rep interface supports all of the desirable features of a client server event display, provides for the correct distribution of computing work between the two parts of the system and effectively addresses the many important maintenance issues involved in such a system. 9 Feb 2000 Joseph Perl Hep. Rep: a Generic Interface for Event Display 1
Client Server Event Display Client Event Display Server Connection may be slow or unreliable. Even with a fast connection, requesting data in too many small pieces causes unacceptable accumulation of call overhead. An efficient interface must be designed. 9 Feb 2000 Joseph Perl Hep. Rep: a Generic Interface for Event Display 2
Maintenance Problem Event Display Client Event Server Event Display Client At the same time that a static, installed base of client software is being built up on user desktop computers. . . 9 Feb 2000 Joseph Perl Hep. Rep: a Generic Interface for Event Display 3
Maintenance Problem Event Display Client. New Rep. Event. New Rep Display Client New Rep Event New Rep Display Client. New Rep Event Server Event Display Client . . . new Representables are being defined that must be propagated to all of the previously installed clients. The server evolves, making new Representable Types available, but the user should not be required to update the client software. 9 Feb 2000 Joseph Perl Hep. Rep: a Generic Interface for Event Display 4
Event Display Requirements Fast: • Minimize network traffic. • Minimize accumulation of call overhead. Maintainable: • Let a static installed base of client software handle new Representable Types from evolving servers. • Allow physicists to add Representables by modifying only the server side code. • Avoid class explosion in the interface definition and client. Full-Featured: • Enable picking and physics-based visibility cuts in a simple way for all Representables. • Provide a flexible, generic solution to the problem of pickable object granularity (give the user fine-grained pick abilities, such as the ability to pick on a single hit on a track, while avoiding having so many separate pickable objects that the graphics engine is overloaded). But users should only have to pay the speed costs of those full features if they want those features at the given moment. 9 Feb 2000 Joseph Perl Hep. Rep: a Generic Interface for Event Display 5
What Does the Server Ship? Event Display Server Event Display Client At first glance, the solution seems easy. • The server can just give the client a reference to the Physics Object. • The client can then use remote method invocation solutions (CORBA, RMI) to call methods on the server side. 9 Feb 2000 Joseph Perl Hep. Rep: a Generic Interface for Event Display 6
Hep. Rep: a Generic Interface Definition for HEP Event Display Representables * 1 Hep. Rep 1 Type Name: String 1 Version: String * Hep. Rep Known. Type 1 Name: String Version: String 1 * Hep. Rep Instance 1 * Hep. Rep Att. Def Name: String Desc: String Type: String Label: boolean Extra: String 1 * Hep. Rep Primitive 1 * Hep. Rep Att. Value Name: String Value: Any 1 * 1 Hep. Rep Point X, Y, Z: Float Hep. Rep Att. Name: String Server. Thread +get. Known. Type. List ( ) : Hep. Rep. Known. Type. List +get. Representables (Known. Type: Hep. Rep. Known. Type, Cut. List: Hep. Rep. Cut. List, Get. Points: Boolean, Get. Draw. Atts: Boolean, Get. Non. Draw. Atts: Boolean, Invert. Atts: Hep. Rep. Att. Name. List) : Hep. Rep. Type 9 Feb 2000 Joseph Perl Hep. Rep: a Generic Interface for Event Display Hep. Rep Cut Name: String Comparison: String Value: Any 7
Representables The design decision behind Hep. Rep is to serve Representables, not Physics Objects. A Representable is the Spatial Information of a Physics Object (track, calorimeter hit, etc. ) and can be augmented by that object’s Physics Attributes (momentum, energy, etc. ). Serving Representables keeps the detailed reconstruction code, swimmers and detector models on the server side where they belong. Spatial information is assembled and shipped in an efficient manner, avoiding the overhead of too many individual method calls. * 1 Hep. Rep 1 Type Name: String Version: String 1 * Hep. Rep Instance 1 * Hep. Rep Primitive 1 * Hep. Rep Point X, Y, Z: Float 1 1 Sub. Type and Sub. Instance are handled by recursive use of Type and Instance Type Track Cluster 9 Feb 2000 Hit. Strip Instance 5 5 5 12 324 Sub. Type Sub. Instance unused Hit. On. Track 6 Kal. Man. Point 9 unuseda Generic Joseph Perl Hep. Rep: unused. Interface forunused Event Display Primitive Helix. Segment Hyper. Circle Helix. Segment Box Poly. Line Point start center start corners points 8
Hep. Rep Attributes Hep. Rep Type 1 * Hep. Rep Instance 1 * Hep. Rep Primitive 1 * Hep. Rep Point Any Type, Instance, Primitive or Point may have a sequence of Attributes: • Draw Attributes (such as thickness and color) can be modified in the client through a draw attribute editor • Physics Attributes (such as track momentum or hit error) can be used for visibility cuts (client side or server side) • Pick. Action Attributes that define special things to do when the user picks on the Representable (such as remove hit and refit track) • Association Attributes that define loose associations between Representables (such as track cluster matching) Hep. Rep Att. Def Name: String Desc: String Type: String Label: boolean Extra: String 9 Feb 2000 Hep. Rep Att. Value Name: String Value: Any Joseph Perl Hep. Rep: a Generic Interface for Event Display 9
Hep. Rep Attributes Hep. Rep Att. Def Name: String Desc: String Type: String Label: boolean Extra: String Name Pt PID System Color Remove Trk. Clust Draw. As 9 Feb 2000 Desc Transverse Momentum Particle ID Detector System Color Remove Hit & Refit Track’s Associated Cluster Draw. As Hep. Rep Att. Value Name: String Value: Any Extra Type Value Ge. V Physics 1. 76 unused Physics Pion unused Physics Vertex Detector unused Draw Blue remove Pick. Action Track(5). Hit(8) Cluster Association Cluster Number unused Draw Ellipsoid Joseph Perl Hep. Rep: a Generic Interface for Event Display 10
The Attribute Named Draw. As Encodes How the Primitive Uses the Points As with any Attribute, Draw. As can be specified here or can be inherited from Instance or Type Draw. As Value Poly. Line Poly. Point Ellipsoid Box Hyper. Circle Hyper. Polygon Helix. Segment Text 9 Feb 2000 Hep. Rep Primitive 1 1 * 1 Hep. Rep Point X, Y, Z: Float * Hep. Rep Att. Value Name: String Value: Any Additional Attributes x. Size, y. Size, z. Size n. Points radius width, n. Sides helix. Parms string Points one for each of n. Points two foci first for inner face, then outer face one center one start point or one end point one center Joseph Perl Hep. Rep: a Generic Interface for Event Display 11
Pick Granularity * 1 Hep. Rep 1 Type Name: String Version: String 1 * Hep. Rep Instance 1 * Hep. Rep Primitive 1 * Hep. Rep Point X, Y, Z: Float Since graphics engines become overloaded if there are too many separately pickable objects, it is best to give the user client-side control of pick granularity. Pick Granularity Type Instance Sub. Type Sub. Instance Primitive Point 9 Feb 2000 What to handle as a single pickable object all prims of given Type and Instance all prims of given Type, Inst, Sub. Type, Sub. Inst a single Primitive a single Point Joseph Perl Hep. Rep: a Generic Interface for Event Display Example pick object all Tracks one Track all hits on one Track one hit on one Track one Hyper. Circle one Point 12
Basic Download Method * Hep. Rep Known. Type 1 Name: String Version: String Recursive structure with which the server can tell the client what Types (or Type. Sub. Types) are known (version strings useful for telling when to load new versions of non-event data). Server. Thread +get. Known. Type. List ( ) : Hep. Rep. Known. Type. List +get. Representables (Known. Type, . . . ): Hep. Rep. Type Client can ask server for all Representables of a given Type (or Type. Sub. Type). 9 Feb 2000 Joseph Perl Hep. Rep: a Generic Interface for Event Display 13
Additional Control Over the Download Client can ask for only those Representables of the given Type that pass a set of cuts on Attributes. Server. Thread +get. Representables (Known. Type, Cut. List, Get. Points, Get. Draw. Atts, Get. Non. Draw. Atts, Invert. Atts ) : Hep. Rep. Type Hep. Rep Att. Name: String Hep. Rep Cut Name: String Comparison: String Value: Any Client can control whether a particular download should include Draw Attributes, Non. Draw Attributes and/or Points (even finer control is available via Invert. Atts). • To display without picking or cuts, need Points and Draw Attributes. • To display with picking and cuts, need Points and all Attributes. • To enable picking and cuts after the event has already been downloaded, make an additional request only for Non. Draw Attributes. • To display a Sub. Type when the Parent Type is not actually to be displayed, need the Parent Type’s Attributes (for inheritance purposes) but not its Points. 9 Feb 2000 Joseph Perl Hep. Rep: a Generic Interface for Event Display 14
Hep. Rep: the Generic Interface Definition for HEP Event Display Representables The Ba. Bar Collaboration is converting their existing WIRED Event Display Client and CORBA Event Server to use Hep. Rep. In Ba. Bar, the client is in Java, the server is in C++ and the communications is by CORBA, but care has been taken to not tie the Hep. Rep interface definition to any particular language specification or communications protocol. Bar’s Hep. Rep-capable event display client will be immediately usable by any other collaboration that provides a Hep. Rep-capable event server. Details: contact Joseph Perl, perl@slac. stanford. edu, or see SLAC-PUB-8332. 9 Feb 2000 Joseph Perl Hep. Rep: a Generic Interface for Event Display 15
- Slides: 15