Skip to content

simonepigazzini/DynamicTTree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DynamicTTreeReader

This class is an interface to any ROOT TTree. It aims to ease the access of an existing TTree: the user needs only to define a set of precompiler variables containing the branches to be accessed (and their respective types).

The interface will be created by a set of precompiler macros in the form of a Class from which one can access the TTree branches.

A set of methods is also defined in order to provide a simple way to handle iteration over all the TTree entries.

How to define a new interface:

  • Include the DTR header file:
    #include "interface/DynamicTTreeReader.h"
        
  • define the name of the interface class and the set of branches:
    #define DYNAMIC_TREE_NAME DynamicTTreeReader
    
    #define DATA_TABLE                              \
    DATA(int, i)                                    \
    DATA(float, f)
    
    #define DATA_VECT_TABLE                         \
    DATA(int, vi, i)
    
    #define DATA_CLASS_TABLE                        \
    DATA(std::string, s)
        
  • include the precompiler macros to generate the class body and methods: the following line must be placed below the branches definition
    #include "src/DynamicTTreeReader.cc"
        
  • test/DTR_SimpleExample.cpp contains a working example.

Branches type

Following the different ways in which basic type variables, c-arrays and classes are handled inside the ROOT TTree class there are three different types of branches definition:

  • DATA_TABLE(type, name): for basic type branches.
  • DATA_VECT_TABLE(type, name, size): for c-arrays.
  • DATA_CLASS_TABLE(class, name): for c++ classes.

About

Interface for accessing existing ROOT TTrees

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published