Iguana 1.0.0
Implementation Guardian of Analysis Algorithms
Loading...
Searching...
No Matches
iguana::clas12::rga::MomentumCorrection Class Reference

#include <Algorithm.h>

Detailed Description

Algorithm: Momentum Corrections

Input and Output Banks:
See Run function(s) for the banks that are processed by this algorithm.
Type: Transformer
This algorithm will change values within input bank(s).

Adapted from https://clasweb.jlab.org/wiki/index.php/CLAS12_Momentum_Corrections#tab=Correction_Code

Definition at line 11 of file Algorithm.h.

Public Member Functions

double CorrectionInbending (vector_element_t const px, vector_element_t const py, vector_element_t const pz, int const sec, int const pid) const
 Action Function: Calculate the correction factor for inbending data
double CorrectionOutbending (vector_element_t const px, vector_element_t const py, vector_element_t const pz, int const sec, int const pid) const
 Action Function: Calculate the correction factor for outbending data
double EnergyLossInbending (vector_element_t const px, vector_element_t const py, vector_element_t const pz, int const pid) const
 Action Function: Energy loss correction for inbending data
double EnergyLossOutbending (vector_element_t const px, vector_element_t const py, vector_element_t const pz, int const pid) const
 Action Function: Energy loss correction for outbending data
bool Run (hipo::bank &particleBank, hipo::bank const &sectorBank, hipo::bank const &configBank) 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
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.
Momentum3 Transform (vector_element_t const px, vector_element_t const py, vector_element_t const pz, int const sec, int const pid, float const torus) const
 Action Function: Apply the momentum correction
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)

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< Loggerm_log
 Logger instance for this object
std::string m_name
 The name of this object.
Inheritance diagram for iguana::clas12::rga::MomentumCorrection:
Inheritance graph

Member Function Documentation

◆ CorrectionInbending()

double iguana::clas12::rga::MomentumCorrection::CorrectionInbending ( vector_element_t const px,
vector_element_t const py,
vector_element_t const pz,
int const sec,
int const pid ) const

Action Function: Calculate the correction factor for inbending data

Function Type
scalar creator
Parameters
px\(p_x\)
py\(p_y\)
pz\(p_z\)
secthe sector
pidthe particle PDG
Returns
the correction factor

◆ CorrectionOutbending()

double iguana::clas12::rga::MomentumCorrection::CorrectionOutbending ( vector_element_t const px,
vector_element_t const py,
vector_element_t const pz,
int const sec,
int const pid ) const

Action Function: Calculate the correction factor for outbending data

Function Type
scalar creator
Parameters
px\(p_x\)
py\(p_y\)
pz\(p_z\)
secthe sector
pidthe particle PDG
Returns
the correction factor

◆ EnergyLossInbending()

double iguana::clas12::rga::MomentumCorrection::EnergyLossInbending ( vector_element_t const px,
vector_element_t const py,
vector_element_t const pz,
int const pid ) const

Action Function: Energy loss correction for inbending data

Function Type
scalar creator
Parameters
px\(p_x\)
py\(p_y\)
pz\(p_z\)
pidthe particle PDG
Returns
the correction factor

◆ EnergyLossOutbending()

double iguana::clas12::rga::MomentumCorrection::EnergyLossOutbending ( vector_element_t const px,
vector_element_t const py,
vector_element_t const pz,
int const pid ) const

Action Function: Energy loss correction for outbending data

Function Type
scalar creator
Parameters
px\(p_x\)
py\(p_y\)
pz\(p_z\)
pidthe particle PDG
Returns
the correction factor

◆ Run() [1/2]

bool iguana::clas12::rga::MomentumCorrection::Run ( hipo::bank & particleBank,
hipo::bank const & sectorBank,
hipo::bank const & configBank ) const

Run Function: Process an event's hipo::bank objects

The parameter list explains which banks are input ("in"), output ("out"), or both ("in,out").

Parameters
[in,out]particleBankREC::Particle; the momenta will be corrected
[in]sectorBankREC::Particle::Sector, from SectorFinder
[in]configBankRUN::config
Returns
true, i.e., this Run function does not provide an event-level filter

◆ Run() [2/2]

bool iguana::clas12::rga::MomentumCorrection::Run ( hipo::banklist & banks) const
overridevirtual

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.

◆ Start()

void iguana::clas12::rga::MomentumCorrection::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::rga::MomentumCorrection::Stop ( )
overridevirtual

Finalize this algorithm after all events are processed.

Implements iguana::Algorithm.

◆ Transform()

Momentum3 iguana::clas12::rga::MomentumCorrection::Transform ( vector_element_t const px,
vector_element_t const py,
vector_element_t const pz,
int const sec,
int const pid,
float const torus ) const

Action Function: Apply the momentum correction

Function Type
scalar transformer
Parameters
px\(p_x\)
py\(p_y\)
pz\(p_z\)
secthe sector
pidthe particle PDG
torustorus setting
Returns
the transformed momentum

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