Deprecated: Setting Up the GlueX Environment

From GlueXWiki
Revision as of 11:26, 22 July 2015 by Pmatt (Talk | contribs) (Optional, Additional, User-specific Environment Variables)

Jump to: navigation, search

We have two methods for setting up the environment for GlueX software. They are complementary; depending on what you want to do one will be more appropriate than the other. Let's call them "setenv" and "build_scripts".

setenv

For every complete build of sim-recon, a setenv.csh and a setenv.sh file is produced. Sourcing the appropriate file will reproduce the GlueX-related environment that was used to build that version of sim-recon exactly. Find the files under the BMS_OSNAME directory (directory that looks like Linux_RHEL7-x86_64-gcc4.8.3 for example, pick the one appropriate for your platform) of HALLD_HOME.

If you need custom settings of the environment, make a copy of the appropriate file and edit it. The file is nicely formatted and the changes you need are not hard to figure out.

  • Advantages: nothing to change, guaranteed consistency
  • Disadvantages: customization by direct editing of script, need pre-existing successful build to start

build_scripts

There is a set of scripts to help you set-up your environment from scratch. Even if one is not starting from scratch, they can be used to set-up pre-existing sets of software. At JLab they are in /group/halld/Software/scripts/build_scripts . They can be checked out at https://halldsvn.jlab.org/repos/trunk/scripts/build_scripts.

  • Advantages: do not need a pre-existing build, can customize configuration without re-writing scripts.
  • Disadvantages: more complicated, consistency of packages not guaranteed

Default build at JLab

Sourcing the script gluex_env_jlab.(c)sh will set-up the default environment at JLab.

Nightly build at JLab

Source the file gluex_env_nightly.(c)sh with a date argument in YYYY-MM-DD format, e. g.

source $BUILD_SCRIPTS/gluex_env_nightly.csh 2015-07-15

Using a version.xml

If you are using the standard GlueX Version Managment System (GVMS) directory structure, you can use a version-specifying xml file to set up your environment. Version xml files are kept in /group/halld/www/halldweb/html/dist.

  1. Define GLUEX_TOP and BUILD_SCRIPTS
  2. Identify a version.xml, e. g., /path/to/version.xml
  3. source $BUILD_SCRIPTS/gluex_env_version.(c)sh /path/to/version.xml

At JLab, there is a GLUEX_TOP for each supported platform in /group/halld/Software/builds.

Using version.xml and a custom build of sim-recon

  1. Define GLUEX_TOP, BUILD_SCRIPTS
  2. Identify a version.xml, /path/to/version.xml
  3. eval `$BUILD_SCRIPTS/version.pl /path/to/version.xml`
  4. setenv HALLD_HOME /path/to/custom/sim-recon (or export HALLD_HOME=/path/to/custom/sim-recon)
  5. source $BUILD_SCRIPTS/gluex_env.(c)sh

Optional, Additional, User-specific Environment Variables

There are several optional, additional, user-specific environment variables that can be set:

  • $JANA_RESOURCE_DIR: Set this variable to any directory path. If defined, this directory is where JANA will download external resources needed for reconstruction, such as the magnetic field map.
  • $HALLD_MY: Set this variable to any directory path. This folder is then intended to contain your personal code, such as your analysis plugins. If this variable is defined prior to sourcing the environment, the appropriate subfolders will be added to $PATH, $LD_LIBRARY_PATH, and $JANA_PLUGIN_PATH, so that you can use your plugins/etc. within JANA.
  • If you choose to use an SQLite file instead of the main CCDB database (recommended for analyses), be sure to change the following environment variables:
setenv CCDB_CONNECTION sqlite:///${SQLITE_PATH}
setenv JANA_CALIB_URL sqlite:///${SQLITE_PATH}

where ${SQLITE_PATH} is the path to your SQLite file.