Iguana
1.0.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 "
iguana/algorithms/physics/Tools.h
"
5
#include <Math/Vector3D.h>
6
#include <Math/Vector4D.h>
7
8
namespace
iguana::physics
{
9
35
class
DihadronKinematics
:
public
Algorithm
36
{
37
38
DEFINE_IGUANA_ALGORITHM
(
DihadronKinematics
,
physics::DihadronKinematics
)
39
40
public
:
41
42
void
Start
(hipo::banklist& banks)
override
;
43
bool
Run
(hipo::banklist& banks)
const override
;
44
void
Stop
()
override
;
45
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::set<int> o_hadron_a_pdgs;
85
std::set<int> o_hadron_b_pdgs;
86
std::string o_phi_r_method;
87
std::string o_theta_method;
88
enum
{ e_RT_via_covariant_kT } m_phi_r_method;
89
enum
{ e_hadron_a } m_theta_method;
90
91
// storage for a single hadron
92
struct
Hadron {
93
int
row;
94
int
pdg;
95
ROOT::Math::PxPyPzMVector p;
96
double
z;
97
std::optional<ROOT::Math::XYZVector> p_perp;
98
};
99
};
100
101
}
DEFINE_IGUANA_ALGORITHM
#define DEFINE_IGUANA_ALGORITHM(ALGO_NAME, ALGO_FULL_NAME)
Definition
AlgorithmBoilerplate.h:58
Tools.h
iguana::Algorithm::Algorithm
Algorithm(std::string_view name)
Definition
Algorithm.h:46
iguana::physics::DihadronKinematics
Algorithm: Calculate semi-inclusive dihadron kinematic quantities defined in iguana::physics::Dihadro...
Definition
Algorithm.h:36
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.0.0
src
iguana
algorithms
physics
DihadronKinematics
Algorithm.h
Generated by
1.18.0