e1039 share offline - E1039-Collaboration/e1039-wiki GitHub Wiki

The E1039 share software is a set of external programs that are required for the E1039 core software. It is handled by the E1039 share package now as of 2019-Sep-19. The package is available at /e906/app/software/osg/software/e1039/share for offline analysis. This page describes how the offline share directory is managed.

Prerequisite

The share software requires that a set of system-level (i.e. YUM in Scientific Linux) packages are installed, as listed in 00_yum.sh of e1039-share. The required packages are included in the E1039 Docker image (e1039-docker) and thus the automatically-generated Singularity image on CVMFS. The share software has to be built in the Singularity environment.

Procedure

The offline share directory has to be updated by the offline software manager when e1039-docker or e1039-share is modified. Most of the update operations are automated by /e906/app/software/osg/software/e1039/script/build-osg-e1039-share.sh. You have to understand all the contents when executing it.

OLD INFO BELOW

We are trying to use some specific software version for minimum verification effort purpose. Some of them are already not quite up-to-date. We are going to upgrade some of them in the future after verification. Refer to this talk.

System requirement

The following setups are tested on Scientific Linux 6 (Scientific Linux Fermi release 6.3 (Ramsey))

In principle this should work on any 64-bit linux machine.

Packages usually installed from binary distributions

GCC, cmake, boost and git are usually managed by the system package manager(apt in Ubuntu, yum in SL). Build from source should be possible, but I haven't tested that yet.

GCC compilers

The C++ compiler should support C++11 standard. Refer this page.

We are currently using version 4.9.3

cmake

version 2.6 or later

boost

We are using version 1.41.0, later versions should be OK.

git

We are using version 2.15.1. Other versions should be OK.

Packages usually built from source

What we are doing is make a install area and call it $OFFLINE_MAIN. Most packages (dynamic libraries and headers) should be installed there, except for ROOT and GEANT4. For those two, just make sure the root-config and geant4-config executables could be found in $PATH, so that cmake can find them.

ROOT

Currently we are using version 5.34/36

Options needed:

./configure
--enable-gdml     # needed for importing/exporting gdml geometry
--enable-minuit2  # needed for kTracker

CLHEP

version clhep-2.2.0.4

Xerces-C++ home page

version 3.1

Xerces-C++

This package is needed by GEANT4 to import and export GDML files, so need to installed beforehand.

Xerces-C++ home page

version 3.1

GEANT4

Currently we are using version 10.1 patch3

The following options should be parsed with cmake:

-DGEANT4_INSTALL_DATA=ON
-D-DXERCESC_ROOT_DIR=<dir_to_XERCESC>
-DGEANT4_USE_OPENGL_X11=ON   # for event display
-DGEANT4_USE_GDML=ON         # for importing and exporting GDML file

Or copy and modify the command below

cmake -DCMAKE_INSTALL_PREFIX=<geant4-install-path> -DGEANT4_INSTALL_DATA=ON -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_USE_GDML=ON <geant4-source-path>

gsl

version 2.1

Eigen

version 3.2.7

Pythia 6

version 6.4.28

Pythia 8

version 8.2.35

HepMC

version 2.06.09

GenFit

GenFit cd7d737

Build and install e1039-core after all dependencies

Please refer to the README here.