The Kanga (Kind ANd Gentle Analysis) Framework

This is an attempt to summarize some of the features of Kanga which are applicable to the MINOS software framework persistency design.

Overview

Kanga [1] was developed for use in the BaBar experiment as an alternative to the standard Objectivity based framework. Kanga is a ROOT based system and makes extensive use of ROOT I/O and data structures.

Principles of Design

Organization of Kanga Data Streams

Unlike PAF, which separates Tag & Aod data into separate TTree's, Kanga Tag & Aod data exist on the same TTree ("microDST"). The Tree has 3 branches to hold the Aod data and header information + an additional set of branches to hold the Tag data. The setup of the Tag branches is as follows: Tag branches can be defined and created "on-the-fly" by the user with a key name that becomes the suffix to the branch name, e.g. keyname ="Etotal" holding a floating point value would be used to create branch named "TAG_f_Etotal". 3 separate THashList's are maintained to keep pointers to the branches of different types and to facilitate rapid lookup of the branches according to their key name.

The breakdown of Aod & Header branches (held in the same Tree as the Tag branches) is:


References:

[1] Kanga Home page

If you have any comments about this page please send them to
Sue Kasahara
Last Updated: September 12, 2000.