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/setup_uboone.sh
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 Ar
40 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
uboonegpvm01.fnal.gov:/uboone/data/flux
, and the GENIE spline files from https://www.hepforge.org/archive/genie/data/
.
- 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 O
16, 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 Ar
40, 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.