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

#include <Algorithm.h>

Detailed Description

Algorithm: Calculate semi-inclusive dihadron kinematic quantities defined in iguana::physics::DihadronKinematicsVars

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::DihadronKinematics:
# the name of the particle bank, only used for users of `hipo::banklist`;
# e.g., set it to 'MC::Particle' if you prefer
particle_bank: 'REC::Particle'
# list of hadrons used to pair dihadrons
# - each hadron from `hadron_a_list` will be paired to each hadron from `hadron_b_list`
hadron_a_list: [ 211 ]
hadron_b_list: [ -211, 211, 2212 ]
# calculation methods; see documentation and source code for details
phi_r_method: RT_via_covariant_kT
theta_method: hadron_a

Dihadron PDGs will be formed from pairs from hadron_a_list and hadron_b_list. For example, if you define:

hadron_a_list: [ 211 ]
hadron_b_list: [ -211, 2212 ]

then the algorithm will calculate kinematics for \(\pi^+\pi^-\) and \(\pi^+p\) dihadrons; hadron A is the \(\pi^+\) for both of these, whereas hadron B is the \(\pi^-\) for the former and the proton for the latter.

phiR calculation methods
  • "RT_via_covariant_kT": use \(R_T\) computed via covariant \(k_T\) formula
theta calculation methods
  • "hadron_a": use hadron A's "decay angle" in the dihadron rest frame

Definition at line 29 of file Algorithm.h.

Public Member Functions

std::vector< std::pair< int, int > > PairHadrons (hipo::bank const &particle_bank) const
 form dihadrons by pairing hadrons
bool Run (hipo::bank const &particle_bank, hipo::bank const &inc_kin_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::DihadronKinematics:
Inheritance graph

Member Function Documentation

◆ PairHadrons()

std::vector< std::pair< int, int > > iguana::physics::DihadronKinematics::PairHadrons ( hipo::bank const & particle_bank) const

form dihadrons by pairing hadrons

Parameters
particle_bankthe particle bank
Returns
a list of pairs of hadron rows

◆ Run()

bool iguana::physics::DihadronKinematics::Run ( hipo::bank const & particle_bank,
hipo::bank const & inc_kin_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]inc_kin_bankphysics::InclusiveKinematics, produced by the physics::InclusiveKinematics algorithm
[out]result_bankphysics::DihadronKinematics, which will be created
Returns
false if the input banks do not have enough information, e.g., if the inclusive kinematics bank is empty, or if the created bank is empty

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