Processing math: 100%
Iguana 0.8.0
Implementation Guardian of Analysis Algorithms
All Classes Namespaces Files Functions Variables Typedefs Enumerations Macros Modules Pages
iguana::physics::InclusiveKinematics Class Reference

#include <Algorithm.h>

Detailed Description

Algorithm: Calculate inclusive kinematics quantities

Algorithm Name:
   physics::InclusiveKinematics
Algorithm Type:
Creator
Algorithm Inputs and Outputs:
Input BanksREC::Particle, RUN::config
Output Banksphysics::InclusiveKinematics
Configuration Options:
YAML configuration, which includes the default option values:
physics::InclusiveKinematics:
initial_state:
- default:
beam_direction: [ 0.0, 0.0, 1.0 ]
target_particle: proton
method:
beam_particle: electron
reconstruction: scattered_lepton
lepton_finder: highest_energy_FD_trigger
Table of options and descriptions:
NameTypeDescription
beam_directionlist[double]beam direction vector
target_particlestringtarget particle
beam_particlestringbeam particle
reconstructionstringkinematics reconstruction method; only scattered_lepton is available at this time
lepton_finderstringalgorithm to find the scattered lepton; only highest_energy_FD_trigger is available at this time

This algorithm creates a new bank and its definition is found within the Iguana Bank Definitions JSON File

  • For guidance on how to read this JSON file, see documentation on created banks.
  • See also the return value type of this algorithm's action functions, which may be structs with the same set of variables as the created bank.

Definition at line 26 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.
 
concurrent_key_t PrepareEvent (int const runnum, double const beam_energy=-1) const
 Action Function: prepare the event
 
InclusiveKinematicsVars ComputeFromLepton (vector_element_t const lepton_px, vector_element_t const lepton_py, vector_element_t const lepton_pz, concurrent_key_t const key) const
 Action Function: compute kinematics from the scattered lepton.
 
- 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< Loggerm_log
 Logger instance for this object
 
Inheritance diagram for iguana::physics::InclusiveKinematics:
Inheritance graph

Member Function Documentation

◆ ComputeFromLepton()

InclusiveKinematicsVars iguana::physics::InclusiveKinematics::ComputeFromLepton ( vector_element_t const lepton_px,
vector_element_t const lepton_py,
vector_element_t const lepton_pz,
concurrent_key_t const key ) const

Action Function: compute kinematics from the scattered lepton.

Function Type
scalar creator
Parameters
lepton_pxscattered lepton momentum component p_x (GeV)
lepton_pyscattered lepton momentum component p_y (GeV)
lepton_pzscattered lepton momentum component p_z (GeV)
keythe return value of PrepareEvent
Returns
the reconstructed inclusive kinematics in a iguana::physics::InclusiveKinematicsVars instance

◆ PrepareEvent()

concurrent_key_t iguana::physics::InclusiveKinematics::PrepareEvent ( int const runnum,
double const beam_energy = -1 ) const

Action Function: prepare the event

Function Type
reload
Note
This function should be called for each event
Parameters
runnumthe run number
beam_energythe beam energy; if negative (the default), RCDB will be used to get the beam energy from runnum
Returns
the key to be used in ComputeFromLepton

◆ Run()

void iguana::physics::InclusiveKinematics::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::physics::InclusiveKinematics::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::physics::InclusiveKinematics::Stop ( )
overridevirtual

Finalize this algorithm after all events are processed.

Implements iguana::Algorithm.


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