Berkeley Nuclear Data Software


This repository is intended to hold software relevant to nuclear data activities at Lawrence Berkeley National Labs and the collaboartions of the Bernstein Group.

The repo is intended as a code only repo, so if it isn't code it is should not live here. There are a couple of exceptions. Jupyter notebooks have a home in notebook analysis. We've also decided to allow configuration files to live here in the misc folder.

Most of the code curently stored here is C++ and uses the CMake build system requiring out of source builds for all of the projects.

ROOT 6 is a common dependency. We have found the software build stage is more reliable with a copy of root which has been built on the system which it is intended to be used. See Building ROOT from source

The repository is organized in folders which have a common them for the software stored in the folder and is named according to the purpose of the software that lives within the folder. This currently includes four main buildable projects. For detailed descriptions of the projects follow the hyper links or see the readme in the respective directory.

Project Folders

sorted by arbitrary relevance

In general to build any of these folders mkdir <folder name>Build cd <folder name>Build cmake ../<folder name> make


This folder is intended for code managing the reduction of raw experimental data from the various acquisition systems in use into physics quantities both as list mode output and statistical representations of accumulated data. Current analysis chains in various states of development include

  • data processing from the Mesytec mvme daq using mdpp16 cards
  • FLUFFY data reduction
  • reduction and analysis of GENESIS data
  • time of flight analysis classes

Data Processing Build Instructions


This folder contains a modular backbone for running geant simulations with particle track storage in root trees for arbitrary sensitive detectors.

Several full detector simulations are also included in the build.


This folder holds classes used throughout the repo for simulation, data reduction, and data analysis. It can be compiled independently, but generically, code using contents as a depency will manage the compilation of it. Current support includes

  • classes for managing experimental configuration information
  • polymorphic classes for managing cuts
  • polymorphic classes for managing calibrations
  • a templated post processing class for managing loading root trees
  • a templated waveform plotting class


this folder holds processing code for waveform data collected on CAEN digitizers


this folder contains classes for some basic gamma spectrscopy within the root framework


The intent of this folder is to inlcude analysis chains that use physics quantities ie spectra or list mode data after parse/sort/calibration.

useful links for information

running clover time dependent gain correction code