Skip to content

Latest commit

 

History

History
101 lines (76 loc) · 4.54 KB

README.md

File metadata and controls

101 lines (76 loc) · 4.54 KB

pyBAR Code Status Build Status Build Status

pyBAR - Bonn ATLAS Readout in Python and C++

PyBAR is a versatile readout and test system for the ATLAS FE-I4(A/B) pixel readout chip. It uses the basil framework to access the readout hardware. PyBAR's FPGA firmware and host software includes support for different hardware platforms.

PyBAR is not only targeting experienced users and developers. The easy-to-use scripts allow a quick setup and start. PyBAR is a very flexible readout and test system and can be adapted to any needs.

The features of the FPGA firmware in a nutshell:

  • supported readout hardware: MIO, MIO 3.0, SEABAS2, Avnet LX9 and Digilent NexysTM4 DDR
  • supported adapter cards: Single Chip Adapter Card, Burn-in Card (Quad Module Adapter Card) and the General Purpose Analog Card (GPAC)
  • support of up to 4 FE, simultaneous readout
  • continuous data taking (no interrupts during data taking, preserving all information)
  • automatic data to clock phase alignment on each channel individually
  • full support of EUDAQ TLU and availability of EUDAQ Producer

The features of the host software in Python and C++:

  • very minimalistic interface, script based, no GUI
  • support for Windows/Linux/OSX
  • support for FE-I4A and B
  • configuration files human readable (compatible to RCE/HSIO)
  • full control over FE command generation
  • sending any arbitrary bit stream/configuration sequence to the FE of any desired frame length and/or format
  • readout of full FE data including timestamps, storing of the compressed data to HDF5 file
  • ultra fast raw data analysis, event-, cluster building and validity checking
  • real-time online monitor with GUI
  • fast development and implementation of new scan algorithms

Installation

The following packages are required for pyBAR's core functionality:

basil_daq bitarray cython matplotlib numpy pandas progressbar-latest pyyaml scipy tables

For full functionality, the following additional packages are required:

ipython mock nose pyqtgraph pyserial pyvisa pyvisa-py pyzmq sphinx vitables

Run the following commands to install the packages:

conda install bitarray cython ipython matplotlib mock nose numpy pandas pyserial pytables pyyaml pyzmq scipy sphinx

pip install progressbar-latest pyvisa pyvisa-py https://github.com/SiLab-Bonn/pyqtgraph/archive/develop.zip https://github.com/uvemas/ViTables/archive/v2.1.zip

On Windows, the pywin32 package is required:

conda install pywin32

Basil (==2.4.0) is required:

pip install basil_daq==2.4.0

To enable support for USB devices (MIO, MIO3 and MMC3), the following additional packages are required:

  • PyUSB (>=1.0.0rc1):

    pip install "git+https://github.com/walac/pyusb.git@master"
    
  • pySiLibUSB (>=2.0.0):

    pip install pySiLibUSB
    

The installation procedure depends on the operating system and software environment. Please read our Step-by-step Installation Guide carefully.

After the obove steps are completed, clone the pyBAR git repository and then run the following commands from the within project folder:

  1. Build with:

    python setup.py build_ext
    

    Note: this command needs to be excuted each time pyBAR is updated or changes are made to the pyBAR C++ library.

  2. Install with:

    python setup.py develop
    
  3. Testing (from within the tests folder):

    nosetests test_analysis.py
    

Usage

Please note the Wiki and the User Guide.

Support

To subscribe to the pyBAR mailing list, click here. Please ask questions on the pyBAR mailing list pybar-devel@cern.ch (subscription required) or file a new bug report / feature request here.