Iguana 0.9.0
Implementation Guardian of Analysis Algorithms
Algorithm.h
1#pragma once
2
3#include "iguana/algorithms/Algorithm.h"
4
5namespace iguana::clas12 {
6
29 {
30
32
33 public:
34
36 enum CutLevel {
37 loose,
38 medium,
39 tight
40 };
41
42 void Start(hipo::banklist& banks) override;
43 void Run(hipo::banklist& banks) const override;
44 void Stop() override;
45
68 int const pcal_sector,
69 float const pcal_lv,
70 float const pcal_lw,
71 bool const pcal_found,
72 int const dc_sector,
73 float const dc_r1_x,
74 float const dc_r1_y,
75 float const dc_r1_z,
76 bool const dc_r1_found,
77 float const dc_r2_x,
78 float const dc_r2_y,
79 float const dc_r2_z,
80 bool const dc_r2_found,
81 float const dc_r3_x,
82 float const dc_r3_y,
83 float const dc_r3_z,
84 bool const dc_r3_found,
85 float const torus,
86 int const pid) const;
87
95 int const pcal_sector,
96 float const lv,
97 float const lw,
98 float const torus,
99 int const pid) const;
100
116 int const dc_sector,
117 float const r1_x,
118 float const r1_y,
119 float const r1_z,
120 float const r2_x,
121 float const r2_y,
122 float const r2_z,
123 float const r3_x,
124 float const r3_y,
125 float const r3_z,
126 float const torus,
127 int const pid) const;
128
144 int const dc_sector,
145 float const r1_x,
146 float const r1_y,
147 float const r1_z,
148 float const r2_x,
149 float const r2_y,
150 float const r2_z,
151 float const r3_x,
152 float const r3_y,
153 float const r3_z,
154 float const torus,
155 int const pid) const;
156
157 private: // methods
158
161 CutLevel ParseCutLevel(std::string const& level) const;
162
163 private: // members
164
165 // `hipo::banklist`
166 hipo::banklist::size_type b_particle;
167 hipo::banklist::size_type b_traj;
168 hipo::banklist::size_type b_cal;
169 hipo::banklist::size_type b_config;
170
171 // options
172 int o_pass = 1;
173 CutLevel o_pcal_electron_cut_level;
174 CutLevel o_pcal_photon_cut_level;
175 bool o_enable_pcal_cuts;
176 bool o_enable_dc_cuts;
177
178 };
179
180}
#define DEFINE_IGUANA_ALGORITHM(ALGO_NAME, ALGO_FULL_NAME)
Algorithm(std::string_view name)
Definition Algorithm.h:46
Algorithm: Filter the REC::Particle bank by applying DC (drift chamber) and ECAL (electromagnetic cal...
Definition Algorithm.h:29
bool FilterDcXY(int const dc_sector, float const r1_x, float const r1_y, float const r1_z, float const r2_x, float const r2_y, float const r2_z, float const r3_x, float const r3_y, float const r3_z, float const torus, int const pid) const
Action Function: filter using DC XY fiducial cut
CutLevel
cut levels, currently only used for PCAL cuts
Definition Algorithm.h:36
void Stop() override
Finalize this algorithm after all events are processed.
bool FilterPcalHomogeneous(int const pcal_sector, float const lv, float const lw, float const torus, int const pid) const
Action Function: EC hit position homogeneous cut on lv and lw
void Run(hipo::banklist &banks) const override
Run this algorithm for an event.
bool FilterRgaPass1(int const pcal_sector, float const pcal_lv, float const pcal_lw, bool const pcal_found, int const dc_sector, float const dc_r1_x, float const dc_r1_y, float const dc_r1_z, bool const dc_r1_found, float const dc_r2_x, float const dc_r2_y, float const dc_r2_z, bool const dc_r2_found, float const dc_r3_x, float const dc_r3_y, float const dc_r3_z, bool const dc_r3_found, float const torus, int const pid) const
Action Function: top-level fiducial cut for RG-A Pass 1
bool FilterDcThetaPhi(int const dc_sector, float const r1_x, float const r1_y, float const r1_z, float const r2_x, float const r2_y, float const r2_z, float const r3_x, float const r3_y, float const r3_z, float const torus, int const pid) const
Action Function: filter using DC theta-phi fiducial cut
void Start(hipo::banklist &banks) override
Initialize this algorithm before any events are processed, with the intent to process banks
CLAS12 algorithms.
Definition Algorithm.h:5