15-2-00
After working with the HTL installation for some time, it was established that Objectivity was required to facilitate the use of persistent histograms. The only realistic alternative available at this time is "Espresso", a program designed by RD45 as a fallback for Objectivity. It is currently only an 'alpha' version, and therefore is clearly not appropriate for our needs. Dino Ferrero (Bernardino.Ferrero.Merlino@cern.ch) and Tony Johnson are looking at the possibility of saving the histograms in XML format, but there is likely to be some delay before this is ready.
Once certain adjustments were implemented, they facilitated transient histograms that could then be sent to screen or saved as ASCII files. As such they can be used by PAW or Excel, but will ultimately be far too unwieldy to justify the use of HTL over programs such as HBOOK.
The examples directory, to be found in the path lhcxx/share/HTL/Sept99/HTL/examples, contains various illustrations of the functions offered by HTL. In order to run these, they should be copied to a local area, and adjusted as below.
It is necessary to source this file in order to run the examples. It can be found in lhcxx/share/HTL/Sept99 and should be copied to the newly created examples directory. The undermentioned lines should be removed from the beginning of the file:
#setenv LHCXXTOP /afs/cern.ch/sw/lhcxx setenv PLATF @sys setenv HEP_ODBMS_DIR $LHCXXTOP/specific/$PLATF/HepODBMS/new setenv HISTOODIR $LHCXXTOP/specific/$PLATF/HTL/pro set LIBDIR = $LHCXXTOP/specific/$PLATF/new
They should be replaced by the following:
setenv OS Linux setenv LHCXXTOP /lhcxx setenv PLATF i386_redhat51 setenv HEP_ODBMS_DIR $LHCXXTOP/specific/$PLATF/HepODBMS/Sept99 setenv HISTOODIR $LHCXXTOP/specific/$PLATF/HTL/Sept99 set LIBDIR = $LHCXXTOP/specific/$PLATF/new
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/lhcxx/specific/lnx/HTL/ Sept99/lib/ setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/lhcxx/specific/lnx/ HepODBMS/Sept99/lib/ setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/lhcxx/specific/lnx/ Objectivity/5.1.2/lib/ setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/lhcxx/specific/lnx/ ObjectSpace/new/ToolKit/lib/
The following addition should be made to the C Flags of all the GNUMakefiles of the examples you intend to use:
-I/lhcxx/specific/lnx/Objectivity/5.1.2/include
This is hardly an elegant and satisfactory solution, but it works.
The above adjustments enable some of the examples to compile and run. Once compiled, they create a file "Linux" and place the executable in that.
Fully adjusted versions of the working examples may be found on ppu1 in home/blackler/prog/examples/ If you want to run them, then simply copy examples to your local area and run the gmakes. They were run on a HEP group PC running RedHat 6.0 Linux
The other examples will not compile as they contain the line #include HTL/PHistograms.h, which requires Objectivity. Objectivity itself will not run under Red Hat 6.0 Linux.
The decision has been made to continue using HBOOK with its C++ interface for the present. Eventually support for HBOOK will cease, but given the current state of its proposed replacements, that does not appear likely to happen in the near future.
HEPFitting does not require HTL in order to function. Nor does it require Objectivity.
In order to get rid of Objectivity you need to derive your own fitting class from HEPFitting and override the method setHistogram() with your own version of it. In order to do this, you should study the existing code model your new code on it.
Once the histogram data has been copied to HEPFitting, it becomes independent of the particular implementation of the histogram class. Gemini is completely Objectivity independent.
(Alternatively, the existing method setDataPoints() could be used, but the previous approach is preferable.)