Recent Changes - Search:

PmWiki

edit SideBar

Offline Installation

Installation guide for NOvA offline software

This guide is intended to get users started form scratch on a new computer system and end with a working installation of the NOvA offline software.

Contents:

  1. Installation of external packages
  2. Making your base release work
  3. Setting up frozen releases
  4. Environment variables

Installation of external packages and NOvA software:

The NOvA software makes use of several external packages which need to be installed before you can begin to build the NOvA software. Many are fairly standard and you may have them installed already on your system. If you need to install the packages yourself, please refer to the NOvA-specific documentation by clicking on the package name in the left-hand column in the table below. To get the dependencies among the packages correct, they should be installed in the order given in the table. The table also indicates the versions for which the installation procedure has been tested. Other versions of the package may work together, but not all combinations have or can be tested. If you run across a version set that does not work, please post them here. Newer versions than those listed are expected to be OK.

The FMWK packages are a somewhat special case. While they are not NOvA-specific, they are maintained by NOvA collaborators and hence while they are technically an external package, we maintain some ownership of them. They are incorporated into our releases in the same way as any NOvA-specific packages. If you follow the instructions below, this distinction may not be apparent to you -- that is as it should be!

The Virtual MC allows you to use geant4 or geant3. If you want to use geant3, you'll need to download and install it. A C++ interface is provided in Root via the TGeant3 class. Installation of the virtual Monte Carlo is a little bit tricky and if you intend to install it, you need to think a head a little bit. In particular, you will need to install geant4 with "granular libraries" and, although it says its optional, my build failed without the "vgm" package installed.

The complete list of external packages used by the NOvA software are:

PackageDownloadRecommended versionDescriptionNotes
PostgreSQLhttp://www.postgresql.org/>8.2.3Database support.
CLHEPhttp://proj-clhep.web.cern.ch/proj-clhep/DISTRIBUTION/clhep.html>2.0.3.1Class library for HEPRequired by Geant4
Geant4http://geant4.web.cern.ch/geant4/support/download.shtml>4.8.3C++-based geometry and particle tracking.Be sure to say 'y' to granular libraries if you intend to use the virtual MC later on
xerces-chttp://xml.apache.org/xerces-c/>2.7.0XML parsingRequired by GDML and FMWK.
GDMLhttp://gdml.web.cern.ch/GDML/>2.9.0Geometry markup language.Optional
ROOThttp://root.cern.ch>5.20.00Data format, histogramming, and many other HEP utilities.You will want to make sure pythia6 is enabled. To use the MC you need to --enable-g4root.
geant4_vmchttp://root.cern.ch/root/vmc/VirtualMC.html>2.3VMC interface to Geant4. 
FMWKhttp://enrico1.physics.indiana.edu/fmwk/wikiCVSJob control, configuration, and event display support.These packages are incorporated into a NOvA release and will be installed for you if you follow the instructions below.

Making your base release work

You'll probably want to create some setup scripts, so users (yourself included) will have an easier time using the base release.

The recommended way is to create a setup directory in the top level of your $SRT_DIST (should be directory novasoft):

 % cd $SRT_DIST 
% mkdir setup
% cd setup

Now copy some files from the base development release to this setup directory:

 % cp $SRT_DIST/releases/development/setup/setup_novasoft* .

This will have copied 3 files:
setup_novasoft_fnal.csh
setup_novasoft_fnal.sh
setup_novasoft_setup_fnal.sh
The first two are wrappers around the third, depending on whether users want csh or sh. The "_fnal" in the names indicates that these each contain Fermilab-specific settings. Please rename and edit the files as appropriate for your institute, including variables pointing to the external packages, compiler version, etc. Such options as compiler version may not be necessary at your institute.

When that is done, you should be able to log out, log back in, and source your version of setup_novasoft_....csh (or sh). This will setup the base release, and perform all the necessary SRT setups. Ordinary users will be able to use these scripts to use the base release each time they start a new session.

If you are responsible for maintaining the base release, you can go ahead and try to compile it!

 % cd $SRT_PUBLIC_CONTEXT
 % make clean
 % make

Note 1: If your build fails because the DatabaseBase, EventGeneratorBase, SimulationBase, and/or Header packages is not present, follow these steps:

In the $SRT_DIST director make directories for the missing packages:

% cd $SRT_DIST/packages
% mkdir DatabaseBase
% mkdir EventGeneratorBase
% mkdir SimulationBase
% mkdir Header

In each of these subdirectories you will want to make a file called "cvsroot". For DatabaseBase, the content of this file should be:

% cd DatabaseBase
% echo ':pserver:anonymous@enrico1.physics.indiana.edu:/root' > cvsroot

For the other packages its:

% cd EventGeneratorBase
% echo ':pserver:anonymous@cdcvs.fnal.gov:/cvs/cd_read_only' > cvsroot
% cd ../Header
% cp ../EventGeneratorBase/cvsroot .
% cd ../SimulationBase
% cp ../EventGeneratorBase/cvsroot .

These files will point the releases at the correct CVS repositories for these packages.

Note 2: In recent Mac installations it is possible the build will fail because $XERCESROOT/include files will not be found. A temporary fix is:

 % ln -s $XERCESROOT/include/xercesc $SRT_PUBLIC_CONTEXT/include/. 

Setting up a frozen release

A script currently exists to setup a frozen release. To do so, run the script

% $SRT_PUBLIC_CONTEXT/SRT_NOVA/scripts/update_rel -rel SYY.MM.DD

where YY.MM.DD is the date the release was made in the format of year-month-day.

To use a frozen release, run the nova setup script with the -r option. For example, at Fermilab, to set up to use the S09.08.21 release you would do

% /nas-pool/e929/code/novasoft/setup/setup_novasoft_fnal.(c)sh -r S09.08.21


NOvA Environment Variables

There are a number of environment variables which are either required or are useful when working with a NOvA release. Several of these are provided by the SoftwareReleaseTools srt_setup scipt but many must be set by the user. The following table provides a summary of the environment variables expected by the NOvA software:

NameSet byRequired?DescriptionExample
ROOTSYSuserYPoints the build system to the include files and libraries provided by the root framework./usr/local/cern/root/5.22.00
XERCESCROOTuserYPoints the build system to the include files and libraries provided by the XERCES XML parser./usr/local/xerces-c/2_8_0
CRYHOMEuserfor cosmic-ray MC generationPoints the build system to the include files and libraries provided by the CRY cosmic-ray generator from LLNL./usr/local/cry/1.5
CRYDATADIRuserfor cosmic-ray MC generationRun-time connection to the data files needed by CRY./usr/local/cry/1.5/data
CLHEP_BASE_DIRuserYPoints the build system to the include files, libraries, and executables provided by the CLHEP package/usr/local/clhep/2.0.4.2
TBC...
Edit - History - Print - Recent Changes - Search
Page last modified on November 02, 2009, at 01:14 PM