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
Xerces-C++ home page
Xerces-C++
This package is needed by GEANT4 to import and export GDML files, so need to installed beforehand.
Xerces-C++ home page
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
Eigen
Pythia 6
Pythia 8
HepMC
GenFit
e1039-core after all dependencies
Build and installPlease refer to the README here.