--- 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. ## Development within singularity container 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 ```