Running GENIE at Nevis

To run the GENIE Neutrino Monte Carlo at Nevis, you can take one of two approaches:

  • Use a software suite (GENIE and its external packages) installed at Nevis by WilliamSeligman.
  • Access the version maintained at Fermilab.

I recommend against trying to install it on your laptop or in your own work area on the cluster; GENIE requires quite a few external packages, is finicky about those packages' versions, and the complete build/installation process has a number of pitfalls. Even the supposedly pre-configured lamp scripts, which are supposed to install all of GENIE's dependencies for you, do not work reliably.

Use the one already at Nevis

This may seem like a reasonable approach. Be aware that, as time goes on, that suite of software will probably become more and more obsolete. With that warning out of the way:

module load /nevis/amsterdam/share/seligman/genie/genie-setup.mod

Note that this command will make changes to your shell environment. I strongly suggest that you do not mix this setup with any other software frameworks (e.g., LArSoft for the Neutrino group; Athena for the ATLAS group).

Setting up GENIE via UPS

First, set up the Fermilab UPS environment:

source /nevis/amsterdam/share/seligman/microboone/

You can look over the available versions of GENIE:

ups list -aK+ genie

As of 5-Apr-2017, some of the output of that command includes:

"genie" "v2_12_4" "Linux64bit+2.6-2.12" "debug:e10:r6" "" 
"genie" "v2_12_4" "Linux64bit+2.6-2.12" "e10:prof:r6" "" 
"genie" "v2_12_2b" "Linux64bit+2.6-2.12" "e10:prof" "" 
"genie" "v2_12_2b" "Linux64bit+2.6-2.12" "debug:e10" "" 

It appears that the latest version of GENIE available at FNAL is v2_12_4. To set up the environment necessary to run the GENIE programs for that version:

setup genie v2_12_4 -q e10:prof:r6
Note that you don't include the OS version in the setup command, but you do have to include the "qualifier" to select the options that were used to compile GENIE. Just copy whatever is in the quotes and put it after the -q option.

Running GENIE

The GENIE manual is here (PDF file). The practical examples start on page 109. Here's the first example, adapted for running at Nevis, and with an Ar40 target. Note that the νμ histogram in the flux file is named "numu"; that name follows the comma after the .root file in the -f option. .

# Create a work area for transient output files
mkdir -p /nevis/westside/data/seligman/work
cd /nevis/westside/data/seligman/work

# Define variables to point at directories with flux and cross-section files.
export GENIE_FLUXES=/nevis/westside/data/uboone/flux
export GENIE_XSECS=/nevis/amsterdam/data/seligman/genie_xsec

# Generate 10,000 numu+Ar events with energies between 0 and 10 GeV
gevgen -n 10000 -p 14 -t 1000180400 -e 0,10 --run 100 \
   -f $GENIE_FLUXES/bnb/current/histograms/ub470_r200_bnb_fhc/numode_bnb_470m_r200.root,numu \
   --seed 2989819 \
   --cross-sections $GENIE_XSECS/v2_12_0/NULL/DefaultPlusMECWithNC/data/gxspl-FNALsmall.xml

  • Archeology: on 5-Apr-2017, I copied the flux files from, and the GENIE spline files from
  • More archeology: on 19-Apr-2021, I discovered that the flux files I copied from FNAL were deleted (probably by me when I forgot what they were). If you need flux files for your work, you'll have to copy them from some other source.

This example is straight from the manual: π+ on O16, with kinetic energy 200 MeV:

gevgen_hadron -n 10000 -p 211 -t 1000080160 -k 0.2 --seed 9839389

What's next?

The output of gevgen and related applications is a ROOT file that can only be conveniently read using another GENIE application. To convert that output file into a form that can be read by a non-GENIE program, you probably want to use gntpc. In this example, the output will be a "gtrac" file that can be read using ROOT without involving GENIE load libraries:

gntpc -i gntp.inuke.0.ghep.root -f rootracker

gntpc is described on page 147 of the manual.

As described in the GENIE manual, to turn various models on/off you need to generate new spline files. The program for doing that is gmkspl, described on page 103 of the manual. You'll want to copy the directory $GENIE/config/ to your work area, then copy and edit file EventGeneratorListAssembler.xml; that revised file will become an input list to gmkspl. An possible example (νμ on Ar40, up to 10 GeV):

gmkspl -p 14 -t 1000180400 -e 10 \
   --event-generator-list my-edited-process-list.xml \
   --output-cross-sections my-splines.xml

Note that gmkspl typically takes several hours to run. You may want to learn about the tmux command for interactive sessions that won't be killed if your connection is lost.

Edit | Attach | Watch | Print version | History: r11 < r10 < r9 < r8 < r7 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r11 - 2021-04-20 - WilliamSeligman
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback