Skip to content
Snippets Groups Projects
quickstart.mdx 2.36 KiB
Newer Older
---
title: "Quick-start Guide"
---


## Prerequisites

The programmer is assumed to be familiar with
- working in the terminal over ssh
- `git` and gitlab (https://eicweb.phy.anl.gov)
- using `cmake`
- C++, python, and shell scripting


Create an account on https://eicweb.phy.anl.gov and configure your account. 

This tutorial requires that [singularity](singularity) is installed 
on the system. We also assumes [modulefiles](modulefiles) can be 
used but are not required.

## The EIC Software Container

Installing the [eic_container](quickstart/eic_container) is done with the 
following:

```shell
git clone https://eicweb.phy.anl.gov/containers/eic_container.git
mkdir eic_container/build 
cd eic_container/build 
cmake ../. -DCMAKE_INSTALL_PREFIX=$HOME/stow/eic_container_1.0.4
make -j4 install
```

Inspect the list of files installed, noting the locations of modulefiles and 
wrapper scripts.


## Using the container

```bash
module use $HOME/etc/modulefiles
module load eic_container
```

[See modulefiles](modulefiles) for more info.

[Also see environment](environment) for more info.


## Development within singularity container

[See here](singularity) for more info on singularity.

The following helper runs bash inside `eic_container`
```bash
module load eic_container
container_dev
```

For projects that you want to build but which are also inside of the container, 
you must make sure to set `$PATH` and `$LD_LIBRARY_PATH` to point to the 
development build's installation prefix first. Here we assume your development 
builds are being installed into `$HOME/stow/development`

A simple setup script will make sure things are in order
```shell title=setup.sh
module load eic_container
export PATH=$HOME/stow/development/bin:$PATH
export LD_LIBRARY_PATH=$HOME/stow/development/lib:$HOME/stow/development/lib64:$LD_LIBRARY_PATH
export ROOT_INCLUDE_PATH=$HOME/stow/development/include:$ROOT_INCLUDE_PATH
## Detector Library

The 

```bash
source setup.sh
module load eic_container
git clone https://eicweb.phy.anl.gov/EIC/NPDet.git
cd NPDet/examples
print_materials gem_tracker_disc.xml 0 0 0 100 0 100 
```

The last line dumps the materials encounter along a line defined by two points.

```bash
cd ..
mkdir NPDet/build && cd NPDet/build
cmake ../. -DCMAKE_INSTALL_PREFIX=$HOME/stow/development 
make -j4 install
cd ../examples
print_materials gem_tracker_disc.xml 0 0 0 100 0 100 
```