SNO+ Software

If you have any issues setting up the environment, and/or installing the software, please contact Matt Parnell.

Installing Software

There are many ways to install and use the SNO+ software.

The RAT Companion does cover installation of RAT through a few methods; however it is a little dated, and this guide goes further.

You should be in the snop group on the EPP Cluster. Being in the SNO+ group will give you access to the data and software installed at Lancaster, as well as group privileges on other Lancaster collaborators files.

If you are only using RAT, that should be sufficient. If you are required to make changes to the RAT source code, refer to Local RAT Development.

If you are a Mac OS X user, please refer to Software for Mac.

Installed Software at Lancaster

Software for use with SNO+ are installed in /snop/software/bin. This software is intended to be used within a SNO+ environment, and could give rise to unexpected issues if you have added it to your PATH when not in a SNO+ environment.

If you would like to use the SNO+ software at Lancaster, it is suggested that you use a SNO+ environment described in Lancaster snoing.

  • Lancaster snoing

    SNO+ uses snoing to manage multiple versions of it’s software. To know what RAT versions are installed, ensure /snop/software/init is in your PATH, and run:

    $ source snoplus-env -l

    Each version of RAT may use a different ROOT and Geant4 version, internally managed.

  • GNU Stow 2.2.2

    A symlink farm manager. Used to aid in the management and configuration the SNO+ Lancaster system.

  • cmark 0.26.1

    An implementation of CommonMark, an unambiguous Markdown specification. Parses Markdown formatted documents into HTML, groff man, CommonMark XML, LaTeX, or CommonMark.

    Used to generate the documentation for SNO+ Lancaster.

  • GNU troff 1.22.3

    A typesetting system that reads plain text mixed with formatting commands and produces formatted output.

    Used to generate the man pages for SNO+ Lancaster.

  • man-db 2.7.5

    An implementation of the standard Unix documentation system accessed using the man command. It uses a Berkeley DB database in place of the traditional flat-text whatis database.

    Provides a more up-to-date interpetor for man pages.

  • GNU Parallel 2.19

    A shell tool for executing jobs in parallel using one or more computers. It can often be used a parallel substitution for xargs or cat | bash.

  • GCC 4.9.3

    The GNU Compiler Collection. Newer compilers are needed than the ones included on the cluster. Compiled with C, C++, and fortran enabled.

  • CMake 3.6.1

    Family of tools for building, testing, and packaging software. A newer version of CMake was needed, than provided by the cluster.

  • Cppcheck 1.75

    A static analysis tool for C/C++ code. Suggested by the coding standards SNO+-doc-1018.

  • Git 2.10.0

    SNO+ uses Git to maintain it’s codebase; Git is used heavily for development, and lightly in software acquisition. Git 1.7.1 is currently on the cluster, though it suffices most needs, Git 2.10.0 has many benefits and features; improved automation, usability, and error reporting were reasons chosen to use this over cluster version.

  • Tig 2.2

    For those who are uncomfortable with using Git’s command-line interface, Tig provides a nice text-mode interface.

    It is installed as it makes viewing the commit history simple (much like git log --graph on newer Git versions), and commit interaction.

  • Python 2.7.11

    Although SNO+ aims to support Python 2.6.6 (which is installed on the cluster), a virtual environment would have been needed to control modules (via pip), which requires modules not on the cluster.

    This version is backwards compatible with Python 2.6.6 code, and itself contains features backported from Python 3, which can be taken advantage in non-‘SNO+ Production’ Python scripts.

    Modules installed:

    • configparser (3.5.0)
    • cycler (0.10.0)
    • enum34 (1.1.6)
    • flake8 (3.0.4)
    • matplotlib (1.5.2)
    • mccabe (0.5.2)
    • numpy (1.11.1)
    • pep8-naming (0.4.1)
    • pip (8.1.2)
    • pycodestyle (2.0.0)
    • pyflakes (1.2.3)
    • pyparsing (2.1.8)
    • python-dateutil (2.5.3)
    • pytz (2016.6.1)
    • root-numpy (4.5.2)
    • rootpy (0.8.3)
    • scipy (0.18.0)
    • setuptools (20.10.1)
    • six (1.10.0)
  • Flake8 3.0.4

    A tool for style guide enforcement for Python. Generated for use with the version of Python for SNO+ Lancaster. SNO+ Python code is intended to be PEP8 compliant.


    • mccabe: 0.5.2
    • pyflakes: 1.2.3
    • pycodestyle: 2.0.0
    • naming: 0.4.1