Solgemc installation outside JLAB

From Hall A Wiki
Revision as of 15:20, 9 June 2011 by Rsholmes (Talk | contribs) (scons)

Jump to: navigation, search

by Rich Holmes

I have been working on getting the Geant4 simulation and related software up and running on a couple of non JLAB systems; here are some notes on what I did most recently. I may be omitting some steps here and I definitely have rearranged the order and left out some steps that I tried but that didn't seem to give useful results, so there are no guarantees this will work for anyone else, but it should cut down on confusion, or so I hope. This should be a better example to follow than my previous one (thanks to better understanding on my part, and probably some improvements in the solgemc package itself), but you can read about that too if you want.

The target system for now is one running Ubuntu 10.10 (32 bit i386).

Generally speaking what I tried to do was to set up a directory structure similar to what is installed using the gemc RPM; qt4 and geant4 already existed on this system but not necessarily configured as needed for gemc, so I put new installations into the new directory tree.

initial setup

  1. mkdir ~/jlab_software and cd there
  2. mkdir Linux_Ubuntu10.04-i686-gcc4.4.3

environment

  1. svn checkout https://phys12svn.jlab.org/repos/trunk/ce in ~/jlab_software
  2. Edit to set DEFAULT_JLAB_ROOT to ~/jlab_software. Also edit default software versions below that as needed.
  3. Depending on your Linux distribution you may need to edit ce/osreleast.pl in the obvious place to set an appropriate value for $release. For my Ubuntu 10.10 installation this was not necessary.
  4. source ~/jlab_software/ce/jlab.csh

scons

  1. Install scons using Ubuntu Software Center
  2. svn checkout https://clas12svn.jlab.org/repos/trunk/clas12/scons_scripts/ in ~/jlab_software
  3. Depending on your ROOT version you may need to change
    env.Append(LIBPATH = [ROOTSYS + '/lib/root'])
    to
    env.Append(LIBPATH = [ROOTSYS + '/lib'])
    in loadroot.py

Qt4

  1. Download sources from http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.3.tar.gz
  2. Install following https://gemc.jlab.org/gemc/Support/Entries/2011/1/22_Getting_and_Compiling_qt4.html into ~/jlab_software/Linux_Ubuntu10.04-i686-gcc4.4.3/qt

ROOT

  1. Install ROOT as usual from source into ~/jlab_software/Linux_Ubuntu10.04-i686-gcc4.4.3/root ; use configure --enable-qt --enable-qtgsi

CLHEP

  1. Install following https://gemc.jlab.org/gemc/Support/Entries/2011/1/22_Getting_and_Compiling_clhep.html into ~/jlab_software/Linux_Ubuntu10.04-i686-gcc4.4.3/clhep

geant4

  1. Do a manual install from sources into ~/jlab_software/Linux_Ubuntu10.04-i686-gcc4.4.3/geant4. Sources from http://geant4.web.cern.ch/geant4/support/download.shtml ; manual installation instructions at http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/InstallationGuide/html/ch02s03.html . The ce environment defines the needed environment variables for correct configuration; don't use ./Configure -build .

evio

  1. svn checkout https://clas12svn.jlab.org/repos/trunk/clas12/evio and put into ~/jlab_software/Linux_Ubuntu10.04-i686-gcc4.4.3/evio; cd there.
  2. ./configure
  3. make
  4. make install

mysql

  1. sudo apt-get install mysql-client libmysqlclient-dev

gemc

  1. Install following https://gemc.jlab.org/gemc/Support/Entries/2011/1/19_Getting_and_Compiling_gemc.html into ~/jlab_software/Linux_Ubuntu10.04-i686-gcc4.4.3/gemc and cd there.
  2. Edit ~/jlab_software/Linux_Ubuntu10.04-i686-gcc4.4.3/gemc/SConstruct: copy the env.Library line at the end, paste, and replace env.Library with env.SharedLibrary .
  3. scons
  4. Depending on your Linux installation you may need something like sudo chcon -t texrel_shlib_t ~/jlab_software/Linux_Ubuntu10.04-i686-gcc4.4.3/gemc/libgemc.so to avoid an error caused by selinux; this was not necessary for my Ubuntu 10.10 installation.

solgemc

  1. svn checkout https://jlabsvn.jlab.org/svnroot/solid/solgemc
  2. To test, set up mysql tunneling. In runnewbaf_solgemc.sh comment out first command and uncomment second, change -N to 10000, then run this. I get a memory allocation crash at the end but the output file is written.

banks

  1. svn checkout https://clas12svn.jlab.org/repos/trunk/clas12/banks into ~/jlab_software/Linux_Ubuntu10.04-i686-gcc4.4.3/banks
  2. unpack tarball sent by Seamus, copy src/example4.cc to banks/src/
  3. edit src/bank.cc to replace db.setUserName("clasuser"); with db.setUserName("soliduser"); db.setPassword("ilovesolid");
  4. scons

cteq

  1. download http://desy.de/~znagy/hep-programs/cteq-pdf/cteq-pdf-1.0.4.tar.gz and untar into ~/jlab_software/Linux_Ubuntu10.04-i686-gcc4.4.3/cteq-pdf/1.0.4 . cd there.
  2. ./configure --prefix=/usr/local default is to install under ~/, I chose to install in /usr/local
  3. make
  4. sudo make install

event generator

  1. svn co https://jlabsvn.jlab.org/svnroot/solid/evgen and put into ~/jlab_software/Linux_Ubuntu10.04-i686-gcc4.4.3/evgen; cd there.
  2. cd eicRate_20101102
  3. make

root2lund

  1. cd ~/jlab_software/Linux_Ubuntu10.04-i686-gcc4.4.3/evgen/root_to_lund
  2. make Note: I did not need any environment variable changes (using ROOT 5.25).