Loading [MathJax]/extensions/tex2jax.js
Iguana 0.8.0
Implementation Guardian of Analysis Algorithms
All Classes Namespaces Files Functions Variables Typedefs Enumerations Macros Modules Pages
Algorithm.h
1#pragma once
2
3#include "iguana/algorithms/Algorithm.h"
5#include <Math/Vector3D.h>
6#include <Math/Vector4D.h>
7
8namespace iguana::physics {
9
42 {
43
45
46 public:
47
48 void Start(hipo::banklist& banks) override;
49 void Run(hipo::banklist& banks) const override;
50 void Stop() override;
51
55 std::vector<std::pair<int,int>> PairHadrons(hipo::bank const& particle_bank) const;
56
57 private:
58
59 // banklist indices
60 hipo::banklist::size_type b_particle;
61 hipo::banklist::size_type b_inc_kin;
62 hipo::banklist::size_type b_result;
63
64 // `b_result` bank item indices
65 int i_pindex_a;
66 int i_pindex_b;
67 int i_pdg_a;
68 int i_pdg_b;
69 int i_Mh;
70 int i_z;
71 int i_PhPerp;
72 int i_MX2;
73 int i_xF;
74 int i_yB;
75 int i_phiH;
76 int i_phiR;
77 int i_theta;
78
79 // config options
80 std::set<int> o_hadron_a_pdgs;
81 std::set<int> o_hadron_b_pdgs;
82 std::string o_phi_r_method;
83 std::string o_theta_method;
84 enum {e_RT_via_covariant_kT} m_phi_r_method;
85 enum {e_hadron_a} m_theta_method;
86
87 // storage for a single hadron
88 struct Hadron {
89 int row;
90 int pdg;
91 ROOT::Math::PxPyPzMVector p;
92 double z;
93 std::optional<ROOT::Math::XYZVector> p_perp;
94 };
95
96 };
97
98}
#define DEFINE_IGUANA_ALGORITHM(ALGO_NAME, ALGO_FULL_NAME)
Algorithm(std::string_view name)
Definition Algorithm.h:45
Algorithm: Calculate semi-inclusive dihadron kinematic quantities defined in iguana::physics::Dihadro...
Definition Algorithm.h:42
void Stop() override
Finalize this algorithm after all events are processed.
void Run(hipo::banklist &banks) const override
Run this algorithm for an event.
std::vector< std::pair< int, int > > PairHadrons(hipo::bank const &particle_bank) const
form dihadrons by pairing hadrons
void Start(hipo::banklist &banks) override
Initialize this algorithm before any events are processed, with the intent to process banks
Physics algorithms.
Definition Algorithm.h:5