Installing the DST Tools

Preliminaries

You must have these build tools available on the system.

  • GCC
    • version >= 4.8 (need C++11 support)
  • CMake
    • version >= 2.8

These package dependencies must be installed as well (details covered below):

  • LCIO
    • trunk or the last release should work fine
  • ROOT
    • tested with 5.34/11 but any version greater than this should work

If you want to build the documentation then this is also required.

Linux Build Environment

SLAC

The default, shared Linux environment at SLAC can not be used as the version of gcc is too old.

A more recent environment can be setup and checked as follows.

Setup SLAC Build Environment
ssh rhel6-64
scl enable devtoolset-2 bash
gcc --version

You should see the following gcc version now.

(GCC) 4.8.2 20140120 (Red Hat 4.8.2-15) Copyright (C) 2013 Free Software

This version of the compiler should support the C++11 standard.

JLAB

An alternate compiler also needs to be setup to override the default one.

Setup JLAB Environment
export PATH=/apps/gcc/4.8.2/bin/:$PATH
gcc --version

You should see the following GCC version.

gcc (GCC) 4.8.2

This version should support C++11.

Installing CMake

It is likely your system already has a recent enough version of CMake installed on it.

You can check for this from the shell.

which cmake
cmake 

It will print something like this if CMake is installed.

$ which cmake
/usr/bin/cmake

$ cmake
cmake version 2.8.12.2
[...]

If CMake is not found or the version is too old, then follow the Installing CMake guide to build it.

Installing LCIO

cd workdir
svn co svn://svn.freehep.org/lcio/trunk lcio-trunk
cd lcio-trunk
mkdir build
cd build
cmake -DINSTALL_DOC=OFF -DINSTALL_JAR=OFF ..
make install
cd ..
export LCIO=$PWD

Installing ROOT

Follow the instructions at the ROOT website to install it. 

Then you will want to source the setup script which will set the ROOTSYS variable.

. bin/thisroot.sh

This should set ROOTSYS to point at your ROOT installation.

Getting the Source Code

Cloning the Repository from Github

The project is stored in a public github repository. The code can be "cloned" i.e. copied to a users local machine by issuing the following commands from a terminal.

cd /path/to/workdir
git clone https://github.com/omar-moreno/hps-dst.git

A github account is not required to clone the source code.

Getting a Tagged Release

You may also want to use a tagged release.  For instance, the v0.7 tag can be downloaded from the following URL.

https://github.com/omar-moreno/hps-dst/releases/tag/v0.7

Or you can execute these shell commands.

Download HPS DST Release
wget https://github.com/omar-moreno/hps-dst/archive/v0.7.tar.gz
tar zxvf v0.7.tar.gz
cd hps-dst-0.7

Now you may build the project locally in the usual way.

Building the Project

Before the project is built, the following environment variables need to be set.

ROOTSYS=/path/to/root
GBL_DIR=/path/to/gbl/cpp
LCIO=/path/to/lcio

Then the project should be built as follows.

cd hps-dst/ 
mkdir build; cd build
cmake ../
make

This will create the binaries in the build/bin directory along with the shared library HpsEvent.so in the build/lib directory, which contains the ROOT dictionary and HPS Event API.  

The API documentation can be generated as follows: 

make doc

This will generate both LaTeX and html documentation in the directory hps-dst/doc.

  • No labels