3#include "iguana/algorithms/Algorithm.h"
5#include <Math/Vector3D.h>
6#include <Math/Vector4D.h>
77 void Start(hipo::banklist& banks)
override;
78 void Run(hipo::banklist& banks)
const override;
84 std::vector<std::pair<int,int>>
PairHadrons(hipo::bank
const& particle_bank)
const;
89 hipo::banklist::size_type b_particle;
90 hipo::banklist::size_type b_inc_kin;
91 hipo::banklist::size_type b_result;
108 std::set<int> o_hadron_a_pdgs;
109 std::set<int> o_hadron_b_pdgs;
110 std::string o_phi_r_method;
111 std::string o_theta_method;
112 enum {e_RT_via_covariant_kT} m_phi_r_method;
113 enum {e_hadron_a} m_theta_method;
119 ROOT::Math::PxPyPzMVector p;
121 std::optional<ROOT::Math::XYZVector> p_perp;
#define DEFINE_IGUANA_ALGORITHM(ALGO_NAME, ALGO_FULL_NAME)
Base class for all algorithms to inherit from.
Algorithm: Calculate semi-inclusive dihadron kinematic quantities defined in iguana::physics::Dihadro...
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
Set of dihadron kinematics variables.
double PhPerp
: transverse momentum of the dihadron in the -frame (transverse to )
double z
: Momentum fraction of the fragmenting parton carried by the dihadron
double Mh
: Invariant mass of the dihadron
double theta
: The "decay" angle of hadron A in the dihadron rest frame, with respect; to the dihadron momentum di...
double phiR
: -azimuthal angle between the lepton-scattering plane and dihadron plane; if the value is tools::UND...
double xF
: Feynman-x of the dihadron
double MX
: Missing mass of the dihadron
int pdg_b
PDG code of hadron B.
int pindex_a
REC::Particle row (pindex) of hadron A
double phiH
: -azimuthal angle between the lepton-scattering plane and the plane; if the value is tools::UNDEF,...
int pindex_b
REC::Particle row (pindex) of hadron B
int pdg_a
PDG code of hadron A.