Iguana LATEST
Implementation Guardian of Analysis Algorithms
Loading...
Searching...
No Matches
iguana::physics::InclusiveKinematics Class Reference

#include <Algorithm.h>

Detailed Description

Algorithm: Calculate inclusive kinematics quantities

Input and Output Banks:
See Run function(s) for the banks that are processed by this algorithm.
Type: Creator
Configuration Options:
YAML configuration, which includes the default option values:
physics::InclusiveKinematics:
# the name of the particle bank, only used for users of `hipo::banklist`;
# e.g., set it to 'MC::Particle' if you prefer. This bank is used to
# find the scattered lepton
particle_bank: 'REC::Particle'
# beam configuration
initial_state:
- default: # default run range
beam_direction: [ 0.0, 0.0, 1.0 ] # beam direction vector
target_particle: proton # target particle
# kinematics reconstruction method
method:
# beam particle
beam_particle: electron
# reconstruction method:
# - 'scattered_lepton': use the scattered lepton to calculate kinematics
# - no other method is available yet
reconstruction: scattered_lepton
# lepton finder method, used if reconstruction method == 'scattered_lepton':
# - 'highest_energy_FD_trigger': use the highest energy FD trigger electron
# - 'lund_beam_daughter': use 'MC::Lund' parent info; be sure to set
# `particle_bank` to 'MC::Lund' if you are using `hipo::banklist`, or
# use the 'MC::Lund' bank directly in the `Run(hipo::bank&, ...)` function
lepton_finder: highest_energy_FD_trigger
# override the beam energy if > 0, otherwise the default is to use RCDB;
# e.g., use this to set the beam energy for MC data with run number 11
override_beam_energy: -1.0
# this is the theta used to roughly select between FD and FT; it is only
# used for the case where `particle_bank` lacks the `status` variable,
# such as `MC::Particle`
theta_between_FD_and_FT: 5.0 # [deg]
Note
This algorithm uses the RCDB. The RCDB is typically used to access quantities such as beam energy. See iguana::RCDBReader for details; you can access this algorithm's RCDBReader instance by calling GetRCDBReader().

Definition at line 13 of file Algorithm.h.

Public Member Functions

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.
concurrent_key_t PrepareEvent (int const runnum, double const beam_energy=-1) const
 Action Function: prepare the event
bool Run (hipo::bank const &particle_bank, hipo::bank const &config_bank, hipo::bank &result_bank) const
 Run Function: Process an event's hipo::bank objects
Public Member Functions inherited from iguana::Algorithm
 Algorithm (std::string_view name)
hipo::banklist::size_type GetBankIndex (hipo::banklist &banks, std::string const &bank_name) const noexcept(false)
std::unique_ptr< YAMLReader > const & GetConfig () const
hipo::bank GetCreatedBank (std::string const &bank_name="") const noexcept(false)
hipo::banklist::size_type GetCreatedBankIndex (hipo::banklist &banks) 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)
unsigned int GetCreatedBankVariant () const
template<typename OPTION_TYPE>
OPTION_TYPE GetOptionScalar (YAMLReader::node_path_t node_path={}) const
template<typename OPTION_TYPE>
std::set< OPTION_TYPE > GetOptionSet (YAMLReader::node_path_t node_path={}) const
template<typename OPTION_TYPE>
std::vector< OPTION_TYPE > GetOptionVector (YAMLReader::node_path_t node_path={}) const
std::unique_ptr< RCDBReader > & GetRCDBReader ()
virtual bool Run (hipo::banklist &banks) const final
 Run Function: Process an event's hipo::banklist
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)
 Set an option specified by the user.
virtual void Start () final
 Start Function: Initialize this algorithm before any events are processed, with the intent to process either hipo::bank objects or bank rows, rather than full hipo::banklist objects
virtual void Start (hipo::banklist &banks) final
 Start Function: Initialize this algorithm before any events are processed, with the intent to process hipo::banklist objects
virtual void Stop () final
 Stop Function: Finalize this algorithm after all events are processed.
Public Member Functions inherited from iguana::Object
 Object (std::string_view name="", Logger::Level lev=Logger::DEFAULT_LEVEL)
std::unique_ptr< Logger > & GetLog ()
std::string GetName () const
std::unique_ptr< Logger > & Log ()
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) noexcept(false)
hipo::bank & GetBank (hipo::banklist &banks, hipo::banklist::size_type const idx, std::string const &expected_bank_name="") const noexcept(false)
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 StartRCDBReader ()
 Instantiate the RCDBReader instance for this algorithm.
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.
unsigned int m_created_bank_variant {0}
std::string m_default_config_file
 Default configuration file name.
std::mutex m_mutex
 A mutex for this algorithm.
std::unique_ptr< RCDBReaderm_rcdb
 RCDB reader.
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::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()

bool iguana::physics::InclusiveKinematics::Run ( hipo::bank const & particle_bank,
hipo::bank const & config_bank,
hipo::bank & result_bank ) 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]particle_bankparticle bank (e.g., REC::Particle)
[in]config_bankRUN::config
[out]result_bankphysics::InclusiveKinematics, which will be created
Returns
true if the kinematics were calculated; e.g., if the calculations are performed using the scattered lepton, and no scattered lepton was found, false will be returned

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