Giter Site home page Giter Site logo

pybar's Introduction

pyBAR

pyBAR - Bonn ATLAS Readout in Python and C++

Master / development branch: Build Status Build Status

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 hardware. pyBAR FPGA firmware and host software supports USBpix and USBpix 3.0 as well as Single Chip Adapter Card, Burn-in Card (4-chip Adapter Card) and GPAC adapter card.

The features of the FPGA firmware in a nutshell:

  • support for single chip adapter card, 4-chip adapter card (Burn-in Card) and GPAC card
  • 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 (including trigger number)
  • 200kHz peak trigger rate, 50kHz continuous trigger rate (full 16 BC readout, single FE-I4)

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
  • reading configuration files from RCE/HSIO (natively) and STcontrol (converter available)
  • full control over FE command generation
  • sending an arbitrary bit stream/configuration sequence to 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 (< 100 ms latency)
  • rapid development of new scan algorithms

Installation:

Prerequisites:

Checkout pyBAR. From host folder run the following commands:

  1. Build with: python setup.py build_ext

  2. Install with: python setup.py develop

  3. Testing: nosetests tests

    The scan test needs a working FE-I4.

Usage:

Two methods are available:

  1. Directly run scans/tunings inside the /host/pybar/scans/ folder. Just double click the .py file or run them from a IDE. This is the quick and dirty method. Very effective. Change run parameters either inside each python file (_default_run_conf dictionary) or change configuration file (configuration.yaml).
  2. Use RunManager to run scans from primlist (via run_primlist() method) or to run a single scan (via run_run() method). This is the preferred method for longer sessions. Once the RunManager is initialized, it eases the way to run multiple scans/tunings in a row.

Please note the examples in the examples folder.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.