Midas documentation

From MidasWiki
Revision as of 16:08, 15 February 2014 by Pierre (talk | contribs) (→‎Appendices)
Jump to navigation Jump to search


"MIDAS" is an acronym for Maximum Integrated Data Acquisition System.

It is a general-purpose software package for event-based data acquisition in small and medium scale Physics experiments. Its development has been started at the Paul Scherrer Institute (Switzerland) and at TRIUMF (Canada) in 1993.

It is not to be mixed with MIDAS (Multi Instance Data Acquisition System) from UK or any of the MIDAS (Mobile Instrumentation Data Acquisition System) or MIDAS digital and analogue consoles or MIDAS Brakes and Mufflers!

MIDAS is based on a modular networking capable and central database system for data acquisition system. It consists of a collection of C, C++ code handling the main functionality required for data communication between the different acquisition nodes, data control for run operation, data distribution for online data analysis and more. It does also provide the appropriate tools for control and monitoring the run condition from a web application. Midas is supported on current OS such as UNIX-like (Linux, MacOS), Windows, VxWorks.

While the system is already in use in many laboratories, the development continues with addition of new features and tools. Recent developments involve multi-threading, FGPA/Linux support, MSCB extension, web/JSON interface.


In the early '90s, based on a previous Data Acquisition system running under MS-DOS with network capability (HIX), Dr. Stefan Ritt at Paul Sherrer Institute PSI (Switzerland) started coding a new set of applications which would be OS independent. At that time, OS such as VMS, ULTRIX, VxWorks and Windows were available. The first deployment of the Midas was for the "Canadian High Acceptance Orbital Spectrometer" (CHAOS) experimental facility at TRIUMF (Canada). Network based, the data were collected from a VME processor running VxWorks (collecting CAMAC, FastBus & VME data) and sending them to a backend computer running VMS and later ULTRIX.

Since then, Midas has been deployed on all major experiments at TRIUMF and PSI. It is also used around the world in over 80 locations. From simple workbench test setups to world class experiments such as PiBeta - muon decay MEG (PSI, Switzerland) - trapping antihydrogen atoms ALPHA (CERN, Switzerland) - neutrino oscillation T2K(J-Parc, Japan) - Decay study Pienu - precision muon measurement Twist (TRIUMF, Canada) - Dark Matter search DEAP (Sudbury, Canada) - Neutron Capture DANCE (Los Alamos, USA).

Midas has demonstrate its versatile capabilities and proven to be a mature and modern Data Acquisition Software package. A none exhaustive list of experiments can be found here.

  • July 2013 : Stefan Ritt visit at Triumf
    • Midas code from local SVN repository to Bitbucket cloud based GIT repository Tmidas
    • Implementation of multi-threading transition
    • New Midas web page
    • JSON, JSON-P for custom Midas web page support
  • Jan 2014 : New History Logging scheme "FILE"

Documentation organization

Even after two versions of the Midas documentation, it is still a real challenge to describe the Midas package in a clear, concise and useful way. On this third attempt, we reworked the layout and placed everything on Wiki, hoping that collaborators will be keen to correct, add and improve its content. Feel free to do so by contacting us in case of unclear or incomplete information.

We split the documentation in 4 main sections: Installation, Feature listing, Application listing, Online Database. While the first one provide you a mean to get Midas up and running, the Feature listing should highlight what Midas can do and provide some general information on its implementation. The Application listing refers to 'system- & user- build' applications that maybe needed during the acquisition. The Online Database section describes in details the Midas central information database. Appendices as the last section collect references, and features information with the understanding that the reader is already familiar with the Midas environment.

A lot of information can be replicate in every section, but we try to minimize it by cross referencing elements between the different sections. The hope is that once you found the feature that you need, the involved application and the activation of this feature with its specific online database section will be easily identifiable.


While originally Midas was available for all sorts of OS, now-a-days, we tend to reduce its support to Linux based, MacOS, and windows. This section contains general information and procedure for installation, configuration and basic operation example. more...

Feature listing

Midas provides by default a complete DAQ system composed of i.e: Frontend template for acquiring your hardware information, data transfer mechanism to local/remote computer, data logging capability, data analysis framework, data monitoring, full run control, web interface for experiment control/monitoring. While each of these features is described, other potentially useful but hidden options such as sub-run, messages, history, run sequencer, alarms, event notification, etc, may be as well essential to your experiment. A list of such features with description, enabling method and operation is also provided. more...

Application listing

Midas comes with a set of applications for monitoring and control of the acquisition system such as a central database editor (odbedit), webserver (mhttpd), data logger (mlogger) etc. This section describes each individual task and link to the corresponding features and online database entry managing such a feature. more...

Online Database

The online database (ODB) is the DAQ central information hub for a given experiment. It contains all information related to the internal operation of the data acquisition and any user information related to the configuration of the experiment. It is meant to be accessible by any midas client application connected to this experiment and by the user through a command line application (odbedit) or through a web interface (mhttpd).

Its content is organized with multiple directory levels filled with structure, arrays or single variables. While user can create new directories reflecting his hardware or analysis configuration, there are dedicated directories reserved for the core operation of the system (/SYSTEM/, /RUNINFO/, ...) but they still remain readable by the user. more...