VEGA (Visual Environment for Gravitational
waves data Analysis) is designed to be a framework in which one can analyze data
coming from interferometric gravitational wave detectors. This data is supposed
to be in the Frame format, which was agreed upon between the two gravitational
wave detection experiments VIRGO and LIGO. This data format is now also used by
other such experiments.
VEGA is based on the ROOT framework
developed at CERN by R. Brun and F. Rademakers. There are numerous other
contributors to this work and I apologize for not citing them
all.
VEGA is an environment containing
:
The entire Framelib (
http://wwwlapp.in2p3.fr/virgo/FrameL
), which is a set of functions written in C that enable access and manipulation
of frame data files
A set of Manager classes that makes the heart
of the framework, especially doing the interface with the Framelib and Framelib
objects (frames, frame files, frame vectors).
A set of frame data handling classes that
allows the user an easy access to data contained in a big number of
files.
A set of algorithm classes that defines a
standard form for algorithms, thus enabling easy manipulation and inclusion of
these algorithms. They can be used in drawing, multiprocessing,
etc...
So VEGA extends ROOT
in the field of signal processing. We hope to provide in the near future as many
tools as possible, for example a set of standard algorithms as well as an
interface to Matlab.
Tutorials written by Andrew Haas (University
of Washington), Mark Pollack (RHIC) and Fons Rademakers in part inspired this
document. Thanks to them.
I.1 What
is ROOT ?
ROOT is a system for large-scale data
analysis and data mining. It is being developed for the analysis of Particle
Physics data, but can equally well be used in other fields where large amounts
of data need to be processed.
ROOT is not a computer program, but instead
is a set of over 300 C++ classes and an interactive C++ interpreter. So one can
use it as a framework, just using existing classes and libraries in his
programs. Or, one can use the interactive part of the interpreter to execute
tasks defined by the user on the command line or run macros, which are in fact
made of C++ code. Once the user is satisfied with his macro, he can compile it
(since it is nothing else than C++) with a little extra effort and run it much
faster.
I.2 Objectives
of this document
This User’s Manual is written with the
beginner or casual user in mind. Therefore, the first chapter is an
"interactive" one in the sense that the best way to read it is in front of a
computer with a VEGA session opened.
Next chapters are more for
reference.
People that will begin to work with VEGA
will usually have a FORTRAN or C background. I will suppose that the user is a
little bit familiar with C and I will introduce the basic C++ notions when
needed. This is not intended to be a C++ guide, it’s too huge of a task,
but ROOT is a good environment to learn C++ and it would be a pity not to use it
that way! So I will try to be as simple as possible from the C++ point of view.
Each example will be followed by the explanation of the underlying C++ concepts
used, enough to understand the various commands. I will also introduce some ROOT
related specific concepts after each example.
The main source of information for ROOT is
ROOT main site
http://root/cern.ch. There is a
lot of information online, and a User's Manual. In particular, one can find all
the source code of ROOT organized in a very nice way, and a searchable archive
of the mailing list devoted to ROOT, roottalk. If you have a question, there is
a slight chance that someone asked it before
you! For VEGA, the information can be
found at the VEGA
site:http://wwwlapp.in2p3.fr/virgo/vega/