FreeHEP Plotter
The FreeHEP plotter will be based on the existing JAS Plotter (JASHist),
but with changes to add new features requested by users, a plugin structure to
make adding new plot types easier, and a more flexible data model to make
attaching various different data types possible. The FreeHEP plotter will fully
support displaying all AIDA plots types.
A partial list of design goals include:
- Support for histogram, XYPlot, ScatterPlot, 2D
color maps, lego plots, contour plots ..
- Must be able to use any object as annotation
or labels (arrows, latex, etc.)
- Must be able to build complex plots (multiple
axes, shared axes, etc.)
- Extensible set of renderer
- Extensible set of data source interfaces
- Arbitrary map from axis to coordinate system
(log, linear)
- Support 2D and 3D drawing (and in principle
also inventor, opengl etc.)
- Output as postscript, SVG etc.
- Able to support strings (sorted?), dates,
numeric axis
- Binned and non-binned axes, rebinning for
binned axis
- Able to select a range in 1D and 2D plots for
zooming, fitting in range, cuts etc
- Variable bin size
- Able to support legends, titles, annotations
etc
- User able to directly interact with objects,
move them around (including outside plot boundaries)
- Labels should resize to fit bounds
- Support for functions, directly setting
initial values
- Arbitrary interactions between plot and data (rebinning,
zooming etc.)
- Property pages and popup menus for
customization
- External objects should be able to insert (or
delete) items into property pages, popup menus
- Plot should be able to provide menus to
external GUI
- Extensible using OO techniques (e.g.
Specialized Axes)
- Saving/Restoring from XML
- Real time updating
- High performance (rapid updates)