Chapter 1. Introduction and motivation.

The first stage of any data analysis is to unpack raw event files into a representation that is used internally by that analysis framework. In SpecTcl, for example, this unpacking typically fills in structs of treeparamteers. For Root, root trees are built and filled.

Without a lot of careful forethought and planning, this has often resulted in experimenters writing completely different unpacking software for Root and SpecTcl. The result is not only extra work but a maintenance problem as event structures evolve.

genx is a system that allows you to specify the structure of your unpacked data in a way that it can be converted into the data structures and executable code needed to support a framework independent unpacker that works regardless of the data analysis environment.

genx provides a data structure compiler that operates in two stages. In the first stage, your data structure is compiled into an internal representation. The second, target specific stage, translates that internal representation into headers and C++ executable code that supports a specific analysis framework. At this time two backends are suported, SpecTcl and CERN/Root.

This documentation is divided into two parts: