General changes
- OH has been fully migrated to the Error
Reporting Service (ERS). Now all the errors which appear during OH
functions invocations are reported as C++ exceptions. Any OH function
which may throw exceptions has this exceptions declared as part of its
signature. All OH exceptions are defined in the two nested namespaces daq::oh and
inherit from the same daq::oh::Exception
exception which in turn inherits from the ers::Issue
exception. This way OH exceptions can be handled either individually or
all at once. Doxygen documentation for the new
OH API is available from the OH
home page.
- Several itarator classes have been added to optimize iteration
over OH objects:
- OHIterator -
enumerates all
objects in the OH.
- OHHistogramIterator
- enumerates only
histogram objects in the OH.
- OHGraphIterator -
enumerates only
graphs objects in the OH. Both 1D and 2D graphs are covered.
- OHGraph1DIterator -
enumerates only
1D graphs objects in the OH.
- OHGraph2DIterator -
enumerates only
2D graphs objects in the OH.
All these classes provide the same API.
- OH does now support ROOT graphs.
- The interface for graph publishing is the same as for
histograms.
- One can use the classes OHRootProvider and OHRootReceiver to
publish and receive graphs in ROOT format.
- The supported ROOT graphs are: TGraph, TGraphErrors,
TGraphAsymmErrors as graphs with 2 axes and TGraph2D, TGraph2DErrors as
graphs with 3 axes.
- Support for publishing TGraphBentErrors can be added with few
changes immediately after TDAQ uses a newer ROOT release (>v5-12-00)
- The OHRawProvider has two more publish functions for graphs
with 2 and 3 axes including error descriptions.
- See the Doxygen documentation about the mentioned classes for
more detailed information.
- See also the example applications oh_graph_provider,
oh_root_receiver and oh_raw_provider in the examples directory of the
OH release.
- OH utilities - OH Display application (oh_display)
- OH Display can now display all the supported graphs.
- A feature for changing the ROOT Draw options has been added.
When publishing one can give an annotation to the graph/histogram to
set the draw options. The last parameter of the publish function in
OHRootProvider or OHRawProvider takes a vector of std::string pairs. If
you provide a pair with the value "DrawOption" in the first element and
your ROOT Draw option string in the second element, OH display will use
these options to draw the graph/histogram.
- An example for the use of the draw option is given in the
example applications oh_root_provider and oh_graph_provider in the
examples/root_provider directory of the OH release.
- The bug that one could not send a command for a special
histogram or graph is fixed.