Berkeley Nuclear Data Software
Getting Started

This documented is intended to get you to a working state with the MVME analysis software contained in this repo. The parse code used to translate data uses the DAQ software to interpret the files and inherits all of the dependencies. The DAQ code is a submodule of this repo. The CMake build system manages pulling the submodule and applying a patch to ease the in place build.

Once build pre-requisites are in place the analysis routines should compile as any cmake project.

e.g. from repos home directory(a directory up from this file instructions)

        mkdir analysisBuild
        cd analysisBuild
        cmake ../DataProcessingAndAnalysis
        make <-j#cores>

should compile a copy of all routines contained in this directory.

Once compiled the build directory should contain a number of folders with analysis programs or libraries. e.g. after succesful compilation there will be a program located at

analysisBuild/mesyProcLib/rootFileBasicHistogrammer.exe

that will construct a root file of all possible singles histograms from a file passed to it.

If you are installing on Windows Subsystem for Linux, make might fail on finding libqt5core.so.5. If it does, delete everything in the analysisBuild folder and run

sudo strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5

and then run the cmake and make commands again, as above.

Building Pre-requisites (Compiler needs to support c++ 14)

If you are building on a shared system like meitner or osiris these pre-requisites should already have been managed for you. If you are setting up your system please note that there are several sections here.

Prerequisites that need to be built

  • ROOT
  • MVME
    • Build Instruction
    • The repo has a list of dependencies which will be required to complete a build of MVME. These should be installed via your package manager.
    • Note: MVME's cmake sometimes has trouble with finding the installed qwt package. This can be remidied by handing it to the cmake specifically using something like the following as a command line argument -DQWT_INCLUDE_DIR=/usr/include/qt5/qwt/
    • See notes below if you are using WSL or Ubuntu 20.04
    • You will need to set two environment variables after succesfully compiling MVME
      • MVMESource needs to be set to the directory where you cloned the MVME repo
      • MVMELibDir needs to be set to the directory where you compiled the MVME repo

Prerequisites that may need to be built (not all systems see if your package is compatible first)

  • Cmake For package managers that don't proved the latest version (Ubuntu 18.04) – Ubuntu 20.04 is sufficiently up-to-date to not have to do this
    • To build 3.17.2 from the command line with the gui present
        wget https://github.com/Kitware/CMake/releases/download/v3.17.2/cmake-3.17.2.tar.gz  
        tar -xvf cmake-3.17.2.tar.gz  
        cd cmake-3.17.2  
        ./configure --qt-gui  
        make -jN (where n is the number of cores)  
        sudo make install
      
  • The Qt version supplied by Ubuntu 20.04 is sufficiently outdated such that MVME will not compile. You will need to download and install it.
    • Download
    • Once installed you will need to overide the default packages in your bashrc. This looks like
      export Qt5_DIR=<where you installed Qt>/5.15.2/gcc_64/lib/cmake
      export QT_DIR=<where you installed Qt>/5.15.2/gcc_64
      export PATH=$QT_DIR/bin:$PATH

Prerequisites with functional packages (install with package manager)

Most of these dependencies will have been resolved having compiled MVME and ROOT independently

  • CMake > 3.11
    • The default package for ubuntu 18.04 (WSL at least) isn't sufficiently modern and needs to be built
  • QT5
  • Quazip
    • make sure to install qt5 version