LArSoft at Nevis
This documents how to use the LArSoft and MicroBooNE software as managed by mrb+git. If you are looking for older LArSoft versions managed by SRT, see the
LArSoft at Nevis SRT page.
Locations
- The Nevis copy of the LArSoft installation is currently in
/a/data/westside/seligman/larsoft
.
- The Nevis copy of the uboonecode installation is currently in
/a/data/westside/seligman/products
.
Releases
As of 07-Feb-2014, the following Fermilab LArSoft
releases
are maintained at Nevis:
v1_00_02 - Minor compilation fixes; use updated cetbuildtools.
v1_00_01 - Freeze after switch to mrb+git
Limitations of the Nevis LArSoft installation
Nightly builds
Nightly builds are not yet available at Nevis (nor anywhere else outside of
uboonevm.fnal.gov
).
Bash shell
The mrb+git scripts will only run in the
bash
shell. In other shells, you'll see error messages about missing libraries or being unable to set up products.
You can temporarily go into the bash shell simply by typing
bash
. If you want to permanently change your login shell to bash, you can do it via the
ypchsh
command.
Other shells (tcsh and zsh) will be supported (someday), but the LArSoft maintenance team is not yet ready.
Setting up the Environment
The simplest way to initialize the mrb+git environment at Nevis is to execute the following command:
source /a/share/westside/seligman/microboone/setup_uboone.sh
You only have to run this once per login session.
After you've run this command, you can follow the instruction in the
MicroBooNE guide
(without running any of the FNAL system-specific setup scripts, of course).
Notes
Regular development work
The
MicroBooNE guide
contains several procedures, but most of them are not commands that you'd type in every day. If your typical work flow is to login and start editing code in something you've already checked out, you may be interested in this script that
WilliamSeligman wrote:
/a/share/westside/seligman/microboone/develop_uboone.sh
Let's assume that you've previously set up (via
mrb newDev
) and checked-out (via
mrb gitCheckout
) some code that you're working on into your directory
~/mydev
, and that code is part of LArSoft release v1_00_02. Then a typical use of this script would be:
source /a/share/westside/seligman/microboone/develop_uboone.sh ~/mydev v1_00_02 e4 debug
This becomes handy if you set up an alias in
~/.bashrc
, the script that gets automatically executed when you login to bash:
alias MBD="source /a/share/westside/seligman/microboone/develop_uboone.sh ~/mydev v1_00_02 e4 debug"
Then you just have to type
MBD
after you login, and you're ready to work.
Look at
~seligman/.bashrc
for more ideas.
Finding packages
One potentially confusing aspect of the new arrangement is that LArSoft has been sub-divided into package groups. In order to check out a package, you have to know which group it's in. For example, you can't check out LArG4; you have to check out "larsim" which is a group of packages, one of which is LArG4.
For a guide as to which package is in which group, see
LArSoft dependencies
. Don't forget that there's also a "uboonecode" package group; code in that group supersedes the more general non-experiment-specific LArSoft code.
Browsing code on the web
If you want to browse the code in one of the package groups (e.g., larsim, larreco, ubooncode), you can use the Redmine repository listings at FNAL. The "magic formula" is:
https://cdcvs.fnal.gov/redmine/projects/<package-name>/repository
So if you want to look at the package group
larreco
, you'd visit the URL
https://cdcvs.fnal.gov/redmine/projects/larreco/repository
Browsing code in UNIX
My preferred way is to look at the code as it's stored on the local computer cluster. After you've set up LArSoft, you can find the code for a given package group in the directory:
$<PACKAGE-NAME>_DIR/source
If you wanted to look at the packages in group
larsim
, you can do:
ls $LARSIM_DIR/source
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 ROOT and Geant4
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
~/.bashrc
, 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.