The installation notes for HEP [High Energy Physics] tools have been prepared for Ubuntu 16.04 LTS. There are some required packages before going through this page.
Recommended packages:
sudo apt install git dpkg-dev make g++ gcc binutils libx11-dev libxpm-dev libxft-dev libxext-dev \
automake subversion libreadline-dev ncurses-dev gfortran libssl-dev libpcre3-dev xlibmesa-glu-dev \
libglew1.5-dev libftgl-dev libmysqlclient-dev libfftw3-dev graphviz-dev libavahi-compat-libdnssd-dev \
libldap2-dev python-dev libxml2-dev libkrb5-dev libgsl0-dev ccache cmake cmake-curses-gui libmotif-common \
libmotif-dev freeglut3 freeglut3-dev libxmu-dev libxmuu-dev tcl-dev tk-dev libboost-dev idle python-imaging \
idle synaptic htop bzr doxygen nautilus-actions gksu libccfits-dev libcfitsio-dev libcfitsio-bin \
mc ntfs-config vim-gui-common astyle msttcorefonts inkscape unrar \
texlive-binaries texlive-base texlive-latex-base texlive-latex-recommended texlive-pictures \
texlive-generic-recommended texlive-pstricks texlive-extra-utils texlive-font-utils texlive-fonts-recommended \
texlive-fonts-recommended-doc texlive-lang-english texlive-latex-base-doc texlive-latex-extra texlive-latex-extra-doc \
texlive-latex-recommended-doc texlive-pictures-doc texlive-pstricks-doc texlive-science texlive-generic-extra texlive-xetex \
texlive-bibtex-extra biber \
qt5-default build-essential libfontconfig1 mesa-common-dev libglu1-mesa-dev libgif7 libgif-dev libtiff5-dev cvs \
gfal2 libgfal2-dev davix davix-dev libblas-common libblas-dev
Java installation:
sudo apt-add-repository ppa:webupd8team/java
sudo apt update
sudo apt install oracle-java8-installer
GCC-6 installation:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install gcc-6 g++-6 gfortran-6 gcc-6-locales g++-6-multilib \
gcc-6-multilib gfortran-6-multilib
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 20 \
--slave /usr/bin/g++ g++ /usr/bin/g++-6 \
--slave /usr/bin/gfortran gfortran /usr/bin/gfortran-6
sudo update-alternatives --config gcc
Update at last and clean up the disk:
sudo apt update && sudo upgrade
sudo apt autoremove && sudo apt autoclean
cd $HOME/softwares
mkdir hepmc ; cd hepmc
wget http://lcgapp.cern.ch/project/simu/HepMC/download/HepMC-2.06.09.tar.gz
tar zxvf HepMC-2.06.09.tar.gz
cd HepMC-2.06.09
./bootstrap
./configure --prefix=$PWD --with-momentum=GEV --with-length=CM
make -j2 install
cd $HOME/softwares
mkdir pythia ; cd pythia
wget http://home.thep.lu.se/~torbjorn/pythia8/pythia8223.tgz
tar zxvf pythia8223.tgz
cd pythia8223
./configure \
--prefix=$HOME/softwares/pythia/pythia8223 \
--with-hepmc=$HOME/softwares/hepmc/HepMC-2.06.09 \
--with-hepmcversion=2.06.09 \
--enable-shared
make -j2 install
cd $HOME/softwares
mkdir xerces ; cd xerces
wget http://apache.spinellicreations.com//xerces/c/3/sources/xerces-c-3.1.4.tar.gz
tar zxvf xerces-c-3.1.4.tar.gz
mv xerces-c-3.1.4 xerces-c-3.1.4-source
mkdir xerces-c-3.1.4
cd xerces-c-3.1.4-source
./configure --prefix=$HOME/softwares/xerces/xerces-c-3.1.4
make -j2 install
cd $HOME/softwares
mkdir clhep ; cd clhep
mkdir ~/softwares/clhep/clhep-2.3.3.2
wget http://proj-clhep.web.cern.ch/proj-clhep/DISTRIBUTION/tarFiles/clhep-2.3.3.2.tgz
tar zxvf clhep-2.3.3.2.tgz
cd 2.3.3.2 ; mkdir build ; cd build
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=../install ../CLHEP
make -j2 install
cd $HOME/softwares
mkdir root ; cd root
wget https://root.cern.ch/download/root_v6.08.08.source.tar.gz
tar zxvf root_v6.08.08.source.tar.gz
mv root-6.08.08 root-6.08.08.source
mkdir root-6.08.08
mkdir root-6.08.08.build
cd root-6.08.08.build
If Root already installed unset it by typing "unset ROOTSYS"
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=$HOME/softwares/root/root-6.08.08 \
-Dall="ON" -Dfortran=OFF -Ddavix="OFF" -Dr="OFF" \
-Dpythia8="OFF" -Dpythia6="OFF" -Dvc="OFF" \
-Dxrootd="OFF" -Dgeocad="ON" -Dsoversion="ON" \
-Dgdml=ON -Dbuiltin_ftgl="ON" ../root-6.08.08.source
make -j2 install
cd $HOME/softwares
mkdir geant4 ; cd geant4
wget http://geant4.cern.ch/support/source/geant4.10.02.p03.tar.gz
tar zxvf geant4.10.02.p03.tar.gz
cd geant4.10.02.p03
mkdir build ; cd build
With internal CLHEP support:
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=../install \
-DGEANT4_BUILD_MULTITHREADED=ON \
-DGEANT4_USE_GDML=ON \
-DXERCESC_ROOT_DIR=$HOME/softwares/xerces/xerces-c-3.1.4 \
-DGEANT4_USE_XM=ON \
-DGEANT4_USE_QT=ON \
-DGEANT4_USE_OPENGL=ON \
-DGEANT4_USE_OPENGL_X11=ON \
-DGEANT4_USE_SYSTEM_CLHEP=OFF \
..
With external CLHEP support:
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=../install-clhep \
-DGEANT4_BUILD_MULTITHREADED=ON \
-DGEANT4_USE_GDML=ON \
-DXERCESC_ROOT_DIR=$HOME/softwares/xerces/xerces-c-3.1.4 \
-DGEANT4_USE_XM=ON \
-DGEANT4_USE_QT=ON \
-DGEANT4_USE_OPENGL=ON \
-DGEANT4_USE_OPENGL_X11=ON \
-DGEANT4_USE_SYSTEM_CLHEP=ON \
-DCLHEP_ROOT_DIR=$HOME/softwares/clhep/2.3.3.2/install \
-DCLHEP_INCLUDE_DIR=$HOME/softwares/clhep/2.3.3.2/install/include \
-DCLHEP_LIBRARY=$HOME/softwares/clhep/2.3.3.2/install/lib/libCLHEP.so \
..
Now build and install:
make -j2 install
For Geant4 data libraries, do not forget to check the new versions from this link:
cd $HOME/softwares/geant4
mkdir data ; cd data
wget http://geant4.cern.ch/support/source/G4NDL.4.5.tar.gz
wget http://geant4.cern.ch/support/source/G4EMLOW.6.50.tar.gz
wget http://geant4.cern.ch/support/source/G4PhotonEvaporation.4.3.tar.gz
wget http://geant4.cern.ch/support/source/G4RadioactiveDecay.5.1.tar.gz
wget http://geant4.cern.ch/support/source/G4SAIDDATA.1.1.tar.gz
wget http://geant4.cern.ch/support/source/G4NEUTRONXS.1.4.tar.gz
wget http://geant4.cern.ch/support/source/G4ABLA.3.0.tar.gz
wget http://geant4.cern.ch/support/source/G4PII.1.3.tar.gz
wget http://geant4.cern.ch/support/source/RealSurface.1.0.tar.gz
wget http://geant4.cern.ch/support/source/G4NDL4.5.TS.tar.gz
wget http://geant4.cern.ch/support/source/G4ENSDFSTATE.2.1.tar.gz
for f in $(ls *tar.gz); do tar xzvf $f ; done
rm -fv *.tar.gz
Some aliases and links to Geant4:
cd geant4.10.02.p03/install
ln -s lib lib64
cd share/Geant4-10.2.3
ln -s $HOME/softwares/geant4/data data
cd $HOME/softwares
svn co http://svnweb.cern.ch/guest/clicsw/trunk/guinea-pig
cd guinea-pig
./configure --prefix=$PWD --enable-fftw3 --with-fftwdir=/usr
make -j2 install
cd $HOME/softwares
svn co http://svnweb.cern.ch/guest/clicsw/trunk/placet
cd placet
./configure --prefix=$PWD --enable-htgen
make -j2 install
cd $HOME/softwares
svn co http://svnweb.cern.ch/guest/clicsw/trunk/HTGEN
cd HTGEN
make libhtgen
make libhtplacet
cd $HOME/softwares
svn co http://svnweb.cern.ch/guest/madx/trunk/madX
cd madX
cmake \
-DCMAKE_INSTALL_PREFIX=$PWD \
..
make -j2 install
cd $HOME/softwares
wget http://www.lepp.cornell.edu/~cesrulib/downloads/tarballs/bmad_dist_2013_1108.tgz
tar zxvf bmad_dist_2013_1108.tgz
cd bmad
export BMAD_DIST_PATH=$PWD
ulimit -c 0
ulimit -s unlimited # Remove this line when using a Mac
ulimit -d unlimited
source util/dist_source_me
source util/dist_env_vars
source util/dist_build_production
export DIST_SETUP_QUIET=Yes
export DIST_BASE_DIR=BMAD_DIST_PATH
source $DIST_BASE_DIR/util/dist_source_me
cd $HOME/softwares
wget http://geant4.kek.jp/~tanaka/src/dawn_3_90b.tgz
tar zxvf dawn_3_90b.tgz
cd dawn_3_90b
make
sudo make install
cd $HOME/softwares
wget http://java.freehep.org/maven2/org/freehep/jas-assembly/3.0.5/jas-assembly-3.0.5-distribution.zip
unzip jas-assembly-3.0.5-distribution.zip
cd $HOME/softwares
wget http://cern.ch/hrivnac/Activities/Packages/GraXML-dist.tar.gz
tar zxvf GraXML-dist.tar.gz
Some aliases into your .bashrc or environment script;
alias heprep='java -Xmx1024M -jar $HOME/softwares/HepRApp.jar $*'
alias jas3='$HOME/softwares/jas-assembly-3.0.5/jas3' (set it into your bash or environment script)
alias graxml='$HEPSOFTWARE/GraXML/bin/GraXML.sh'
alias graxmlconverter='$HEPSOFTWARE/GraXML/bin/GraXMLConverter.sh'