LHC++ 2.0.1 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: The 'commercial' version (requiring a license) contains in addition:

Release Notes

With respect to the  previous release 2.0.0. the main difference is the switch to a later version of HepODBMS (0.3.1.4) to fix a few problems with the HepDbApplication class. This version of HepODBMS does not rely on ObjectSpace anymore ( with the exception of Solaris, since compiler 4.2 does not provide a native STL library).
Another interesting feature is the self-detection of the platform by the startup scripts.


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.4
                          Gemini
                               1.0.1.0
                          HepFitting
                               1.0.1.0
                          CLHEP
                               1.5
                          LHCXX
                               2.0.1
                   specific
                        redhat61
                          HTL
                             1.1.1.1
                          HepODBMS
                              0.3.1.4
                           Gemini
                               1.0.1.0
                          HepFitting
                               1.0.1.0
                          CLHEP
                               1.5
                          2.0.1
                               bin
                               lib
                               include
                               etc
 
The directory /afs/cern.ch/sw/lhcxx/share/LHCXX/2.0.1/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

The Bourne family of UNIX shells includes sh, bash, ksh and zsh. The LHC++  environment includes a startup script users have to
source to get the environment set up. This script must be sourced from the .profile system script.
The startup script will define all the above mentioned environment variables unless they're already defined. The detection of the
plaform in use relies on the well known environment variable OS. If such variable is not defined and the user did not define
PLATF beforehand, the script will assume that the platform is Linux Red Hat 6.1.
To source the LHC++ script, add these lines to .profile :

# At Cern LHCXXTOP=/afs/cern.ch/sw/lhcxx
export LHCXXTOP=<where LHC++ is installed>
# Source the startup script. If using versions other than 2.0.1
# just substitute it with the new version.
. $LHCXXTOP/share/LHCXX/2.0.1/install/sharedstart.sh

Please do not define PLATF as the AFS variable @sys, since such variable can be ambigous.

csh flavor shells

The csh family of UNIX shells includes csh and tcsh. The LHC++  environment includes a startup script users have to
source to get the environment set up. This script must be sourced from the .login system script.
The startup script will define all the above mentioned environment variables unless they're already defined. The detection of the
plaform in use relies on the well known environment variable OS. If such variable is not defined and the user did not define
PLATF beforehand, the script will assume that the platform is Linux Red Hat 6.1.
To source the LHC++ script, add these lines to .login :

# At Cern LHCXXTOP=/afs/cern.ch/sw/lhcxx
setenv LHCXXTOP <where LHC++ is installed>
# Source the startup script. If using versions other than 2.0.1
# just substitute it with the new version.
source $LHCXXTOP/share/LHCXX/2.0.1/install/sharedstart.sh

Please do not define PLATF as the AFS variable @sys, since such variable can be ambigous.


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 kits

 The distribution kits contains now a documentation bundle which will be installed in:

$LHCXXTOP/share/LHCXX/2.0.1/doc

The bundle contains documentation for the following packages:

 The kits are available at:

$LHCXXTOP/export/<OS>/2.0.1  (full release)
$LHCXXTOP/export/<OS>/HEP2.0.1  (HEP components)