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:

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

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/

# 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/ -r S2013.10.21


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/ -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/ -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/ -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/; 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>

Edit | Attach | Watch | Print version | History: r35 < r34 < r33 < r32 < r31 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r35 - 2014-02-07 - WilliamSeligman
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2018 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback