As of the TDR analysis (2019) this now mostly comprises just CAFAna.
A helper build script lives in the CAFAna subdirectory. You can build and install the code as follows using the FNAL sl7 container:
/cvmfs/oasis.opensciencegrid.org/mis/apptainer/current/bin/apptainer shell --shell=/bin/bash \
-B /cvmfs,/exp,/nashome,/pnfs/dune,/opt,/run/user,/etc/hostname,/etc/hosts,/etc/krb5.conf \
--ipc --pid /cvmfs/singularity.opensciencegrid.org/fermilab/fnal-dev-sl7:latest
source /cvmfs/dune.opensciencegrid.org/products/dune/setup_dune.sh
Make a directory in your app area where you will clone the lblpwgtools directory.
mkdir -p /exp/dune/app/users/${USER}/SomeDir
cd /exp/dune/app/users/${USER}/SomeDir
git clone https://github.com/DUNE/lblpwgtools.git
cd lblpwgtools/CAFAna/
The build cannot currently involve Stan, so switch that off. Then use the helper configure and build script provided.
export CAFANA_USE_STAN=0
./standalone_configure_and_build.sh -r -u -I `pwd`
If you don't use the helper script, then you will need ROOT, GSL, CLHEP, and some BOOST components to build. The above script will check these dependencies via relevant XXX-config helpers or some poor guesswork in the case of BOOST. Most of these dependencies should be available from distribution package managers. Some details follow:
Your set up ROOT install must have the minuit2 capabilities included as this is used for minimization by CAFAna. Check by:
$ root-config --features | grep "minuit2"
# e.g. asimage astiff builtin_afterimage builtin_clang builtin_davix builtin_ftgl builtin_gl2ps builtin_glew builtin_llvm builtin_lz4 builtin_lzma builtin_tbb builtin_vdt builtin_xxhash clad cling cxx17 davix exceptions explicitlink fftw3 fitsio gdml http imt mathmore minuit2 opengl pch pythia6 python roofit root7 shared soversion ssl thread tmva tmva-cpu tmva-pymva vdt x11 xft xml
If you can see minuit2, you're good to go.
Most-likely you will have to specify BOOST_INC and BOOST_LIB
via your environment. The directory pointed to by BOOST_INC is expected to contain the boost subdirectory. The directory pointed to by BOOST_LIB is expected to contain libboost_filesystem.so.
At the time of writing the full response to a request for help to standalone_configure_and_build was:
$ ./standalone_configure_and_build.sh -?
[RUNLIKE]
-f|--force-remove : Remove previous build directory if it exists.
-r|--release : Compile with CMAKE_BUILD_TYPE=RELEASE
--rdb : Compile with CMAKE_BUILD_TYPE=RELWITHDEBINFO
--knl : Build with -march=knl
--use-gperftools : Compile libunwind and gperftools
-u|--use-UPS : Try and use ups to set up required packages, rather than assuming they exist on the local system.
-j|--n-cores : Number of cores to pass to make install.
-O|--omp : Enable OMP features of CAFAna.
-I|--install-to : Directory to install to.
-?|--help : Print this message.
Once CAFAna has been built, to set up the environment you will need to source /path/to/install/CAFAnaEnv.sh. If standalone_configure_and_build.sh was not passed a -I argument, then this will be /path/to/repo/CAFAna/build/Linux/CAFAnaEnv.sh by default. You will also need to export CAFANA_USE_STAN=0.