ROOT Analyzer/Compiling

From HallCWiki
Jump to: navigation, search

The new Hall C analyzer, hcana, based on the Hall A analyzer is available and may be retrieved with git, see ROOT Analyzer/Git.

The only prerequisite, beyond what should normally be installed on a system, is root, version 5.32 or later, but not version 6. On the JLab CUE systems, root may be setup by typing (or putting in your login script):

 setup root

Note: Previous instructions used a version of root in /group/hallc/root. As the default version of root in /apps is sufficient, this group disk version is no longer needed. References to it should be removed from your .login and .cshrc files.

On your own system, install root somehow.

Before compiling, go to the directory where the code is and setup the environment for hcana with

 source setup.csh

(Or "source" if you use bash.) This setup script can be called in your login script. Make sure that in addition to the Hall C code in the src directory, the Hall A code is in the podd directory. See Analyzer/Git if it is not.

The analyzer may be compiled with either the traditional "make" utility, or with SCons, a new utility which allows additional auto-configuration abilities. SCons is available on JLab machines. If you do not have SCons installed on the local machine that you are compiling on, go to to install the latest version.

To use "make", simply type:


To use SCons, type:


Additional SCons features :

To do the equivalent of "make clean", do:

 scons -c

To compile with debug capabilities, do:

 scons debug=1

To compile the standalone codes the are part of podd, do:

 scons standalone=1

This should build the Hall A libraries and the Hall C analyzer hcana.

See Analyzer/Running for instructions to run the analyzer.

Build Errors

Missing system header files

Error: cannot open file "gnu/stubs.h"  /usr/include/features.h:399:
Error: cannot open file "bits/wchar.h"  /usr/include/stdint.h:27:
Error: cannot open file "bits/wordsize.h"  /usr/include/stdint.h:28:
  • If you're on a Debian based multi-lib distribution (Ubununtu, ...), try this: sudo apt-get install g++-multilib