Skip to content
Snippets Groups Projects
quickstart.mdx 2.26 KiB
Newer Older
  • Learn to ignore specific revisions
  • ---
    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 
    ```