DF JLab Software Install Instructions

From New IAC Wiki
Revision as of 21:56, 4 July 2018 by Friadavi (talk | contribs) (→‎CE)
Jump to navigation Jump to search

These instructions are for installing the software on Ubuntu 16.04. It is assumed that you start in a directory named JLabSoftware which contains the directories CED, COATJAVA, DB, and GEMC

CE

These instructions set up the common environment and GEMC with it. Skip if you don't intend on installing GEMC.

The CE is dependent on the following packages which can be easily installed by sudo apt-get install <package>:

  • g++
  • mysql-client
  • libmysqlclient-dev
  • libx11-dev
  • libxext-dev
  • libglu1-mesa-dev
  • libxt-dev
  • libxpm-dev
  • libxmu-dev
  • libxrender-dev
  • libexpat1-dev
  • libxft-dev
  • tcsh
  • cmake
  • git
  • libafterimage-dev
  • scons
  • gawk

Now, assuming you're in the JLabSoftware directory:

cd GEMC
mkdir 2.2
wget http://www.jlab.org/12gev_phys/packages/sources/ceInstall/ceInstall_2.2.tar.gz
tar -zxpf ceInstall_2.2.tar.gz --strip-components 1 -C 2.2

Go to the home directory and open .bashrc in your preferred text editor. Add the following to the bottom of the file:

export JLAB_ROOT=/path/to/JLabSoftware/GEMC
export JLAB_VERSION=2.2
source $JLAB_ROOT/$JLAB_VERSION/ce/jlab.sh

Now close the terminal and open a fresh one. You should see something like:

!! Attention:  BANKS  installation check /opt/jlab_software/2.2/Darwin_macosx10.13-x86_64-clang9.0.0/banks/1.4/bin  not found
!! Attention:  CCDB  installation check /opt/jlab_software/2.2/Darwin_macosx10.13-x86_64-clang9.0.0/ccdb/ccdb-1.06.02/lib  not found
!! Attention:  CLHEP  installation check /opt/jlab_software/2.2/Darwin_macosx10.13-x86_64-clang9.0.0/clhep/2.3.4.5/lib  not found
!! Attention:  EVIO  installation check /opt/jlab_software/2.2/Darwin_macosx10.13-x86_64-clang9.0.0/evio/5.1/bin  not found
!! Attention:  GEANT4  installation check /opt/jlab_software/2.2/Darwin_macosx10.13-x86_64-clang9.0.0/geant4/4.10.03.p02/bin  not found
!! Attention:  GEMC  installation check /opt/jlab_software/2.2/Darwin_macosx10.13-x86_64-clang9.0.0/gemc/2.7/gemc  not found
!! Attention:  JANA  installation check /opt/jlab_software/2.2/Darwin_macosx10.13-x86_64-clang9.0.0/jana/0.7.7p1/bin/jana  not found
!! Attention:  MLIBRARY  installation check /opt/jlab_software/2.2/Darwin_macosx10.13-x86_64-clang9.0.0/mlibrary/1.2/lib  not found
!! Attention:  MYSQL  installation check /opt/jlab_software/2.2/Darwin_macosx10.13-x86_64-clang9.0.0/mysql/lib  not found
!! Attention:  QT    installation check /opt/jlab_software/2.2/Darwin_macosx10.13-x86_64-clang9.0.0/qt/5.9.1/5.9.1/clang_64/lib  not found
!! Attention:  ROOT  installation check /opt/jlab_software/2.2/Darwin_macosx10.13-x86_64-clang9.0.0/root/6.12.06/bin/root-config  not found
!! Attention:  SCONS  installation check /opt/jlab_software/2.2/scons_bm/1.6/site_tools  not found
!! Attention:  XERCESC  installation check /opt/jlab_software/2.2/Darwin_macosx10.13-x86_64-clang9.0.0/xercesc/3.2.0/lib  not found

Now cd $JLAB_ROOT/2.2/ce and open settings.xcconfig in a text editor. Change the geant4 version to whatever is the latest version from here. Do the same with the file versions.env.

You should now be able to run the go_<package> scripts in $JLAB_VERSION/install. It is recommended that you open the go_all script and manually run each individual script in the order found there. Watch for further instructions in the terminal output. Remember to also run ./$JLAB_ROOT/$JLAB_VERSION/install/qt-opensource-linux-x64-<version number>.run

The common environment should now be installed. Ensure that the message that displays when opening a new terminal reflects that.

Should you experience any segfault errors while attempting to build, ensure that awk is set to gawk:

sudo update-alternatives --config awk

GEMC

These instructions setup GEMC and the clas12Tags repository so that you may easily start simulating clas12 runs.

If you haven't already, first complete the CE install above, then:

cd $JLAB_ROOT
git clone https://github.com/gemc/clas12Tags
cd clas12Tags/4a.2.3/source/physics

Here you are going to open PhysicsList.cc and uncomment the line auto theParticleIterator = GetParticleIterator();. Then:

cd ../..
scons -j4 OPT=1

This should result in an exectuable file simply called gemc in the directory 4a.2.3/source. When running GEMC, you will be wanting to run this file. So, either always use the full path to target this executable, or set the environmental variable $GEMC to the absolute path to it.

COATJAVA

All of these assume that you start in the JLabSoftware/COATJAVA directory.

Release Versions

Download the desired version from here.

cp ~/Downloads/clas12-offline-software-<version>.tar.gz .
tar -xzf clas12-offline-software-<version>.tar.gz
cd clas12-offline-software-<version>
bash build-coatjava.sh

The tools should be in the directory ./coatjava/bin

Note: While this appears to build correctly, it would seem that I must use bash instead of ./ to run any of the executables in bin.

Official Github Version

mkdir clas12-offline-software-official
git clone -b master https://github.com/JeffersonLab/clas12-offline-software.git clas12-offline-software-official
cd clas12-offlone-software-official
./build-coatjava.sh

Forking Your Own Version

First, create a Github account if you don't already have one. Then go to JeffersonLab/clas12-offline-software and hit the fork button. You should now have a repository at github.com/<your-username>/clas12-offline-software.

git clone -b master https://github.com/<your-username>/clas12-offline-software
cd clas-12-offline-software
./build-coatjava.sh

The upstream repository (JLab's) can be added as follows:

git remote add upstream https://github.com/JeffersonLab/clas12-offline-software.git

To update your development build with the Jlab updates:

git fetch upstream
git checkout master
git merge upstream/master

And to push your local repository to your github repo:

git push

When you want to push your changes to JLab's repo, you need to go to your github page and push the "pull request" button.

Netbeans Setup Instructions

Can be found here.

CED

Starting from the directory JLabSoftware:

cd CED
wget https://userweb.jlab.org/~heddle/ced/builds/ced.1.003d.tar.gz
tar -xzf ced.1.003d.tar.gz
cd cedbuild
sudo chmod 764 ced.sh

You should now be able to run CED by using ./ced.sh

Note: For some reason I don't appear to have the full functionality I would expect (e.g. magnification doesn't seem to work).

DB

The purpose of setting up a local database is so that you may run simulations without having to rely on JLab's database. This gives you a constant setup that won't be changed without your knowledge.

Procuring the Database

To get the official versions, you must have a JLab account and have access to the clas12 software. Assuming that that isn't the case, copies of several iterations of the database can be found on lds3. The instructions for getting the database onto a local machine are as follows:

cd /path/to/JLabSoftware/DB
ssh daq@daq1.physics.isu.edu
scp lds@lds3.physics.isu.edu:/home/lds/src/CLAS/DB/clas12.sqlite.<date> .
exit
scp daq@daq1.physics.isu.edu:/home/daq/clas12.sqlite.<date> .

Setup for Running Via Command Line

The environmental variables CCDB_CONNECTION and CCDB_DATABASE must be defined and must point to the right spot. Before running a program which relies on the database (such as COATJAVA or GEMC), you must export (or setenv or what-have-you) the following in some fashion:

CCDB_CONNECTION=sqlite:///path/to/clas12.sqlite.<date>
CCDB_DATABASE=/path/to/clas12.sqlite.<date>

Note the sqlite:///chupa is a relative path and sqlite:////thingy is an absolute path.

Setup for Running Via NetBeans

Assuming that your IDE is setup such that the working directory is /path/to/JLabSoftware/COATJAVA/clas12-offline-software:

  • In the projects tab, right click on "clas12detector-dc" -> Properties
    • In the Actions section:
      • Add the environmental variable CCDB_CONNECTION=sqlite:///../../DB/clas12.sqlite.<date>
      • Add the environmental variable CCDB_DATABASE=../../DB/clas12.sqlite.<date>

Main Page

User:Friadavi