Discussion:
Piotr. How do you use your approach for several detectors?
Yves. For every detector you can use a task
What is the main difference: we have only one event (one gAlice object
in the memory) We have only one getter.
The runLoader is unique, and the DetectorLoaders are provided by each
detector.
The two approaches are similar, but the NewIO is somehow
redundant. There is some things which cannot be done easily in the
Piotr's approach. The problem was when the hits want to access the
geometry. Poitr tried to use a fixed names in order to solve it (a
folder name where you can get the information).
If we fix the folder names and use only one gAlice, then the two
approaches are very similar. In this case probably one can avoid the
storage of folders.
What is wrong with the storage of folders? It gives you a possibility
to change for example the simulation. The overhead is negligible.
Yves. The schema should do only the minimal set of required things,
and everything one might imagine.
Jiri. If the only question is the redundancy, then it is not very
important, we already have a lot of redundant information.
The Piotr's approach allows to change of the folder names, but the
default system is similar.
The NewIO has possibility for many event headers in the folder, which
is not the case in the PHOS approach.
PHOS NewIO
EV: EV1:
- Eheader - Eheader
- SDigits1 - SDigits
- SDigits2 - Hits
- Hits - Digits
- Digits EV2:
- Eheader
- SDigits
- Digits
- Hits
Marian: In case of NewIO it is easier to access events and the
question of cleaning is easier.
Predrag: The NewIO also has better separation between the data
structure and algorithm.
Mixing is when you take tracks from several events to produce an
uncorrelated background event. It is need for the analysis of HBT and
fluctuations. When you do physics, you know what you mix with what
you mix.
Merging is the adding of signal events to a background event. At the
level of merging both approaches have the same features.
The HBT analysis is independent from the IO structure.
The mixing probably will be done at the level ESD. The PHOS approach
is you load data from the first event and select what you need, then
Do we need two complete event structure (not full events) in the memory?
Andreas. Having two headers is good for sanity checks, for the TPC you
can compare the time structure, combine beam halo and end central
event, etc.
Nico. Analysis point of view. The first (PHOS) schema is more clear,
even if the second (Piotr) has probably some advantages in certain
cases.
Yves: the analysis and the IO should be separated. The whole
complexity has to be avoided, and the PHOS approach is simpler.
Federico. Proposed a working session between the experts in order to
converge on the NewIO pending questions.
The work group decided to produce the requirements and the use cases
for the IO:
Requirements:
- single and split files (trees/files)
- single and multiple detector
- access more than one event
- access to all levels of the data structure
- load data on demand (file -> memory)
Use cases
- Digitization (needs Header, Geometry/Field, Hit data)
- Merging
- Reconstruction
- Analysis
- Mixing
New IO approach
File Structure <-> RunLoader <-> Digitizer
Both approaches can meet the requirements.
The PHOS approach is still to be generalized, while the NewIO is
already general enough.
From a design point of view the hiding of the way we use the file
structure is good.
The work of the interface should continue.