|
User's Guide
Download ROME - Step by Step ROME Database ARGUS (GUI) Screen Shots FAQ ROME Talk Forum |
ROME
Root based Object oriented Midas Extension
ROME was designed to be a general purpose framework for event based data analysis. This kind of analysis is typical for physics experiment, especially in particle physics. The requirements on the framework have been :
UniversalityThe framework should be usable by as many experiments as possible. Therefore, the framework must be experiment independent. There are some features like processing an event loop, which are the same for all kinds of these experiments. The implementation of these features can be completely experiment independent. But, a framework containing only this functionality, could only cover a small percentage of the requirements on a usual framework. However, the structure of a data analysis framework can be easily summarized. Out of such a summarization the code of a hole framework can be generated. The generated framework contains now all experiment specific features, like reading or storing data, accessing a data base, connecting to an online experiment and so on. The only part, that is still missing is the physics, thus, the calculations, which shall be performed on the data. This part can of course not be summarized.
Implementation in ROME
ModularityThe framework should consist of exchangeable modules containing one step of the analysis. A module should be independent of all other modules and have a well defined interface. The interface should be the only connection to other modules. This way modules with the same interface can always be exchanged. It should also be possible to structer the modules.
Implementation in ROME
Object orientedThe framework should deal only with objects, not with single or array of values. Furthermore, the objects should, whenever possible, match real objects (like sub detector components). An object naturally connects values, which belong together.
Implementation in ROME
User friendlinessThe experimenter should write as less code as possible. Moreover, user code should also be as simple as possible. As discussed above, the experimenter should only need to write the physical calculation code. This is simple code which only needs basic syntax of a programming language. Writing c++ classes is not a simple job, this should be handled by the framework.
Implementation in ROME
ROOT basedThe framework should be based on the ROOT libraries for two reasons. First, the ROOT package is, in my opinion, the most powerful software package for data analysis, which is currently available. Second, it is the standard package for data analysis in physics (or at least in high energy physics) at the moment, and it seams to be so in the near future.ROME is written in c++ and it is completely object oriented. It runs under linux and windows. It uses the ROOT libraries to perform the data analysis, the MIDAS library to collect data online and the MySQL 4.0 library for sql database access. |
|
| Matthias Schneebeli, Ryu Sawada |
| e-mail: ryu.sawada@psi.ch |