Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
AthExThinning Package
Author
Sebastien Binet

Introduction

This package serves both as an example on how to perform data thinning and as a unit test, making sure everything is working as planned. It consists of 3 algorithms explaining how to perform thinning of DataVector containers as a possible way of reducing disk size of a given dataset.

Class Overview

The AthExThinning package contains the following transient data classes:

Then, a set of according persistent classes (ie: classes whose layout is optimized to be written on disk) have also been collected into this package:

  • AthExParticles_p1 : the persistent representation of the AthExParticles. There is no "rocket science" in this persistent representation (from a technical point of view), it is mostly to exercise the transient/persistent separation of data classes.
  • AthExDecay_p1 : the persistent representation of the AthExDecay data class. Same comment as above holds.
  • AthExElephantino_p1 : the persistent representation of the AthExElephantino transient data class.

Finally, there are 3 algorithms manipulating the above transient data classes :

The other classes are the usual boiler plate needed to implement the transient/persistent separation: T/P serializers and AthenaPOOL converters. They are implementation details as far as this package is concerned.

Note however that only T/P separated classes can make use of the thinning process as it relies on the T/P separation of the ElementLink to correct the persistent index (to the element in the persistent container) with the according offset, reflecting the removal of elements.