Iguana 0.0.0
Implementation Guardian of Analysis Algorithms
Loading...
Searching...
No Matches
iguana::clas12::SectorFinder Class Reference

#include <Algorithm.h>

Detailed Description

Algorithm: Find the sector for all rows in REC::Particle

Algorithm Name:
   clas12::SectorFinder
Algorithm Type:
Creator
Algorithm Inputs and Outputs:
Input BanksREC::Particle
Output BanksREC::Particle::Sector
Configuration Options:
NameTypeDescription
bankstringif not default, use this bank for sector finding

Definition at line 17 of file Algorithm.h.

Public Member Functions

void Start (hipo::banklist &banks) override
 Initialize this algorithm before any events are processed, with the intent to process banks
 
void Run (hipo::banklist &banks) const override
 Run this algorithm for an event.
 
void Stop () override
 Finalize this algorithm after all events are processed.
 
int GetSector (std::vector< int > const &sectors, std::vector< int > const &pindices, int const pindex) const
 Action Function: for a given particle with index pindex, get its sector from a detector bank's list of sectors and pindices (both must be ordered in the same way); nb: this is done instead of finding the pindex in the bank directly, to have an action function
 
void GetListsSectorPindex (hipo::bank const &bank, std::vector< int > &sectors, std::vector< int > &pindices) const
 
- Public Member Functions inherited from iguana::Algorithm
 Algorithm (std::string_view name)
 
void Start ()
 Initialize this algorithm before any events are processed, with the intent to process bank rows rather than full banks;.
 
template<typename OPTION_TYPE >
OPTION_TYPE SetOption (std::string const &key, const OPTION_TYPE val)
 
template<typename OPTION_TYPE >
OPTION_TYPE GetOptionScalar (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
 
template<typename OPTION_TYPE >
std::set< OPTION_TYPE > GetOptionSet (std::string const &key, YAMLReader::node_path_t node_path={}) const
 
void SetName (std::string_view name)
 
std::unique_ptr< YAMLReader > const & GetConfig () const
 
void SetConfig (std::unique_ptr< YAMLReader > &&yaml_config)
 
void SetConfigFile (std::string const &name)
 
void SetConfigDirectory (std::string const &name)
 
- Public Member Functions inherited from iguana::Object
 Object (std::string_view name="", Logger::Level lev=Logger::DEFAULT_LEVEL)
 
std::unique_ptr< Logger > & Log ()
 
void SetName (std::string_view name)
 
std::string GetName () const
 
void SetLogLevel (std::string_view lev)
 
void SetLogLevel (Logger::Level const lev)
 
std::unique_ptr< Logger > & GetLog ()
 

Additional Inherited Members

- Protected Member Functions inherited from iguana::Algorithm
void ParseYAMLConfig ()
 Parse YAML configuration files. Sets m_yaml_config.
 
hipo::bank & GetBank (hipo::banklist &banks, hipo::banklist::size_type const idx, std::string const &expected_bank_name="") const noexcept(false)
 
hipo::banklist::size_type GetBankIndex (hipo::banklist &banks, std::string const &bank_name) const noexcept(false)
 
hipo::schema CreateBank (hipo::banklist &banks, hipo::banklist::size_type &bank_idx, std::string const &bank_name, std::vector< std::string > schema_def, int group_id, int item_id) const noexcept(false)
 
void ShowBanks (hipo::banklist &banks, std::string_view message="", Logger::Level const level=Logger::trace) const
 
void ShowBank (hipo::bank &bank, std::string_view message="", Logger::Level const level=Logger::trace) const
 
template<typename OPTION_TYPE >
std::optional< OPTION_TYPE > GetCachedOption (std::string const &key) const
 
- Protected Attributes inherited from iguana::Algorithm
std::string m_class_name
 Class name of this algorithm.
 
bool m_rows_only
 If true, algorithm can only operate on bank rows; Algorithm::GetBank, and therefore Algorithm::Run, cannot be called.
 
std::string m_default_config_file
 Default configuration file name.
 
std::string o_user_config_file
 
std::string o_user_config_dir
 
std::mutex m_mutex
 A mutex for this algorithm.
 
- Protected Attributes inherited from iguana::Object
std::string m_name
 The name of this object.
 
std::unique_ptr< Loggerm_log
 Logger instance for this object
 
Inheritance diagram for iguana::clas12::SectorFinder:
Inheritance graph

Member Function Documentation

◆ GetListsSectorPindex()

void iguana::clas12::SectorFinder::GetListsSectorPindex ( hipo::bank const & bank,
std::vector< int > & sectors,
std::vector< int > & pindices ) const

fill lists of sectors and pindices present in the input bank

Parameters
bankbank from which to get lists of sectors and pindices
sectorslist to fill with sectors in the bank
pindiceslist to fill with pindices in the bank

◆ GetSector()

int iguana::clas12::SectorFinder::GetSector ( std::vector< int > const & sectors,
std::vector< int > const & pindices,
int const pindex ) const

Action Function: for a given particle with index pindex, get its sector from a detector bank's list of sectors and pindices (both must be ordered in the same way); nb: this is done instead of finding the pindex in the bank directly, to have an action function

Function Type
vector creator

Example:

//... Initialise algorithms & banks ...
//For each event, do:
std::vector<int> sectors;
std::vector<int> pindices
//bank is a hipo::bank object from which we want to get the sectors
//for example the bank object related to REC::Calorimeter
for(auto const& row : bank.getRowList()) {
int det=bank.getInt("detector",row);
//NB: you should check you read from an FD detector
// eg det 7 is the ECAL
if(det==7){
sectors.push_back(bank.getInt("sector", row));
pindices.push_back(bank.getShort("pindex", row));
}
}
//partbank is a hipo::bank object related to REC::Particle
//algo_sector_finder is the iguana::clas12::SectorFinder object
for(auto const& row : partbank.getRowList()) {
int sector = algo_sector_finder.GetSector(sectors, pindices, row);
}
Parameters
sectorslist of sectors in a detector bank
pindiceslist of pindices in a detector bank
pindexindex in REC::Particle bank for which to get sector
Returns
sector for pindex in list, -1 if pindex not in inputted list

◆ Run()

void iguana::clas12::SectorFinder::Run ( hipo::banklist & banks) const
overridevirtual

Run this algorithm for an event.

Parameters
banksthe list of banks to process

Implements iguana::Algorithm.

◆ Start()

void iguana::clas12::SectorFinder::Start ( hipo::banklist & banks)
overridevirtual

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.

◆ Stop()

void iguana::clas12::SectorFinder::Stop ( )
overridevirtual

Finalize this algorithm after all events are processed.

Implements iguana::Algorithm.


The documentation for this class was generated from the following file: