The Alice VMC application is based on the virtual Monte Carlo
approach, and is in part described on the
The Alice Event Structure
There is a document available
describing the event structure as it existed some 2 years ago, at the
time of this writing. It may be in part obsolete.
The analysis of the most important classes used in Alice VMC is presented
on a separate page. Our review of the event structure
will be referencing description therein.
The top level of that
structure is based on TFolder, and is called "top folder" or
"Alice data exchange board".
This folder can be thought of as containing a Monte Carlo run (i.e.
potentially a few or even many events).
Each event is stored in its own Event folder (see the diagram),
which are created as needed and added to the "exchange board".
The event data per se is organized as follows:
Note that the Data folder contains subfolders for individual detector
systems, while those sufolders carry individual objects (typically TTrees)
describing various parts of the event data.
Not shown on the above diagram, for readability, were the Conditions and
Configuration folders contained
inside the Events folder. The Conditions folder has the following
while the Configuration has these:
- Calibration data
- Detector Alignment
- QA output
- Magnetic field maps
- List of generator objects
- the Virtual MC folder
Creation of the Event Structure
Below, we provide a brief description of the
operations needed to create the event folder
tree. The description of classes used will be
given on a separate page.
- AliRunLoader object, when constructed, creates the
AliConfig singleton. In its own constructor, the
latter creates the structure illustrated in the above diagrams.
- AliDataLoader contains up to 4
"Base Loaders", which are created and added to the collection contained therein.
They are responsible for I/O of individual components of the event. In particular,
they can be represented by AliTreeLoaders. The latter object performs the
AddTree operation on an active folder, thus adding a requisite tree
to the file, via the MakeTree method of its own.
- WriteKinematics and WriteHeader methods in the AliRunLoader
forward these operations to the AliTreeLoaders
Persistence of the Event Structure
As per available documentation, as well as code inspection, different kinds of
data representing one event is in fact stored in separate files. For example,
there is a file representing kinematics, a file for hits etc. Assembly and
disassembly of data needed for I/O, in this scheme of things, is done
in respective Loaders (see the class reference).