Iguana 1.1.0
Implementation Guardian of Analysis Algorithms
Loading...
Searching...
No Matches
iguana::Validator Class Reference

#include <Validator.h>

Detailed Description

Base class for all algorithm validators to inherit from.

Similar to iguana::Algorithm, derived classes should override the methods Validator::Start, Validator::Run and Validator::Stop

Definition at line 21 of file Validator.h.

Public Member Functions

 Validator (std::string_view name="validator")
std::optional< std::string > GetOutputDirectory ()
bool Run (hipo::banklist &banks) const override
 Run Function: Process an event's hipo::banklist
void SetOutputDirectory (std::string_view output_dir)
void Start (hipo::banklist &banks) override
 Initialize this algorithm before any events are processed, with the intent to process banks.
void Stop () override
 Finalize this algorithm after all events are processed.
Public Member Functions inherited from iguana::Algorithm
 Algorithm (std::string_view name)
hipo::banklist::size_type GetBankIndex (hipo::banklist &banks, std::string const &bank_name) const noexcept(false)
std::unique_ptr< YAMLReader > const & GetConfig () const
hipo::bank GetCreatedBank (std::string const &bank_name="") const noexcept(false)
hipo::banklist::size_type GetCreatedBankIndex (hipo::banklist &banks) const noexcept(false)
std::string GetCreatedBankName () const noexcept(false)
std::vector< std::string > GetCreatedBankNames () const noexcept(false)
hipo::schema GetCreatedBankSchema (std::string const &bank_name="") const noexcept(false)
unsigned int GetCreatedBankVariant () const
template<typename OPTION_TYPE>
OPTION_TYPE GetOptionScalar (std::string const &key, YAMLReader::node_path_t node_path={}) const
template<typename OPTION_TYPE>
std::set< OPTION_TYPE > GetOptionSet (std::string const &key, YAMLReader::node_path_t node_path={}) const
template<typename OPTION_TYPE>
std::vector< OPTION_TYPE > GetOptionVector (std::string const &key, YAMLReader::node_path_t node_path={}) const
std::unique_ptr< RCDBReader > & GetRCDBReader ()
void SetConfig (std::unique_ptr< YAMLReader > &&yaml_config)
void SetConfigDirectory (std::string const &name)
void SetConfigFile (std::string const &name)
void SetName (std::string_view name)
template<typename OPTION_TYPE>
OPTION_TYPE SetOption (std::string const &key, const OPTION_TYPE val)
void Start ()
 Initialize this algorithm before any events are processed, with the intent to process bank rows rather than full banks;.
Public Member Functions inherited from iguana::Object
 Object (std::string_view name="", Logger::Level lev=Logger::DEFAULT_LEVEL)
std::unique_ptr< Logger > & GetLog ()
std::string GetName () const
std::unique_ptr< Logger > & Log ()
void SetLogLevel (Logger::Level const lev)
void SetLogLevel (std::string_view lev)
void SetName (std::string_view name)

Protected Attributes

std::unique_ptr< AlgorithmSequencem_algo_seq
 An iguana::AlgorithmSequence to be used for this validator.
std::mutex m_mutex
 Mutex for locking procedures such as histogram filling in Validator::Run.
Protected Attributes inherited from iguana::Algorithm
std::string m_class_name
 Class name of this algorithm.
unsigned int m_created_bank_variant {0}
std::string m_default_config_file
 Default configuration file name.
std::mutex m_mutex
 A mutex for this algorithm.
std::unique_ptr< RCDBReaderm_rcdb
 RCDB reader.
bool m_rows_only
 If true, algorithm can only operate on bank rows; Algorithm::GetBank, and therefore Algorithm::Run, cannot be called.
std::string o_user_config_dir
std::string o_user_config_file
Protected Attributes inherited from iguana::Object
std::unique_ptr< Loggerm_log
 Logger instance for this object
std::string m_name
 The name of this object.

Additional Inherited Members

Protected Member Functions inherited from iguana::Algorithm
hipo::schema CreateBank (hipo::banklist &banks, hipo::banklist::size_type &bank_idx, std::string const &bank_name) noexcept(false)
hipo::bank & GetBank (hipo::banklist &banks, hipo::banklist::size_type const idx, std::string const &expected_bank_name="") const noexcept(false)
template<typename OPTION_TYPE>
std::optional< OPTION_TYPE > GetCachedOption (std::string const &key) const
void ParseYAMLConfig ()
 Parse YAML configuration files. Sets m_yaml_config.
void ShowBank (hipo::bank const &bank, std::string_view message="", Logger::Level const level=Logger::trace) const
void ShowBanks (hipo::banklist const &banks, std::string_view message="", Logger::Level const level=Logger::trace) const
void StartRCDBReader ()
 Instantiate the RCDBReader instance for this algorithm.
void ThrowSinceRenamed (std::string const &new_name, std::string const &version) const noexcept(false)
Inheritance diagram for iguana::Validator:
Inheritance graph

Constructor & Destructor Documentation

◆ Validator()

iguana::Validator::Validator ( std::string_view name = "validator")
inline
Parameters
namethe unique name for a derived class instance

Definition at line 27 of file Validator.h.

◆ ~Validator()

virtual iguana::Validator::~Validator ( )
inlinevirtual

Definition at line 37 of file Validator.h.

Member Function Documentation

◆ GetOutputDirectory()

std::optional< std::string > iguana::Validator::GetOutputDirectory ( )

Get this validator's output directory

Returns
an optional, which is set if the output directory is defined

◆ Run()

bool iguana::Validator::Run ( hipo::banklist & banks) const
inlineoverridevirtual

Run Function: Process an event's hipo::banklist

Parameters
banksthe list of banks to process
Returns
a boolean value, which is typically used to decide whether or not to continue analyzing an event, i.e., it can be used as an event-level filter; not all algorithms use or need this feature; see the algorithm's more specialized Run functions, which have hipo::bank parameters
See also
Specialized Run function(s) above/below; they take individual hipo::bank objects as parameters, and their documentation explains which banks are used by this algorithm and how.

Implements iguana::Algorithm.

Reimplemented in iguana::clas12::ZVertexFilterValidator.

Definition at line 40 of file Validator.h.

◆ SetOutputDirectory()

void iguana::Validator::SetOutputDirectory ( std::string_view output_dir)

Set this validator's output directory

Parameters
output_dirthe output directory

◆ Start()

void iguana::Validator::Start ( hipo::banklist & banks)
inlineoverridevirtual

Initialize this algorithm before any events are processed, with the intent to process banks.

use this method if you intend to use Algorithm::Run.

Parameters
banksthe list of banks this algorithm will use, so that Algorithm::Run can cache the indices of the banks that it needs

Implements iguana::Algorithm.

Reimplemented in iguana::clas12::ZVertexFilterValidator.

Definition at line 39 of file Validator.h.

◆ Stop()

void iguana::Validator::Stop ( )
inlineoverridevirtual

Finalize this algorithm after all events are processed.

Implements iguana::Algorithm.

Reimplemented in iguana::clas12::ZVertexFilterValidator.

Definition at line 41 of file Validator.h.

Member Data Documentation

◆ m_algo_seq

std::unique_ptr<AlgorithmSequence> iguana::Validator::m_algo_seq
protected

An iguana::AlgorithmSequence to be used for this validator.

Definition at line 54 of file Validator.h.

◆ m_mutex

std::mutex iguana::Validator::m_mutex
mutableprotected

Mutex for locking procedures such as histogram filling in Validator::Run.

Definition at line 57 of file Validator.h.


The documentation for this class was generated from the following file:
  • /__w/iguana/iguana/iguana_src/src/iguana/algorithms/Validator.h