# Difference between revisions of "DF JLab Software Install Instructions"

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:

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

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-offline-software-official
./build-coatjava.sh

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.

cd clas-12-offline-software
./build-coatjava.sh

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

git fetch upstream
git checkout master
git merge upstream/master

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.<version number>.tar.gz
tar -xzf ced.<version number>.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>