LHC++ Spring 2000 Release


Supported platforms
Dependencies
Content
Release notes
Cern installation
Some tips on how to use Objectivity/DB
Setting up the environment
To convert HBOOK files to Objectivity/DB
Examples
Distribution kit


Supported platforms


Dependencies


Content

The release includes the following packages:

Release Notes

Support for a single include/lib directory

The release includes individual include/lib directories which span the whole set of packages. This means that as long as users stick to the above mentioned package versions, only one shared library path item is required. Moreover a single include path could manage the inclusion of prefixed header files for all LHC++ components.
The directories are:
$LHCXXTOP/specific/$PLATF/LHCXX/2.0.0/lib
$LHCXXTOP/specific/$PLATF/LHCXX/2.0.0/include

New makefiles

This version of LHC++ comes with a set of makefiles which will eventually replace the HepODBMS makefiles used so far. The new makefiles are better structured, so users won't need to include unnecessary packages.
The makefiles are installed in :
$LHCXXTOP/specific/$PLATF/2.0.0/etc
A README file gives more information on how to use them.

New setup scripts

A pair of revised setup scripts (one for csh flavour, the other for sh flavour) are provided. The scripts allows user to setup the defult LHC++ environment, but still give the developer some flexibility to switch to non-default versions of individual packages.
The scripts are installed in:
$LHCXXTOP/share/LHCXX/2.0.0/install
and must be sourced from personal setup files such as .profile or .login
 

More information on package versions

The packages HTL, HepODBMS, Gemini and HepFitting now include a README_VERSIONS file which gives more information about the features of each installed version.

HTL

Gemini / HepFitting

HepODBMS

HepUtilities

CLHEP


Cern installation

As usual the release is installed in afs. The top directory (LHCXXTOP) is /afs/cern.ch/sw/lhcxx. Most packages have a shared installation (examples, checkout, scripts, doc etc.) and a specific installation with libraries and include files:

/afs/cern.ch/sw/lhcxx
                     share
                          HTL
                               1.1.1.1
                          HepODBMS
                               0.3.1.3
                          Gemini
                               1.0.1.0
                          HepFitting
                               1.0.1.0
                          CLHEP
                               1.5
                          LHCXX
                               2.0.0
                     specific
                        redhat61
                          HTL
                             1.1.1.1
                          HepODBMS
                              0.3.1.3
                           Gemini
                               1.0.1.0
                          HepFitting
                               1.0.1.0
                          CLHEP
                               1.5
                          2.0.0
                               bin
                               lib
                               include
                               etc
 
The directory /afs/cern.ch/sw/lhcxx/share/LHCXX/2.0.0/install contains two scripts which will set up the environment so that the following LHC++ environment variables are defined:
 

These are the variables all makefiles rely on. See next section for details on how to setup the environment. Be aware that using @sys to define the platform may have weird side effects on Linux.


Setting up the environment

Bourne flavor shells

To set all necessary environment variables, assuming you are working based on the May 2000 release on a CERN machine,  it suffices to include the following either manually or as part of your startup script for Bourne flavour shells (eg. .zshenv for zsh, .profile for bash etc.):

export LHCXXTOP=/afs/cern.ch/sw/lhcxx
case ${OS} in
Linux*)
        export PLATF=redhat61 ;;
Solaris*)
        export PLATF=sun4x_56 ;;
HP*)
        export PLATF=hp_ux102 ;;
esac
. $LHCXXTOP/share/LHCXX/2.0.0/install/sharedstart.sh

Please note that for the moment it is recommended to set the PLATF variable yourself (otherwise in sharedstart.sh it defaults to redhat61).

csh flavor shells

If your're using either csh or tcsh, include the following either manually or as part of your startup script (eg. .login or .tcshrc ):

setenv LHCXXTOP /afs/cern.ch/sw/lhcxx
switch ($OS)
case Solaris*:
    setenv PLATF sun4x_56
    breaksw
case HP*:
    setenv PLATF hp_ux102
    breaksw
case Linux*:
    setenv PLATF redhat61
    breaksw
endsw
source $LHCXXTOP/share/LHCXX/2.0.0/install/sharedstart.csh

Please note that for the moment it is recommended to set the PLATF variable yourself (otherwise in sharedstart.csh it defaults to redhat61).


Some tips on how to use Objectivity/DB

To use most of the LHC++ components you need to use Objectivity. For that you need to have a valid FDID (a number between 1 and 32000, see Objectivity/DB documentation for details ). Your OO_FD_BOOT environment variable specifies the default Objectivity/DB boot file location for the various tools (usually full path).

When you log on you must check whether the lock server is running. You can do that with the command: oolockmon. If it is NOT
running, you may start it with the command: oolockserver -noauto. If it is running and you want to kill it you issue the command ookillls .

To install your own user federated database you can do the following (Bourne flavour shells):

export MY_FDID=<a valid number in the range allocated to you>
export OO_FD_BOOT=<name of your choice; preferably full path>
$HEP_ODBMS_DIR/etc/getdb $LHCXXTOP/share/HTL/1.1.1.1/schema/HISTO $OO_FD_BOOT $MY_FDID

For csh flavour shells:

setenv MY_FDID <a valid number in the range allocated to you>
setenv OO_FD_BOOT <name of your choice; preferably full path>
$HEP_ODBMS_DIR/etc/getdb $LHCXXTOP/share/HTL/1.1.1.1/schema/HISTO $OO_FD_BOOT $MY_FDID

To delete your own user federated database :

oodeletefd $OO_FD_BOOT

To delete a database in your federation:

oodeletedb -db <dbname>

In case of machine/network crashes you may need to run oocleanup.
You may use ootoolmgr to browse the federation and the databases inside it.
You may use the -help option with any Objectivity oo- command (see complete list).
Extensive documentation (pointers to Technical Overview, Quick Start guide, C++ User Guide etc) is available from the
 Objectivity/DB page .
 


To convert HBOOK files to Objectivity/DB

Simple histogram files

You can use the command:

$LHCXXTOP/specific/$PLATF/HTL/1.1.1.1/bin/Hbook2Objy <HBOOK_filename>

Hbook2Objy converts histograms contained in an HBOOK file into persistent HTL histograms that can be saved in an Objectivity/DB database. Only one- and  two-dimensional histograms are converted, Ntuples are ignored. The database name is that of the original HBOOK file. The  Objectivity/DB database pointed at by the environment variable OO_FD_BOOT is taken.

e.g.

export MY_FDID=2060
export OO_FD_BOOT=/afs/cern.ch/user/a/atllhcxx/public/xkalman/db/TRT
$HEP_ODBMS_DIR/etc/getdb $LHCXXTOP/share/HTL/1.1.1.1/schema/HISTO $OO_FD_BOOT $MY_FDID
$LHCXXTOP/specific/$PLATF/HTL/1.1.1.1/bin/Hbook2Objy trtrun2128.hbook
 

Ntuple files

 
To convert HBOOK ntuples (either row- or column-wise) to Objectivity you can use the LHC++ conversion kit  available from
$LHCXXTOP/share/LHCXX/2.0.0/ntkit. For details see  Converting HBOOK ntuples to Objectivity .


Examples

Examples are provided for each package. Look for examples subdirectories in the  shared tree .


Distribution kit

The release is available in :