pueoBuilder
Loading...
Searching...
No Matches
Setting Up the Environment

Step 1: install location and data location

software install directory

  • The environment variable $PUEO_UTIL_INSTALL_DIR sets the install location.
  • This could be inside the pueoBuilder/ directory.
  • In the previous section, we have cloned the pueoBuilder repository to the home directory.
  • Suppose we want an "in-source" installation, then we enter the following to the terminal
    export PUEO_UTIL_INSTALL_DIR=${HOME}/pueoBuilder/install
    Note
    You might also want to put the above in your ~/.bashrc, ~/.bash_profile, or equivalent to execute the command automatically next time you log in/start a new terminal session.
  • The install directory could be "out-of-source" as well.
    Attention
    That said, do try to have an install/ directory somewhere you can easily delete without affecting other system libraries.
    For instance, do not use /usr/local or /usr.
  • For example, you may set it to random/path/WeirdPueoInstallName.
  • In this case, the install directory is called WeirdPueoInstallName
  • The install directory does not need to know anything about the "source directory" pueoBuilder/.
  • In this sense, the install directory is "self-contained".

2026 flight data directory

  • The environment variable $PUEO_ROOT_DATA should point to the ROOT-ified real data.
    • On OSC, this is /fs/ess/PAS0654/PUEO/flight/rootified/.
    • On the UChicago server, this is /data/pueo/flight/rootified.
  • If you wish to work locally and don't want to download the data, you can access the data remotely via export PUEO_ROOT_DATA="https://pueo:REDACTED@pueo.uchicago.edu/data/pueo/flight/rootified"

    where REDACTED is the nominal password to the server, IYKYK. For details see pueoEvent pull request 15 or you can just bug Cosmin.

Deprecated

As of March 27, 2025, the following environment vairables are no longer required

  1. PUEO_BUILD_DIR
  2. NICEMC_BUILD
  3. NICEMC_SRC
  4. PUEOSIM_DATA
  5. PUEOSIM_SRC

See Building for the first time in the Old README for more information.

Step 2: dependencies

To compile the PUEO libraries and executables, you need:

Usually, you do not need to build (ie. compile) these prerequisites yourself, as they are already available as binaries; see the following subsections.

if you are on OSC: Cardinal

  • If you use the Ohio Supercomputer Center's Cardinal cluster, run
    source /fs/ess/PAS0654/software/PUEO_CERN_ROOT/env.sh
    or (if you do not have access to PAS0654)
    source /fs/ess/PAS2608/software/PUEO_CERN_ROOT/env.sh
    Warning
    Be sure that you are on Cardinal and not Pitzer.
  • You might also want to put the above command in your ~/.bashrc.
  • This sources OSC Cardinal's modules (gcc/12.3.0, cmake/3.25.2, and fftw/3.3.10)
  • As well, it allows you to use our own Python and ROOT installations by adding them to your $PATH.
    • We do this because Cardinal's ROOT does not have all the features currently required by PUEO.
    • You can type which root to verify that you are running our own ROOT
      You should see something like

      ‍/fs/ess/PAS0654/software/PUEO_CERN_ROOT/root-6.28.06_install/bin/root

    • If you wish to compile ROOT and Python yourself on OSC, see Optional: Cardinal.

if you are on Midway 3

If you are on the UChicago Midway Cluster (Midway 3):

source /project/avieregg/software/midway3-setup.sh
module load ROOT

This should have automatically loaded FFTW and gcc, but you'd still need to load cmake.

module load cmake/3.26
Todo
At the moment, cmake/3.30 provided by Midway does not work with our ROOT installation, although you can compile your own cmake on Midway.

other options

If you are not on either of the above clusters (e.g. if you are working locally):

  • There is a Dockerfile for you to work on macOS using Docker, see Optional: Docker.
  • You can also get the dependencies on Linux using your favorite package manager, see Example: Linux.
  • Alternatively, on Linux, you can also use Conda (Mamba) to manage the environment variable and the dependencies (This also works on the clusters).