3#include "iguana/algorithms/Algorithm.h"
5#include <Math/Vector3D.h>
6#include <Math/Vector4D.h>
42 void Start(hipo::banklist& banks)
override;
43 bool Run(hipo::banklist& banks)
const override;
53 hipo::bank
const& particle_bank,
54 hipo::bank
const& inc_kin_bank,
55 hipo::bank& result_bank)
const;
60 std::vector<std::pair<int, int>>
PairHadrons(hipo::bank
const& particle_bank)
const;
65 hipo::banklist::size_type b_particle;
66 hipo::banklist::size_type b_inc_kin;
67 hipo::banklist::size_type b_result;
85 std::set<int> o_hadron_a_pdgs;
86 std::set<int> o_hadron_b_pdgs;
87 std::string o_phi_r_method;
88 std::string o_theta_method;
89 enum { e_RT_via_covariant_kT } m_phi_r_method;
90 enum { e_hadron_a } m_theta_method;
96 ROOT::Math::PxPyPzMVector p;
98 std::optional<ROOT::Math::XYZVector> p_perp;
#define DEFINE_IGUANA_ALGORITHM(ALGO_NAME, ALGO_FULL_NAME)
Algorithm(std::string_view name)
Algorithm: Calculate semi-inclusive dihadron kinematic quantities defined in iguana::physics::Dihadro...
void Stop() override
Finalize this algorithm after all events are processed.
std::vector< std::pair< int, int > > PairHadrons(hipo::bank const &particle_bank) const
form dihadrons by pairing hadrons
bool Run(hipo::banklist &banks) const override
Run Function: Process an event's hipo::banklist
void Start(hipo::banklist &banks) override
Initialize this algorithm before any events are processed, with the intent to process banks.
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