Iguana
1.1.0
Implementation Guardian of Analysis Algorithms
Toggle main menu visibility
Loading...
Searching...
No Matches
Algorithm.h
1
#pragma once
2
3
#include "iguana/algorithms/Algorithm.h"
4
#include <Math/Vector3D.h>
5
#include <Math/Vector4D.h>
6
7
namespace
iguana::physics
{
8
34
class
DihadronKinematics
:
public
Algorithm
35
{
36
37
DEFINE_IGUANA_ALGORITHM
(
DihadronKinematics
,
physics::DihadronKinematics
)
38
39
public
:
40
41
void
Start
(hipo::banklist& banks)
override
;
42
bool
Run
(hipo::banklist& banks)
const override
;
43
void
Stop
()
override
;
44
51
bool
Run
(
52
hipo::bank
const
& particle_bank,
53
hipo::bank
const
& inc_kin_bank,
54
hipo::bank& result_bank)
const
;
55
59
std::vector<std::pair<int, int>>
PairHadrons
(hipo::bank
const
& particle_bank)
const
;
60
61
private
:
62
63
// banklist indices
64
hipo::banklist::size_type b_particle;
65
hipo::banklist::size_type b_inc_kin;
66
hipo::banklist::size_type b_result;
67
68
// `b_result` bank item indices
69
int
i_pindex_a;
70
int
i_pindex_b;
71
int
i_pdg_a;
72
int
i_pdg_b;
73
int
i_Mh;
74
int
i_z;
75
int
i_PhPerp;
76
int
i_MX2;
77
int
i_xF;
78
int
i_yB;
79
int
i_phiH;
80
int
i_phiR;
81
int
i_theta;
82
83
// config options
84
std::string o_particle_bank;
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;
91
92
// storage for a single hadron
93
struct
Hadron {
94
int
row;
95
int
pdg;
96
ROOT::Math::PxPyPzMVector p;
97
double
z;
98
std::optional<ROOT::Math::XYZVector> p_perp;
99
};
100
};
101
102
}
DEFINE_IGUANA_ALGORITHM
#define DEFINE_IGUANA_ALGORITHM(ALGO_NAME, ALGO_FULL_NAME)
Definition
AlgorithmBoilerplate.h:58
iguana::Algorithm::Algorithm
Algorithm(std::string_view name)
Definition
Algorithm.h:72
iguana::physics::DihadronKinematics
Algorithm: Calculate semi-inclusive dihadron kinematic quantities defined in iguana::physics::Dihadro...
Definition
Algorithm.h:35
iguana::physics::DihadronKinematics::Stop
void Stop() override
Finalize this algorithm after all events are processed.
iguana::physics::DihadronKinematics::PairHadrons
std::vector< std::pair< int, int > > PairHadrons(hipo::bank const &particle_bank) const
form dihadrons by pairing hadrons
iguana::physics::DihadronKinematics::Run
bool Run(hipo::banklist &banks) const override
Run Function: Process an event's hipo::banklist
iguana::physics::DihadronKinematics::Start
void Start(hipo::banklist &banks) override
Initialize this algorithm before any events are processed, with the intent to process banks.
iguana::physics::DihadronKinematics::Run
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
iguana::physics
Physics algorithms.
Definition
Algorithm.h:5
iguana_v1.1.0
src
iguana
algorithms
physics
DihadronKinematics
Algorithm.h
Generated by
1.18.0