Difference between revisions of "Midas documentation"

From MidasWiki
Jump to navigation Jump to search
 
(3 intermediate revisions by the same user not shown)
Line 3: Line 3:
  
  
==[[Introduction]]==
 
"MIDAS" is an acronym for Maximum Integrated Data Acquisition System.
 
 
MIDAS is a general-purpose software package for event-based data acquisition in small and medium scale Physics experiments.
 
Its development was started at the Paul Scherrer Institute (Switzerland) and at TRIUMF (Canada) in 1993.
 
 
''' It is not to be confused 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 and finally with 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 also provides 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.
 
[[introduction|'''more...''']]
 
 
==History==
 
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 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 [http://meg.icepp.s.u-tokyo.ac.jp/ '''MEG'''] (PSI, Switzerland) - trapping antihydrogen atoms [http://alpha.web.cern.ch/ '''ALPHA'''] (CERN, Switzerland) - neutrino oscillation [http://t2k-experiment.org/ '''T2K'''](J-Parc, Japan) - Decay study Pienu - precision muon measurement Twist (TRIUMF, Canada) - Dark Matter search [http://deap.phy.queensu.ca/ '''DEAP'''] (Sudbury, Canada) - Neutron Capture DANCE (Los Alamos, USA).
 
 
Midas has demonstrated its versatile capabilities and proven to be a mature and modern Data Acquisition Software package.
 
A non-exhaustive list of experiments can be found [https://midas.triumf.ca/MidasWiki/index.php/MIDAS_around_the_world here].
 
 
=== Recent Developments ===
 
* July 2013 : Stefan Ritt visit at Triumf
 
** Midas code from local SVN repository to Bitbucket cloud based GIT repository [https://bitbucket.org/tmidas/midas 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"
 
* July 2015 : Stefan Ritt visit at Triumf
 
* August 2015 : Important Network Security upgrades:
 
** Default MIDAS is now secure (clients must run on localhost only)
 
** Network connections must be explicity allowed (see [[Security]])
 
** [[mhttpd]] uses secure HTTPS connections
 
* January 2016 : mjson-rpc functions added to Javascript libary [[mhttpd.js]] - see [[mjsonrpc]]
 
* July 2017
 
** New web page layout with menu buttons on left side and alarm and message display on every page
 
** New custom pages based on the mjson-rpc layer - see [[Custom_Page|Custom Pages 2017]]
 
  
 
==Documentation organization==
 
==Documentation organization==
Line 85: Line 47:
 
* [[Common Parameters to MIDAS Utilities]]
 
* [[Common Parameters to MIDAS Utilities]]
 
* [[Notes | Miscelleneous notes]] : Notes that need to be incorporated in the documentation.
 
* [[Notes | Miscelleneous notes]] : Notes that need to be incorporated in the documentation.
 +
* [[Features | New Features]] : documented features to be incorporated in the documentation.
  
 
== [[Glossary]] ==
 
== [[Glossary]] ==
 +
 
== [https://midas.triumf.ca/MidasWiki/index.php?title=Special%3AAllPages&from=&to=&namespace=0 All Pages listing] ==
 
== [https://midas.triumf.ca/MidasWiki/index.php?title=Special%3AAllPages&from=&to=&namespace=0 All Pages listing] ==

Latest revision as of 10:00, 3 January 2018




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.

The documentation of the MIDAS code is still generated by Doxygen and can be found at [1].


We split the documentation in 4 main sections: Installation, Feature listing, Application listing, Online Database. While the first one provides you a means 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 assuming that the reader is already familiar with the Midas environment.

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

Installation

Although originally Midas was available for all sorts of OS, nowadays we tend to reduce its support to Linux-based, MacOS, and Windows. This section contains general information and procedure for installation, configuration and examples of basic operation. more...

Feature listing

Midas provides by default a complete DAQ system, the main features of which comprise: 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, and 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 also be 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 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 the user can create new directories reflecting his/her 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...


Appendices

Glossary

All Pages listing