|  | Iguana 1.0.0
    Implementation Guardian of Analysis Algorithms | 
#include <Algorithm.h>
Algorithm: Find the sector for all rows in REC::Particle
| Name | Type | Description | 
|---|---|---|
| bank_charged | string | if not default, use this bank for sector finding of charged particles | 
| bank_neutral | string | if not default, use this bank for sector finding of neutral particles | 
If bank_charged and/or bank_neutral is default, then all of the following banks are needed, in addition to REC::Particle:
Otherwise only the bank(s) specified by bank_charged and bank_neutral is/are needed, if both of them are non-default.
If the sector cannot be determined, the value UNKNOWN_SECTOR will be used instead.
The action function ::GetStandardSector identifies the sector(s) using these banks in a priority order, whereas the action function ::GetSector uses a single bank's data. Note: rows that have been filtered out of REC::Particle will still have their sectors determined.
Definition at line 29 of file Algorithm.h.
| Public Member Functions | |
| void | GetListsSectorPindex (hipo::bank const &bank, std::vector< int > §ors, std::vector< int > &pindices) const | 
| int | GetSector (std::vector< int > const §ors, std::vector< int > const &pindices, int const &pindex_particle) const | 
| Action Function: for a given particle with index pindex_particle, get its sector from a detector bank's list of sectors and pindices (both must be ordered in the same way) | |
| int | GetStandardSector (std::vector< int > const §ors_track, std::vector< int > const &pindices_track, std::vector< int > const §ors_cal, std::vector< int > const &pindices_cal, std::vector< int > const §ors_scint, std::vector< int > const &pindices_scint, int const &pindex_particle) const | 
| Action Function: for a given particle with index pindex_particle, get its sector from using the standard method | |
| std::vector< int > | GetStandardSector (std::vector< int > const §ors_track, std::vector< int > const &pindices_track, std::vector< int > const §ors_cal, std::vector< int > const &pindices_cal, std::vector< int > const §ors_scint, std::vector< int > const &pindices_scint, std::vector< int > const &pindices_particle) const | 
| Action Function: get sectors for all particles, using the standard method | |
| bool | Run (hipo::bank const &particleBank, hipo::bank const &trackBank, hipo::bank const &calBank, hipo::bank const &scintBank, hipo::bank &resultBank) const | 
| Run Function: Process an event's hipo::bank objects | |
| bool | Run (hipo::banklist &banks) const override | 
| Run Function: Process an event's hipo::banklist | |
| bool | RunWithCustomBanks (hipo::bank const &particleBank, hipo::bank const &userChargedBank, hipo::bank const &userNeutralBank, hipo::bank &resultBank) const | 
| Run Function: Process an event's hipo::bank objects | |
| bool | RunWithCustomChargedBank (hipo::bank const &particleBank, hipo::bank const &trackBank, hipo::bank const &calBank, hipo::bank const &scintBank, hipo::bank const &userChargedBank, hipo::bank &resultBank) const | 
| Run Function: Process an event's hipo::bank objects | |
| bool | RunWithCustomNeutralBank (hipo::bank const &particleBank, hipo::bank const &trackBank, hipo::bank const &calBank, hipo::bank const &scintBank, hipo::bank const &userNeutralBank, hipo::bank &resultBank) const | 
| Run Function: Process an event's hipo::bank objects | |
| 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) | |
| std::unique_ptr< YAMLReader > const & | GetConfig () const | 
| hipo::bank | GetCreatedBank (std::string const &bank_name="") 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) | 
| 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 | 
| 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 | |
| std::unique_ptr< Logger > & | GetLog () | 
| std::string | GetName () const | 
| std::unique_ptr< Logger > & | Log () | 
| Object (std::string_view name="", Logger::Level lev=Logger::DEFAULT_LEVEL) | |
| void | SetLogLevel (Logger::Level const lev) | 
| void | SetLogLevel (std::string_view lev) | 
| void | SetName (std::string_view name) | 
| Static Public Attributes | |
| static int const | UNKNOWN_SECTOR = -1 | 
| if this algorithm cannot determine the sector, this value will be used | |
| 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) const noexcept(false) | 
| 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) | 
| 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 | ThrowSinceRenamed (std::string const &new_name, std::string const &version) const noexcept(false) | 
| Protected Attributes inherited from iguana::Algorithm | |
| std::string | m_class_name | 
| Class name of this algorithm. | |
| std::string | m_default_config_file | 
| Default configuration file name. | |
| std::mutex | m_mutex | 
| A mutex for 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 | o_user_config_dir | 
| std::string | o_user_config_file | 
| Protected Attributes inherited from iguana::Object | |
| std::unique_ptr< Logger > | m_log | 
| Logger instance for this object | |
| std::string | m_name | 
| The name of this object. | |

| 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
| bank | bank from which to get lists of sectors and pindices | 
| sectors | list to fill with sectors in the bank | 
| pindices | list to fill with pindices in the bank | 
| int iguana::clas12::SectorFinder::GetSector | ( | std::vector< int > const & | sectors, | 
| std::vector< int > const & | pindices, | ||
| int const & | pindex_particle ) const | 
Action Function: for a given particle with index pindex_particle, get its sector from a detector bank's list of sectors and pindices (both must be ordered in the same way)
| sectors | list of sectors in a detector bank | 
| pindices | list of pindices in a detector bank | 
| pindex_particle | index in REC::Particle bank for which to get sector | 
| int iguana::clas12::SectorFinder::GetStandardSector | ( | std::vector< int > const & | sectors_track, | 
| std::vector< int > const & | pindices_track, | ||
| std::vector< int > const & | sectors_cal, | ||
| std::vector< int > const & | pindices_cal, | ||
| std::vector< int > const & | sectors_scint, | ||
| std::vector< int > const & | pindices_scint, | ||
| int const & | pindex_particle ) const | 
Action Function: for a given particle with index pindex_particle, get its sector from using the standard method
The following detectors' banks will be searched in order, and once the sector is found for any detector, it is returned:
| sectors_track | list of sectors in REC::Track | 
| pindices_track | list of pindices in REC::Track | 
| sectors_cal | list of sectors in REC::Calorimeter | 
| pindices_cal | list of pindices in REC::Calorimeter | 
| sectors_scint | list of sectors in REC::Scintillator | 
| pindices_scint | list of pindices in REC::Scintillator | 
| pindex_particle | index in REC::Particle bank for which to get sector | 
| std::vector< int > iguana::clas12::SectorFinder::GetStandardSector | ( | std::vector< int > const & | sectors_track, | 
| std::vector< int > const & | pindices_track, | ||
| std::vector< int > const & | sectors_cal, | ||
| std::vector< int > const & | pindices_cal, | ||
| std::vector< int > const & | sectors_scint, | ||
| std::vector< int > const & | pindices_scint, | ||
| std::vector< int > const & | pindices_particle ) const | 
Action Function: get sectors for all particles, using the standard method
| sectors_track | list of sectors in REC::Track | 
| pindices_track | list of pindices in REC::Track | 
| sectors_cal | list of sectors in REC::Calorimeter | 
| pindices_cal | list of pindices in REC::Calorimeter | 
| sectors_scint | list of sectors in REC::Scintillator | 
| pindices_scint | list of pindices in REC::Scintillator | 
| pindices_particle | the REC::Particle list of pindices | 
| 
 | inline | 
Run Function: Process an event's hipo::bank objects
The parameter list explains which banks are input ("in"), output ("out"), or both ("in,out").
uses track, calorimeter, and scintillator banks for both charged and neutral particles
| [in] | particleBank | REC::Particle | 
| [in] | trackBank | REC::Track | 
| [in] | calBank | REC::Calorimeter | 
| [in] | scintBank | REC::Scintillator | 
| [out] | resultBank | the output REC::Particle::Sector bank | 
Definition at line 52 of file Algorithm.h.
| 
 | overridevirtual | 
Run Function: Process an event's hipo::banklist
| banks | the list of banks to process | 
Implements iguana::Algorithm.
| 
 | inline | 
Run Function: Process an event's hipo::bank objects
The parameter list explains which banks are input ("in"), output ("out"), or both ("in,out").
uses custom banks for both charged and neutral particles
| [in] | particleBank | REC::Particle | 
| [in] | userChargedBank | custom bank used to obtain charged-particles' sectors | 
| [in] | userNeutralBank | custom bank used to obtain neutral-particles' sectors | 
| [out] | resultBank | the output REC::Particle::Sector bank | 
Definition at line 112 of file Algorithm.h.
| 
 | inline | 
Run Function: Process an event's hipo::bank objects
The parameter list explains which banks are input ("in"), output ("out"), or both ("in,out").
uses track, calorimeter, and scintillator banks for neutral particles, and a custom bank for charged particles
| [in] | particleBank | REC::Particle | 
| [in] | trackBank | REC::Track | 
| [in] | calBank | REC::Calorimeter | 
| [in] | scintBank | REC::Scintillator | 
| [in] | userChargedBank | custom bank used to obtain charged-particles' sectors | 
| [out] | resultBank | the output REC::Particle::Sector bank | 
Definition at line 72 of file Algorithm.h.
| 
 | inline | 
Run Function: Process an event's hipo::bank objects
The parameter list explains which banks are input ("in"), output ("out"), or both ("in,out").
uses track, calorimeter, and scintillator banks for charged particles, and a custom bank for neutral particles
| [in] | particleBank | REC::Particle | 
| [in] | trackBank | REC::Track | 
| [in] | calBank | REC::Calorimeter | 
| [in] | scintBank | REC::Scintillator | 
| [in] | userNeutralBank | custom bank used to obtain neutral-particles' sectors | 
| [out] | resultBank | the output REC::Particle::Sector bank | 
Definition at line 93 of file Algorithm.h.
| 
 | 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.
| banks | the list of banks this algorithm will use, so that Algorithm::Run can cache the indices of the banks that it needs | 
Implements iguana::Algorithm.
| 
 | overridevirtual | 
Finalize this algorithm after all events are processed.
Implements iguana::Algorithm.
| 
 | static | 
if this algorithm cannot determine the sector, this value will be used
Definition at line 37 of file Algorithm.h.