![]() |
Iguana 0.8.0
Implementation Guardian of Analysis Algorithms
|
#include <Algorithm.h>
Algorithm: Filter the REC::Particle bank by applying DC (drift chamber) and ECAL (electromagnetic calorimeter) fiducial cuts
Currently these are the "legacy" Pass 1 fiducial cuts tuned for Run Group A.
Input Banks | REC::Particle, RUN::config, and others (see below) |
Output Banks | REC::Particle |
The following additional banks are needed:
Name | Type | Description |
---|---|---|
pass | int | cook type to use for assigning fiducial cuts |
pcal_electron_cut_level | string | cut level for PCAL homogeneous cuts for electrons and positrons, one of: loose, medium, tight |
pcal_photon_cut_level | string | cut level for PCAL homogeneous cuts for photons, one of: loose, medium, tight |
enable_pcal_cuts | int | enable (1) or disable (0) PCAL cuts |
enable_dc_cuts | int | enable (1) or disable (0) DC cuts |
Definition at line 28 of file Algorithm.h.
Public Types | |
enum | CutLevel { loose , medium , tight } |
cut levels, currently only used for PCAL cuts More... |
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. | |
bool | FilterRgaPass1 (int const pcal_sector, float const pcal_lv, float const pcal_lw, bool const pcal_found, int const dc_sector, float const dc_r1_x, float const dc_r1_y, float const dc_r1_z, bool const dc_r1_found, float const dc_r2_x, float const dc_r2_y, float const dc_r2_z, bool const dc_r2_found, float const dc_r3_x, float const dc_r3_y, float const dc_r3_z, bool const dc_r3_found, float const torus, int const pid) const |
Action Function: top-level fiducial cut for RG-A Pass 1 | |
bool | FilterPcalHomogeneous (int const pcal_sector, float const lv, float const lw, float const torus, int const pid) const |
Action Function: EC hit position homogeneous cut on lv and lw | |
bool | FilterDcXY (int const dc_sector, float const r1_x, float const r1_y, float const r1_z, float const r2_x, float const r2_y, float const r2_z, float const r3_x, float const r3_y, float const r3_z, float const torus, int const pid) const |
Action Function: filter using DC XY fiducial cut | |
bool | FilterDcThetaPhi (int const dc_sector, float const r1_x, float const r1_y, float const r1_z, float const r2_x, float const r2_y, float const r2_z, float const r3_x, float const r3_y, float const r3_z, float const torus, int const pid) const |
Action Function: filter using DC theta-phi fiducial cut | |
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) 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< Logger > | m_log |
Logger instance for this object |
cut levels, currently only used for PCAL cuts
Definition at line 36 of file Algorithm.h.
bool iguana::clas12::FiducialFilter::FilterDcThetaPhi | ( | int const | dc_sector, |
float const | r1_x, | ||
float const | r1_y, | ||
float const | r1_z, | ||
float const | r2_x, | ||
float const | r2_y, | ||
float const | r2_z, | ||
float const | r3_x, | ||
float const | r3_y, | ||
float const | r3_z, | ||
float const | torus, | ||
int const | pid ) const |
Action Function: filter using DC theta-phi fiducial cut
dc_sector | DC sector |
r1_x | DC region 1 x |
r1_y | DC region 1 y |
r1_z | DC region 1 z |
r2_x | DC region 2 x |
r2_y | DC region 2 y |
r2_z | DC region 2 z |
r3_x | DC region 3 x |
r3_y | DC region 3 y |
r3_z | DC region 3 z |
torus | the torus magnetic field sign |
pid | the PDG of the particle |
bool iguana::clas12::FiducialFilter::FilterDcXY | ( | int const | dc_sector, |
float const | r1_x, | ||
float const | r1_y, | ||
float const | r1_z, | ||
float const | r2_x, | ||
float const | r2_y, | ||
float const | r2_z, | ||
float const | r3_x, | ||
float const | r3_y, | ||
float const | r3_z, | ||
float const | torus, | ||
int const | pid ) const |
Action Function: filter using DC XY fiducial cut
dc_sector | DC sector |
r1_x | DC region 1 x |
r1_y | DC region 1 y |
r1_z | DC region 1 z |
r2_x | DC region 2 x |
r2_y | DC region 2 y |
r2_z | DC region 2 z |
r3_x | DC region 3 x |
r3_y | DC region 3 y |
r3_z | DC region 3 z |
torus | the torus magnetic field sign |
pid | the PDG of the particle |
bool iguana::clas12::FiducialFilter::FilterPcalHomogeneous | ( | int const | pcal_sector, |
float const | lv, | ||
float const | lw, | ||
float const | torus, | ||
int const | pid ) const |
Action Function: EC hit position homogeneous cut on lv and lw
pcal_sector | PCAL sector |
lv | PCAL lv |
lw | PCAL lw |
torus | the torus magnetic field sign |
pid | the PDG of the particle |
bool iguana::clas12::FiducialFilter::FilterRgaPass1 | ( | int const | pcal_sector, |
float const | pcal_lv, | ||
float const | pcal_lw, | ||
bool const | pcal_found, | ||
int const | dc_sector, | ||
float const | dc_r1_x, | ||
float const | dc_r1_y, | ||
float const | dc_r1_z, | ||
bool const | dc_r1_found, | ||
float const | dc_r2_x, | ||
float const | dc_r2_y, | ||
float const | dc_r2_z, | ||
bool const | dc_r2_found, | ||
float const | dc_r3_x, | ||
float const | dc_r3_y, | ||
float const | dc_r3_z, | ||
bool const | dc_r3_found, | ||
float const | torus, | ||
int const | pid ) const |
Action Function: top-level fiducial cut for RG-A Pass 1
pcal_sector | PCAL sector |
pcal_lv | PCAL lv |
pcal_lw | PCAL lw |
pcal_found | if PCAL info exists for this particle, this should be true |
dc_sector | DC sector |
dc_r1_x | DC region 1 x |
dc_r1_y | DC region 1 y |
dc_r1_z | DC region 1 z |
dc_r1_found | if DC region 1 info exists for this particle, this should be true |
dc_r2_x | DC region 2 x |
dc_r2_y | DC region 2 y |
dc_r2_z | DC region 2 z |
dc_r2_found | if DC region 2 info exists for this particle, this should be true |
dc_r3_x | DC region 3 x |
dc_r3_y | DC region 3 y |
dc_r3_z | DC region 3 z |
dc_r3_found | if DC region 3 info exists for this particle, this should be true |
torus | the torus magnetic field sign |
pid | the PDG of the particle |
|
overridevirtual |
Run this algorithm for an event.
banks | the list of banks to process |
Implements iguana::Algorithm.
|
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.