Iguana 0.0.0
Implementation Guardian of Analysis Algorithms

This documentation shows how to use the Iguana algorithms.
For more documentation, see
To see Iguana algorithms used in the context of analysis code, with various languages and use cases, see:
NOTE: If you're not familiar with Iguana, please read the sections below first.
Iguana algorithms are in C++; to use Iguana with other languages, see:
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 
Most algorithms are configurable:
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 
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.