Iguana
Implementation Guardian of Analysis Algorithms
Loading...
Searching...
No Matches
Iguana

Iguana API Documentation

This documentation shows how to use the Iguana classes. For additional documentation and examples, see the main README

Example Analysis Code

To see Iguana algorithms used in the context of analysis code, see:

Algorithms

An Iguana algorithm is a function that maps input HIPO bank data to output data. The available algorithms are:

The algorithm types are defined based on what they do to HIPO bank data:

Filter Remove rows of a bank based on some bool condition
Transformer Transform (mutate) elements of a bank
Creator Create a new bank

Common Functions

All algorithms have the following functions, which may be used in analysis code that uses the HIPO C++ API; for analysis code that does not, skip to the Action Functions section.

iguana::Algorithm::Start Run before event processing
iguana::Algorithm::Run Run for every event
iguana::Algorithm::Stop Run after event processing

Action Functions

The action functions do the real work of the algorithm, and are meant to be easily callable from any analysis, even if HIPO banks are not directly used. These functions are unique to each algorithm, so view the algorithm documentation for details, or browse the full list:

The action functions have types that correspond to the algorithm types. Furthermore, some action functions can only be useful if all of the rows of a bank are included in its inputs, which motivates the following additional classification:

Scalar All inputs and outputs are scalar quantities (single values). This type of function may be used on a single bank row.
Vector All inputs and outputs are vector quantities (lists of values). This type of action function needs values from all of the bank rows.
Mixed Inputs and outputs are scalar or vector quantities.

To maximize compatibility with user analysis code, these functions are overloaded, e.g., for every scalar function there is a corresponding vector function that calls it on each element of its input vectors.