Paul Scherrer Institut 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli ROME...

12
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli ROME CHEP 2006 Presented by Matthias Schneebeli a universally applicable analysis framework generator Written by Matthias Schneebeli, Ryu Sawada, Stefan Ritt

Transcript of Paul Scherrer Institut 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli ROME...

Slide 1Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
ROME
Written by Matthias Schneebeli, Ryu Sawada, Stefan Ritt
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
Index
Introduction to ROME
Features
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
Generating Frameworks
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
Writing an Analysis Software
Different approaches for writing an analysis software for an experiment
Writing an analysis software specifically for the experiment
Writing an analysis software for all HEP experiments
Generating an analysis framework
No help from other experiments
Impossible
Presented in this talk
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
Composition of an Analysis Software
Framework
Analysis Code
Code generated by a translation program
Experiment dependent code which can be summarized in a experiment description
Data structure
Task structure
Physical Calculations
Event Loop
Support functions
Code implemented by the experimenter
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
Generating an Analysis Framework
Framework
Objects
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
Benefits of a generated Framework
Saves Manpower
Clear separation between Framework and Analysis Code
Consistent Program Structure -> Easy to read
Less Handwritten Code
Improvements are shared to other experiments
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
Introduction to ROME
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
Implementation in ROME
Summarization
Experiment independent ROME classes (mostly base classes for the generated classes)
Executable
Documentation
ROME classes
ROME classes
ROME classes
ROME classes
ROME classes
Exp. classes
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
ROME Features
Fully object oriented
Based on Root
Online and Offline
MySQL database access
GUI extension generated by the ROMEBuilder
XML is used for experiment descriptions
Automatic makefile generation and linking performed
Experiment documentation created
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
GUI Extension
Tab based
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
Conclusion
ROME is such a framework generator
http://midas.psi.ch/rome/
Triumf (Canada)
Try it out
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
Back Up
Slides
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
Interconnections
Folders
Fill
Read
Fill
Flag
Fill
Fill
Disk
(Output)
Tasks
Tasks
Tasks
Trees
Trees
Trees
Histograms
Histograms
Histograms
Histograms
Histograms
Histograms
Histograms
Histograms
Histograms
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
Modularity
Tasks are independent calculation modules.
The interface to the tasks are folders.
Tasks can be combined or exchanged arbitrarily, as long as the interface matches.
E.g. one can execute different calibration tasks without re-linking.
Possible even during runtime
A1
A2
B1
A3
B2
A4
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
Folders
<Folder>
</Field>
<Field>
</Field>
</Folder>
[Field Type 1] Get[Folder Name]()->Get[Field Name 1]();
void Get[Folder Name]()->Set[Field Name 1]([Field Type 1] value);
Code
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
Tasks
<Task>
Code
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
Configuration File
XML File
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
Program structure
write tree
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
Run Program
g : Run until event #
Windows
Paul Scherrer Institut • 5232 Villigen PSI CHEP 2006 in Mumbay / 13.2.2006 / Matthias Schneebeli
Installation
CVS checkout of ROME
Define environment variable ROMESYS
Define environment variable ‘Path’
[~/MyExp]$ progname
C:\> cvs checkout ROME
C:\MyExp> ROMEBuilder.exe myExp.xml –v [–o Output Path]
C:\MyExp> progname