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 "
iguana/algorithms/TypeDefs.h
"
5
#include "iguana/services/ConcurrentParam.h"
6
7
namespace
iguana::physics
{
8
19
class
InclusiveKinematics
:
public
Algorithm
20
{
21
22
DEFINE_IGUANA_ALGORITHM
(
InclusiveKinematics
,
physics::InclusiveKinematics
)
23
24
public
:
25
26
void
Start
(hipo::banklist& banks)
override
;
27
bool
Run
(hipo::banklist& banks)
const override
;
28
void
Stop
()
override
;
29
36
bool
Run
(
37
hipo::bank
const
& particle_bank,
38
hipo::bank
const
& config_bank,
39
hipo::bank& result_bank)
const
;
40
46
concurrent_key_t
PrepareEvent
(
int
const
runnum,
double
const
beam_energy = -1)
const
;
47
54
InclusiveKinematicsVars
ComputeFromLepton
(
55
vector_element_t
const
lepton_px,
56
vector_element_t
const
lepton_py,
57
vector_element_t
const
lepton_pz,
58
concurrent_key_t
const
key)
const
;
59
60
private
:
61
70
std::optional<int>
const
FindScatteredLepton(hipo::bank
const
& particle_bank, concurrent_key_t
const
key)
const
;
71
72
void
Reload(
int
const
runnum,
double
const
user_beam_energy, concurrent_key_t key)
const
;
73
74
// banklist indices
75
hipo::banklist::size_type b_particle;
76
hipo::banklist::size_type b_config;
77
hipo::banklist::size_type b_result;
78
79
// `b_result` bank item indices
80
int
i_pindex;
81
int
i_Q2;
82
int
i_x;
83
int
i_y;
84
int
i_W;
85
int
i_nu;
86
int
i_qx;
87
int
i_qy;
88
int
i_qz;
89
int
i_qE;
90
int
i_beamPz;
91
int
i_targetM;
92
93
// config options
94
std::string o_particle_bank;
95
mutable
std::unique_ptr<ConcurrentParam<int>> o_runnum;
96
mutable
std::unique_ptr<ConcurrentParam<std::vector<double>>> o_target_PxPyPzM;
97
mutable
std::unique_ptr<ConcurrentParam<std::vector<double>>> o_beam_PxPyPzM;
98
double
o_beam_mass;
// unlikely to change
99
int
o_beam_pdg;
// unlikely to change
100
double
o_override_beam_energy;
101
double
o_theta_between_FD_and_FT;
102
103
enum
method_reconstruction {
104
scattered_lepton
105
};
106
enum
method_lepton_finder {
107
highest_energy_FD_trigger,
108
lund_beam_daughter,
109
};
110
method_reconstruction o_method_reconstruction;
111
method_lepton_finder o_method_lepton_finder;
112
};
113
114
}
DEFINE_IGUANA_ALGORITHM
#define DEFINE_IGUANA_ALGORITHM(ALGO_NAME, ALGO_FULL_NAME)
Definition
AlgorithmBoilerplate.h:58
TypeDefs.h
common objects used in algorithms
iguana::vector_element_t
double vector_element_t
Vector element type.
Definition
TypeDefs.h:12
iguana::Algorithm::Algorithm
Algorithm(std::string_view name)
Definition
Algorithm.h:72
iguana::physics::InclusiveKinematics
Algorithm: Calculate inclusive kinematics quantities
Definition
Algorithm.h:20
iguana::physics::InclusiveKinematics::Stop
void Stop() override
Finalize this algorithm after all events are processed.
iguana::physics::InclusiveKinematics::Start
void Start(hipo::banklist &banks) override
Initialize this algorithm before any events are processed, with the intent to process banks.
iguana::physics::InclusiveKinematics::Run
bool Run(hipo::banklist &banks) const override
Run Function: Process an event's hipo::banklist
iguana::physics::InclusiveKinematics::ComputeFromLepton
InclusiveKinematicsVars ComputeFromLepton(vector_element_t const lepton_px, vector_element_t const lepton_py, vector_element_t const lepton_pz, concurrent_key_t const key) const
Action Function: compute kinematics from the scattered lepton.
iguana::physics::InclusiveKinematics::PrepareEvent
concurrent_key_t PrepareEvent(int const runnum, double const beam_energy=-1) const
Action Function: prepare the event
iguana::physics::InclusiveKinematics::Run
bool Run(hipo::bank const &particle_bank, hipo::bank const &config_bank, hipo::bank &result_bank) const
Run Function: Process an event's hipo::bank objects
iguana::physics
Physics algorithms.
Definition
Algorithm.h:5
iguana::physics::InclusiveKinematicsVars
Set of variables created by creator algorithm iguana::physics::InclusiveKinematics.
Definition
BankDefs.h:44
iguana_v1.1.0
src
iguana
algorithms
physics
InclusiveKinematics
Algorithm.h
Generated by
1.18.0