Skip to content

3. Introduction to the e1039 Software

Yongbin Feng edited this page Jun 28, 2021 · 2 revisions

The e1039-Sofware follows the Fun4All ROOT-based framework. This framework was developed by the PHENIX experiment and is current used (and a bit modernized) by the SPhenix experiment.

Here are some useful references:

The e1039-Software has two repositories

  • e1039-core, that contains the core libraries (where you would modify tracking modules, clustering, etc.)
  • e1039-analysis, that contains analysis modules (where you would write modules to analysis signal, background - offline reconstruction).

The official e1039 repositories are here:

and a class reference (in construction) is available in:

e1039-core

Fun4all runs in a single ROOT C++ macro (its name convention is Fun4XX_YY.C). It is capable of:

  • reading input files (we currently use the HepMC to read our signals, SpinQuest data is stored in a .DST format)
  • writing output files (usually a .root TTree or a .DST file)
  • managing the Node Tree - that storages data objects
  • calling the analysis/reconstruction modules
  • making snapshots at any stage of the reconstruction

e1039-analysis

Analysis modules can be modified and constructed for various purposes. For now we have built a simple module to write a simple TTree with analysis variables, that you can find here: SimAna.cc.

Getting started (in spinquest cluster)

Installing e1039-core

For e0139-core you can install and build your own repository (we recommend you clone the repo and make a git branch if you are going to make a modifications):

# make directory in your home dir
cd 
mkdir mye1039

# clone repo
git clone [email protected]:DarkQuest-FNAL/e1039-core.git

# build
cd /path/to/directory_where_you_download_e1039-core
./script/setup-install.sh auto
source ../core-inst/this-e1039.sh
./build.sh

or, you can work with the installed repositories in Yongbin or Cristina's spaces, if you do not want to install your own.

Setting up e1039-core

Once e1039-core is installed you can call the setup of the installation by:

source /e906/app/software/osg/software/e1039/this-e1039.sh

or by calling your own installation, for example:

export MY_E1039=/seaquest/users/username/mye1039/e1039-core/this-e1039.sh
source $MY_E1039

Yongbin's installation is located in /seaquest/users/yfeng/mye1039/e1039-core/this-e1039.sh and can be used as default for DarkQuest use.

Sometimes we will need additional directories to be linked so that we can run our modules. In particular, A' simulated datasets can be find here (note: find a better shared location):

export DIR_CMANTILL=/seaquest/users/cmantill/DarkQuest/e1039-analysis/SimHits

We have summarized these commands in setup.sh and setup_mye1039.sh.

Compiling analysis modules

To compile the analysis code (living in for example in an src/ directory that includes the source and header) you can do the following:

mkdir work
mkdir install
cd work
cmake ../src/ -DCMAKE_INSTALL_PREFIX=../install
make
make install
cd ../

This needs a CMakeLists.txt to live inside the directory, for example check out this CMakeLists.txt

Later, to recompile, if you have made changes:

cd work
make clean
make
make install