LArSoft at Nevis
The Nevis copy of the LArSoft installation is currently in
/a/share/westside/seligman/microboone/LArSoft
.
As of 21-Jan-2014, the following Fermilab LArSoft
releases
are maintained at Nevis:
development
S2014.01.21 - Freeze before switch to mrb+git
S2013.12.17 - ART 1.08.10
S2013.10.21 - new optical algorithms; frozen before introduction of Pandora
S2013.06.25 - bug fixes for BezierTracks and SeedFinder; fixed release for MC challenge
S2013.06.17 - put nutools into external package
S2013.05.12 - separation of objects and algorithms
S2013.04.21 - frozen before new ART release
S2013.03.11 - additions for 10kT and 35kT detectors
S2013.01.16 - frozen before LBNE geometry changes
S2012.12.17 - frozen for MicroBooNE
S2012.10.02 - switch to C++11; frozen for ArgoNeuT
S2012.09.18 - improvements to event displays and many other fixes; the "hand-scan" release
S2012.05.09 - improvements to reconstruction & geometry
The list of available releases is a subset of those in the official LArSoft repository at
Fermilab
. Requests for updates, compilations, and additional releases can be sent to
seligman
of
nevis.columbia.edu
Where can one run LArSoft
Since all the machines on the Nevis
Linux Cluster are linked together via
automount, the software should run on any machine on the cluster, whether or not that particular machine is owned by the Neutrino group. You do
not have to login to
westside
.
Setting up the Environment
The simplest way to initialize the variables to run LArSoft at Nevis is to execute the following command:
# sh-style shell, such as bash or zsh
source /a/share/westside/seligman/microboone/LArSoft/setup/setup_larsoft_nevis.sh
# csh-style shell, such as tcsh
source /a/share/westside/seligman/microboone/LArSoft/setup/setup_larsoft_nevis.csh
This will set your $PATH and $LD_LIBRARY_PATH variables to refer to the various packages
required
by LArSoft. After you execute this command, you can
develop code
and
run jobs
.
Note that this setup command only works properly once per login session. If you want to set things up differently (e.g., switch to a different release, turn on debug mode) then the simplest way to do it is to log out from your terminal session, log in again, and enter the new setup command.
Selecting a release
The above command will set up the development version of LArSoft. If you want to develop or revise code in LArSoft, this is the release you want.
If you just want to use LArSoft to run jobs, generate
event displays
, or
analyze events
, then you probably want to use one of the frozen releases. Use the
-r
option to select a release. For example:
source /a/share/westside/seligman/microboone/LArSoft/setup/setup_larsoft_nevis.sh -r S2013.10.21
Debugging
As of Dec-2013, the default is to compile all the programs with the debugger, so you can use tools to
debug
your code. If you want to set this explicitly (in case the default version changes), use the
-q debug
option; e.g.,
source /a/share/westside/seligman/microboone/LArSoft/setup/setup_larsoft_nevis.sh -q debug
This will use program libraries compiled with the debugger option turned on. Then tools such as
gdb
and
valgrind
will show line numbers and can display lines of source code.
- If you're working with your own code in a test release, you'll have to re-compile it to include the debugging information in your own programs. The commands
make clean; make
should do it.
- Ignore the section on TotalView in the LArSoft wiki debugging
page; we don't have it installed at Nevis. We do have ddd
installed, but you're probably better off using the non-graphical gdb
instead.
- You can run the debugger on a fixed release:
source /a/share/westside/seligman/microboone/LArSoft/setup/setup_larsoft_nevis.sh -q debug -r S2013.10.21
Production runs
If you're confident your code works, you probably want to compile your programs with compiler optimization turned on. To do this, use the
prof
qualifier; e.g.,
source /a/share/westside/seligman/microboone/LArSoft/setup/setup_larsoft_nevis.sh -q prof
Always do a test run of your program with
prof
before submitting a large set of batch jobs. Occasionally there are issues that show up under optimization that don't show up in the debug versions.
Make life easier
You may want to put an alias to the appropriate set-up commands in your .myprofile or .mycshrc file; for example, if you look in ~seligman/.myprofile, you'll see the following:
export MYDEV=/a/share/westside/seligman/microboone/mydev
alias MBD="source /a/share/westside/seligman/microboone/LArSoft/setup/setup_larsoft_nevis.sh; srt_setup SRT_LOCAL=\${MYDEV}; cd \${MYDEV}"
${MYDEV}
is the test-release directory
WilliamSeligman created as described near the end of the
editing code
page; you would use a directory of your own instead.
The MicroBooNE repository
There's a copy of the
MicroBooNE offline repository
at
/a/share/westside/seligman/microboone/ubooneoffline
. It will be kept updated with any changes to the repository at FNAL.
At present (June-2013), there are no separate LArSoft-like packages in this repository that are intended to be extensions or revisions to LArSoft, and therefore no build scripts. Therefore, I'm not building and updating libraries in the same way I do the Nevis LArSoft repository.
The
MicroBooNE UPS products
(e.g., the ability to type
setup ubtools
) has not been implemented at Nevis yet, in part because the MicroBooNE UPS products are very FNAL-specific.
Nevis notes
When you set up LArSoft, the Nevis-specific
setup command is disabled. The LArSoft software distribution contains its own copies of
ROOT
and
Geant4
, so there's no need to set-up the Nevis versions. In fact, to make sure the Nevis versions don't conflict with the LArSoft versions, make sure there are no
setup
commands in any of your
shell initialization files like
~/.myprofile
, especially if you're switching to LArSoft from some other project or from working on the
ROOT tutorial
.
The LArSoft environment also affects some standard Linux features, such as the default rules for
make
and the
yum
command. If you are doing any work that does not involve LArSoft directly, you're advised
not to set up the LArSoft environment as described above. </verbatim>