From MidasWiki
Jump to navigation Jump to search



Welcome to ROOTANA - a simple ROOT based analyzer for MIDAS.

When compiled together with the optional MIDAS libraries, this package can be used to process live online data and to access the live online MIDAS ODB.

Without the optional MIDAS libraries, one can analyze existing MIDAS .mid files and access the copy of ODB stored inside the .mid file in the XML format. This mode is suitable for offline data analysis in a mobile environement.

In either mode, this root analyzer can be used in conjunction with ROODY to look at the data as it is being analyzed.

The origins of this package date back a few years when I wrote some C++ classes to read MIDAS files for the Dragon experiment. Jonty Pearson and Joe Chuma have since improved and added to my work. Then during the Summer of 2006, I wrote some more C++ classes for access to live data and for access to the live ODB, for use by the ALPHA experiment at CERN. This code was then reused for couple of test DAQ stations at TRIUMF. With the addition of ROODY access using the "midas server", ripped out from mana.c, it is now used for the PIENU beam test.

The sources for ROOTANA are managed by SVN at

To get your very own copy of the package, say "svn checkout rootana".

To build the ROOTANA library and the example analyzer, say "make". To build the documentation, say "make dox", then open "html/index.html" in your favourite web browser.

(UPDATE 26-MAR-2007) The code was tested on 32-bit and 64-bit Linux/x86 and on 32-bit MacOS/PPC. The 64-bit compilation issues have been mostly cleaned up. MacosX/x86 not tested yet.

(UPDATE 01-JUL-2007) Added ability to read gzipped midas files (using zlib).

(UPDATE 16-AUG-2007) Added ODB access functions odbReadArraySize() and odbReadDouble(). Fully implemented the XmlOdb interface (Except for odbReadAny()).

(UPDATE 02-OCT-2007) Tested with ROOT version 5.16. Implemented enough TNetDirectory code to replace the midasServer code for serving data to ROODY.

(UPDATE 04-MAR-2008) Implemented option for polling midas events, updated documentation.

(UPDATE 06-OCT-2008) Implemented pipes for reading remote midas files through ssh and dcache tunnels.

(UPDATE 21-DEC-2008) Implemented HttpOdb to access ODB through MIDAS HTTP server mhttpd

Konstantin Olchanski/21-DEC-2008


MIDAS Interface

TMidasEvent, TMidasFile, TMidasOnline, VirtualODB, etc

XML Server

xmlServer & co

example programs

  • event_dump
  • event_skim
  • standalone graphical analyzer.cxx

ROOT Analyzer framework

rootana provides low-level access to the MIDAS data files and online MIDAS data. Using these low-level functionality users can design whatever sort of programs they want for accessing and analyzing the data.

rootana also provides a more structured, higher-level framework for organizing analysis programs. The framework includes a standard event loop class and a standard display program. Details on this higher-level framework are available here

Quick start

Migration from ROOTANA pre-svn revision 91

From: Alisher Sanetullaev <>
Subject: Re: rootana svn version

I think I have resolved the problem. I had to bring the anaIris code up to date with the latest rootana. Now it compiles.

1. added #include "stdint.h" in src/HandleMesytec.cxx.
2. Commented out the #include "midasserver.h" lines from all files.
3. Changed $(ROOTANA)/librootana.o to $(ROOTANA)/lib/librootana.o in the Makefile. (That file has moved to a different
directory in rootana directory.)
4.  Changed eventHeader_t to TMidas_EVENT_HEADER in src/anaIris.cxx.

NOTE: I think one also needs to add -I$ROOTANA)/include to the CFLAGS