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

#include <Algorithm.h>

Detailed Description

Algorithm: Momentum Corrections

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

Algorithm Name:
   clas12::MomentumCorrection
Algorithm Type:
Transformer
Algorithm Inputs and Outputs:
Input BanksRUN::config, REC::Particle, REC::Particle::Sector
Output BanksREC::Particle

Definition at line 16 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.
 
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
 
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
 
- 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::MomentumCorrection:
Inheritance graph

Member Function Documentation

◆ CorrectionInbending()

double iguana::clas12::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::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::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::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()

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

Finalize this algorithm after all events are processed.

Implements iguana::Algorithm.

◆ Transform()

Momentum3 iguana::clas12::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: