Project

General

Profile

OnlineReconstruction


Description

The MICE Online Reconstruction framework provides live data reconstruction functionality, though it can also be run offline.

The framework is multi-threaded, and based on a consumer-producer model.

A C++ API package provides access to the I/O, buffering, and threading functionalities.

The reconstruction workers are plugged in through the miceOnrec package which interfaces with the MAUS libraries.

Requirements

  • The RHEL developer toolset
    devtoolset-2
    is required to provide Boost & additional functionalities.
    wget -O /etc/yum.repos.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo
    yum install devtoolset-2
    
    • This usually installs in
      /opt/rh/devtoolset-2
      but it may be different on your system.
  • The MAUS Online environment must also be built if running in ONLINE mode reading from the DAQ socket
    cd /path/to/MAUS/
    source env.sh
    bash third_party/bash/70daq.bash
    scons -j8
    

Install the API and reconstruction frameworks

The install requires 2 git packages

mic11api
and
miceOnrec

It will be helpful to keep both packages in the same directory.

e.g. Create a directory to hold the API and the onrec packages

 mkdir OnlineReconstruction
or a name of your choice

Install the API

cd OnlineReconstruction
  • Fetch from github
    git clone https://github.com/durgarajaram/mic11api.git
    
  • Source the devtoolset-2 environment
    source /opt/rh/devtoolset-2/enable
    
  • Build the package
    cd mic11api/build
    ./cmake_clean.sh
    cmake ..
    make
    

Install the Online Reconstruction package

cd /path/to/OnlineReconstruction
  • Fetch from github
    git clone https://github.com/durgarajaram/miceOnrec.git
    
  • source the MAUS environment in order to pick up the MAUS libraries
    source /path/to/MAUS/env.sh
    
  • Source the devtoolset-2 environment
    source /opt/rh/devtoolset-2/enable
    
  • Build the Onrec package
    cd miceOnrec/build
    ./cmake_clean.sh
    cmake ..
    make
    
  • Load the MAUS configurations to local file -- required for running the reconstruction jobs
    cd /path/to/OnlineReconstruction/miceOnrec/bin
    python GetJsonConfig.py
    
  • This clones MAUS's ConfigurationDefaults.py to config.json.
    • If you want to specify a different geometry, you will have to edit ConfigurationDefaults.py and then run
      python GetJsonConfig.py
      again

Running

The miceOnrec package builds two binaries

bin/stexample, bin/mtexample

To run the online reconstruction

  • Source the MAUS environment
    source /path/to/MAUS/env.sh
  • Source the DAQ mon environment
    • Note: If you don't intend to run in ONLINE mode (reading data from the DAQ socket), you can skip this.
      cd /path/to/OnlineReconstruction/miceOnrec
      source mon_env.sh
      
  • Run in multi-threaded OFFLINE mode
    bin/mtexample -d <dir-with-daq-files> -f <daq-file or run runmber> 

    e.g.
    bin/mtexample -d /data/raw -f 8161

    where /data/raw contains the raw files 8161.000 etc

Outputs

The canvas image outputs from onrec are png files. These go to

$MAUS_WEB_MEDIA/reco