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.
- Lancaster snoing, preferred method at Lancaster on EPP Cluster
- Local snoing, preferred method within SNO+ for local installations
- yum Repository, for those using the yum package manager
- Manual Installation, advanced installation
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 yourPATH
, 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
orcat | 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.
Plugins:
- mccabe: 0.5.2
- pyflakes: 1.2.3
- pycodestyle: 2.0.0
- naming: 0.4.1