Building an Event Display with GAUDI - PowerPoint PPT Presentation

About This Presentation
Title:

Building an Event Display with GAUDI

Description:

Same pattern as for persistency using adapter classes ... Managing the two stores. Transient. Event Data. Graphical. Store. G. Bi-directional. opaque address ... – PowerPoint PPT presentation

Number of Views:28
Avg rating:3.0/5.0
Slides: 9
Provided by: pere83
Category:

less

Transcript and Presenter's Notes

Title: Building an Event Display with GAUDI


1
Building an Event Display with GAUDI
  • LHCb Software Week
  • 24-26 November 1999
  • P. Mato

2
Outline
  • Visualization Model in GAUDI
  • Functionality
  • Status

3
Architectural choice
  • We do not want to tell a Data Object to draw
    itself
  • A Data Object does not know where to be drawn,
    how to be drawn, with which graphical properties
    (color, texture, projection,), which graphical
    package, ...
  • Instead we want to decouple Data Object from its
    graphical representation.
  • Same pattern as for persistency using adapter
    classes (Converters)
  • We need to write a Converter for each Data Object
    class and each visualization package.

4
Visualization Model
Interactive User Interface
Algorithm
xxLabSvc
Algorithm
Algorithm
TransientEvent Data
GraphicalScene
SoCnvSvc
SoXXCnv
SoXXCnv
SoXXCnv
TransientDetector Data
SoXXCnv
5
Converter Example SoDetElemCnv
StatusCode SoDetElemCnvcreateRep( DataObject
aObject,IOpaqueAddress) DetectorElement
de dynamic_castltDetectorElementgt(aObject)
ISolid sl de-gtgeometry()-gtlvolume()-gts
olid()-gtcoverTop() SolidBox box
dynamic_castltSolidBoxgt(sl) SoSeparator
separator new SoSeparator SoTransform trans
new SoTransform Hep3Vector c
de-gtgeometry()-gtmatrix().getTranslation()
-1.0 Hep3Vector v double angle
de-gtgeometry()-gtmatrix().getRotation().getAngleAxi
s(angle , v ) trans-gttranslation.setValue(
c.x(), c.y(), c.z()) trans-gtrotation
SbRotation( SbVec3f(v.x(),v.y(),v.z()), angle)
separator-gtaddChild(trans) SoCube cube
new SoCube() cube-gtwidth box-gtxHalfLength()
2 cube-gtheight box-gtyHalfLength() 2
cube-gtdepth box-gtzHalfLength() 2
separator-gtaddChild(cube)
6
Managing the two stores
Graphical Store
Bi-directional opaque address
TransientEvent Data
G
pick()
update()
7
Potential Functionality
  • What can be displayed?
  • In principle anything that is in any of the
    transient stores (event, detector, histogram,)
    can be displayed. Needed corresponding converter.
  • Objects not in the transient stores could also be
    drawn if driven by algorithms.
  • How much interactivity?
  • Not the business of data visualization. The
    interactive user interface is another service.

8
GaudiLab Status
  • Prototype exists based on Open Scientist()
  • Proof of concept
  • Could be useful for debugging. E.g. geometry,
    algorithms
  • More work is needed to make it complete and
    usable.

() OpenGL, OpenInventor, HEPVis, Lab, ...
Write a Comment
User Comments (0)
About PowerShow.com