List of User Requested Features

Class AxisRepBase
Let user draw border in different color.

Member hippodraw::ProjectorBase::getRMS (Axes::Type axis)
Can do better than use only the projected values in some derived classes.

Member hippodraw::BinningProjector::isImageConvertable () const
Allow axis to be on log scale, but this will require generating the X and Y coordinates for the image.

Class Bins1DHist
Should use BinnerAxis::getCoordinate() and have asymmetric errors.

Class BoxTextRep
Be able to edit the text.

Member hippodraw::FunctionBase::integrate (double lower_limit, double upper_limit) const
Override this method in derived classes when calculation of integral can be done analyically.

Member hippodraw::FunctionBase::integrate (double lower_limit, double upper_limit) const
Check if this is the best algorithm. Its looks different from the one found in

Class CanvasSettings
Plot matrix should have a preview.

Class CanvasView
@@ Scale the view so that full page appears in Window.

Class CanvasView
@@ Coordinates should show when mouse is over plot. Should be no need for right mouse down.

Class CanvasView
Need remove empty pages menu item.

Member hippodraw::CanvasView::saveAs (const std::string &filename) const
Raise error dialog if saving to file was not successful.

Member hippodraw::CanvasView::saveSelectedImages ()
@@ Add SVG format to types available.

Class CanvasWindow
Have a editable DataSource table view.

Class CanvasWindow
@ Open documents read only. This could be the default when the file Open menu item is used.

Class CanvasWindow
A clear all button on the tool bar.

Member hippodraw::CanvasWindow::saveAllAs (const std::string &filename)
Raise error dialog if saving doesn't work.

Class ColumnPointRep
@@ Need version which draws histogram on its side.

Class CompositePlotter
When 2 and only 2 DataRep objects are stacked, use right Y axis to show scale.

Class CompositePlotter
Allow DataRep to be hidden.

Class Cut2DPlotter
@@@ Need better way to show 2D cut when the 2D color plot is full of points with no empty squares. Perhaps draw rectangle on top of plot.

Class Cut2DPlotter
@@@ Put 1 pt wide rectangle around selected region so it can be seen even if background is full.

Class CutPlotter
Be able to display number of points passing cut.

Member hippodraw::DataColumn::m_double_data
Support data types other than double.

Class DataRep
Be able to take difference between two data reps and plot it.

Class DataRep
@@@ Be able to do Lego plots.

Class DataRepXML
Check that histogram with equal bin contents can be archived.

Class DataRepXML
Check that minimum entries per bin can be archived.

Member hippodraw::DataSource::fillRange (unsigned int column, Range &) const
use if ( x != x) to test for nan

Class FigureEditor
Move any attached text displays along with moved plotter display.

Class FigureEditor
@@@ For plots using pixmap, do not draw plot when resizing until mouse is release.

Class FilledColumnPointRep
Only using solid pattern for the fill for now. Qt will allow us to use other patterns.

Member hippodraw::FunctionBase::FunctionBase (const FunctionBase &)
Remove this copy constructor, it was only tempoary to try to fix cloning functions written in Python with SIP.

Member hippodraw::FunctionController::addFunction (PlotterBase *plotter, const std::string &name, FunctionRep *frep, DataRep *data_rep)
Check that previously set fixed flags and/or limits get propagated to new linear sum function.

Member hippodraw::FunctionController::ellipsoidNTuple (PlotterBase *plotter, FunctionRep *, NTuple *nt, int n, double &xmin, double &xmax, double &ymin, double &ymax)
@@ Make sure they are being calculated correctly by hold one parameter constant and refitting.

Member hippodraw::FunctionController::saveParameters (PlotterBase *plotter)
@@ Should save parameters in a stack, so that more than one set can be saved and restored.

Class FunctionFactory
Be able to add new functions from a shared library.

Member hippodraw::FunctionProjector::m_save_parms
@@ Use a std::stack for this.

Member hippodraw::FunctionWrap::operator() (double) const
Why is exception being thrown for and are we handling the fix correctly

Class Hist1DProjImp
@@@ Want to be able to plot E**2 dN/dE as will as dN/dE. Need to decide if this is part of a histogram class or part of adding columns to the DataSource.

Class Inspector
It would be helpful if the Canvas settings pop-up had an "Apply" button that retiles the canvas, but which does not close the window (or save the configuration). You could just have the "Retile" button serve this purpose by not having it close the window.

Class Inspector
For views that have two histograms overlaid, it would be nice to have a button that returned the KS test statistic and probability that the two data sets are drawn from the same underlying distribution. Not sure what to do if more than two histograms are overlaid or if one of the datareps is not a histogram. Probably best to disable this button.

Class Inspector
In control-left clicking to select a datarep within a given view, it would be useful to have an easier way of returning to the state where no single datarep is selected. Often I have many datareps plotted in a single view, and I want a quick way of restoring the view rather than cycling through all of the reps, possibly overshooting in my haste.

Class Inspector
@@ In zoom/pan mode, still should show high and low of range.

Class Inspector
@@ Set to likelihood fitter when statistics of bins go below some threshold.

Class Inspector
@ Display objective value to the functions tabbed panel.

Class Inspector
Should be able to change title/label text with TeX.

Class Inspector
In status tabbed panel, when no plot is selected should still be able to add text box.

Class Inspector
On the Stats panel, the radio button entry "Chi-squared statistics of function" should read "Chi-square per dof =" with the value displayed as it is for "Number of entries", "Average x-value", and "Average y-value". Same goes for "Standard deviation of x-value".

Class Inspector
On Stats tabbed panel, it would be nice when selecting text in box that the keyboard focus would go to box and a return with trigger the insertion.

Class Inspector
@@@ Sliders controlling cuts that are plotted on logarithmic x-axes should respond on a logarithmic scale instead of a linear one.

Class Inspector
Hoyle would like one x but 16 channels in Y displayed on one XY plot, but not do it via 16 DataRep objects.

Class Inspector
In the stats summary panel, the description should match the type used by the factory.

Member hippodraw::Inspector::cutNew ()
Be able to add new cut to all DataRep objects contained by the plotter.

Member hippodraw::Inspector::updateCutEnableButton ()
This method seems to get called more than once when adding a cut. Should try to fix that.

Class LMFitter
Make the fit() method a member function of the DataRep instead of the function in the Python interface.

Member hippodraw::LogNormal::initialParameters (const FunctionHelper *helper)
Need better estimate of initial parameters.

Class Map1Projector
Optionally, an additional column can be mapped to Y error bars.

Member hippodraw::MapMatrixProjector::m_null_value
Allow user to set and get this value.

Class MinuitMigrad
Add support for using Minos to get asymmetric errors.

Class NTuple
@ Besides interval count, need interval timer.

Member hippodraw::NTupleFCN::calcAlphaBeta (std::vector< std::vector< double > > &alpha, std::vector< double > &beta)
Find out what these really are and document them. They might be the gradients.

Member hippodraw::NTupleController::readAsciiNTuple (NTuple *ntuple, const std::string &filename)
If the label for a column is very long, then it is probably an error in the file format. One should raise a dialog if attempting to read from the GUI, or throw an exception if from Python to asked the user to continue or not.

Member hippodraw::NTupleController::readAsciiNTuple (NTuple *ntuple, const std::string &filename)
If line of labels contains no tabs at all, then should probably assume that any white space separates the labels.

Member hippodraw::NTupleController::readAsciiNTuple (NTuple *ntuple, const std::string &filename)
If bad format detected, try to say what was bad.

Class NTupleXML
Need to save shape of NTuple in order to implement saving St2DHistogram.

Class PlotTable
Display TextRep in more friendly way.

Class PlotterBase
Make title of plot optional and not the default. Use the space for plotting.

Class Profile2D
@ Implement a static version and expose to Python via SIP. Don't forget to implement Bins2DProfile.setContents.

Member hippodraw::Profile2DProjector::execute ()
Support averaging with a weight.

Class ProfileHist
@ Implement static version. Don't forget to implement Bins1DProfile::setContents().

Member hippodraw::PyApp::PyApp ()
There's a better way to wait for application to be ready. Saw it in Qt related documentation.

Class PyCanvas
Be able to retrieve, from Python, information on active displays on the canvas such as a display identifier, axis labels, etc ...

Class PyCanvas
@@ Add interface to re-tile.

Class PyCanvas
@@ Get a Display by its plotter id.

Member hippodraw::PyDataSource::addColumn (const std::string &label, boost::python::numeric::array array)
@@ This method only works if contained DataSource is NumArrayTuple. It could accept more like saveColumnFromNumArray does.

Member hippodraw::PyDataSource::PyDataSource (const std::string &dataSource)
@@ Have a constructor that takes DataSource and figures out what type it is.

Member hippodraw::PyFitsController::instance ()
Should always build this class and throw exception if user tries to use it when code was not built with FITS support.

Class PyFunctionRep
@@ Return covariance matrix.

Member hippodraw::QtDisplay::addDataRep (const std::string &type, const DataSource *ntuple, const std::vector< std::string > &bindings)
@@@ Also need to have removeDataRep in interface.

Member hippodraw::QtDisplay::setColorMap (const std::string &name)
Expose the BinToColorFactory to Python so user can see the choice of names.

Member hippodraw::QtDisplay::setTransform (const std::string &name)
Expose to Python the list of available transforms.

Class QtDisplay
@@@ Need to add methods that PyDataRep implements so user doesn't need to know about DataRep objects.

Class QtDisplay
@@@ Implement constructor that takes as first argument a DataSource/DataArray and if binding is one element, create Histogram, if two, create ColorPlot.

Class QtDisplay
Need to check each method that does a lock to see if an exception could be thrown. If yes, and no try/catch block, then application will hang.

Member hippodraw::QtDisplay::createDisplay (const std::string &type, const DataSource &nt, const std::vector< std::string > &bindings)
Expose to Python the names of the available displays.

Class QtFileDialog
@@@ Make sure second use of this dialog, starts in previously used directory. Make sure previously selected file type is used on second use.

Class QtFileDialog
@@ All file types should be shown and information dialog raised if application was not built to support it.

Member hippodraw::QtRootNTuple::getColumnAsArray (const std::string &variable)
Should let PyDataSource create the numarray so this class doesn't depend on numarray; as was done for FitsNTuple.

Member hippodraw::QtRootNTuple::valueAt (unsigned int row, const std::string &variable)
Should let PyDataSource create the numarray so this class doesn't depend on numarray; as was done for FitsNTuple.

Class RootBranch
@@ support ROOT Char_t and others.

Member hippodraw::RootBranch::m_vector_double_data
Could this be a vector instead of pointer.

Member hippodraw::RootBranch::RootBranch (TBranch *)
@@@ Should make this branch unuseable instead of throwing exception if the data type is not supported.

Member hippodraw::RootBranch::doubleArrayAt (unsigned int row)
Add the conversion feature to other xxxArrayAt member functions.

Class RootController
@@ Be able to chain ROOT files.

Class RootController
Read TH1 and TH2 histograms in ROOT file and convert to corresponding static histograms.

Class TextDataRep
@ The TextDataRep view should always be locked to it's target.

Class TupleCut
@@@ Needs form of TupleCut, or some other class, allowing one to use only certain set of rows, independent of the contents.

Class ViewBase
Also being able to capture these values for input to the range widgets (e.g., set Z High to _this_ bin's value, set Z low to _that_ bin's value) would be nice.

Class WindowController
@@@ Add a flag, set-able from Python, that would disallow the application to be exited via closing the last CanvasWindow.

Class WindowController
@@ no need to terminate the application on last window close on the mac OS.

Member hippodraw::WindowController::s_version
@ Windows only, Need to get the version number into the Windows installer file.

Member hippodraw::WindowController::positionCanvas (CanvasWindow *window)
@ Should use QDesktop to get usuable screen size on the Mac

Member export_DataSource
Add getShape(int) function to allow user to get shape of a column.

Member export_NTupleController
Provide interface to DataSourceController.

Namespace hippodraw::Python
On Mac OS X, get lots of warning messages about use of long double, must have a gcc flag to fix that.

Namespace hippodraw::Python
Write m4 macro to allow user to fix path to Python includes and lib.

Namespace hippodraw::Python
Consider using ax_boost_python.m4 from autoconf macro archive.

Namespace hippodraw::Python
Consider other Python finding m4 macros from the autoconf macro archive.

Generated for HippoDraw Class Library by doxygen