Midas documentation

From MidasWiki
Revision as of 22:33, 21 November 2013 by Pierre (talk | contribs)
Jump to navigation Jump to search

Introduction

"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. For the latest status, check the MIDAS home pages in Switzerland or Canada.

History

In the early '90s, based on a previous DAQ version of a Data Acquisition system running under MS-DOS with network capability (HIX), Dr. Stefan Ritt at Paul Sherrer Institut (Switzerland) started coding a new application which would be OS independent. The requirements at that time were to be able to run on VMS, ULTRIX, VxWorks, Windows. Initial use of Midas has been at Triumf (Vancouver, Canada) for the experimental facility "CHAOS". Network based the data were collected from a VME processor running VxWorks (collecting CAMAC, FastBus & VME data) and sending them to a backend computer (VMS, ULTRIX). Since then, Midas has been deployed on all the major experiments at Triumf and PSI. Midas is used also around the world in over 80 locations. From simple workbench test setups across the world to world class experiments such as PiBeta, MEG, ALPHA (Switzerland), T2K (Japan), Twist, Pienu, DEAP (Canada), DANCE (USA), Midas has demonstrate its versatile capabilities and proven to be a mature and modern Data Acquisition Software package.

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.

Installation

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. While 'Midas package retrieval' and 'quick start' sections are OS independent, specific procedure on OS based is given for compilation/build/dependencies. This section also includes the environment variables available for a proper MIDAS-DAQ setup .

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.

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.

The Midas distribution comes with an examples/ directory containing specific application demo code. This list of templates is referred as well in this section.

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 defined by the user. 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). Features operation, applications configuration will be need prior, during and after a run sequence, access to some of its information (ODB) to configure or report conditions of the feature to the user. 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 remain readable by the user.

Once the ODB structure is understood, it will become clear to the user how to use and extend its use.

Appendices


Glossary

Index