3#include "iguana/algorithms/Algorithm.h"
39 void Start(hipo::banklist& banks)
override;
40 bool Run(hipo::banklist& banks)
const override;
53 hipo::bank
const& particleBank,
54 hipo::bank
const& trackBank,
55 hipo::bank
const& calBank,
56 hipo::bank
const& scintBank,
57 hipo::bank& resultBank)
const
59 return RunImpl(&particleBank, &trackBank, &calBank, &scintBank,
nullptr,
nullptr, &resultBank);
73 hipo::bank
const& particleBank,
74 hipo::bank
const& trackBank,
75 hipo::bank
const& calBank,
76 hipo::bank
const& scintBank,
77 hipo::bank
const& userChargedBank,
78 hipo::bank& resultBank)
const
80 return RunImpl(&particleBank, &trackBank, &calBank, &scintBank, &userChargedBank,
nullptr, &resultBank);
94 hipo::bank
const& particleBank,
95 hipo::bank
const& trackBank,
96 hipo::bank
const& calBank,
97 hipo::bank
const& scintBank,
98 hipo::bank
const& userNeutralBank,
99 hipo::bank& resultBank)
const
101 return RunImpl(&particleBank, &trackBank, &calBank, &scintBank,
nullptr, &userNeutralBank, &resultBank);
113 hipo::bank
const& particleBank,
114 hipo::bank
const& userChargedBank,
115 hipo::bank
const& userNeutralBank,
116 hipo::bank& resultBank)
const
118 return RunImpl(&particleBank,
nullptr,
nullptr,
nullptr, &userChargedBank, &userNeutralBank, &resultBank);
164 std::vector<int>
const& sectors,
165 std::vector<int>
const& pindices,
166 int const& pindex_particle)
const;
188 std::vector<int>
const& sectors_track,
189 std::vector<int>
const& pindices_track,
190 std::vector<int>
const& sectors_cal,
191 std::vector<int>
const& pindices_cal,
192 std::vector<int>
const& sectors_scint,
193 std::vector<int>
const& pindices_scint,
194 int const& pindex_particle)
const;
211 std::vector<int>
const& sectors_track,
212 std::vector<int>
const& pindices_track,
213 std::vector<int>
const& sectors_cal,
214 std::vector<int>
const& pindices_cal,
215 std::vector<int>
const& sectors_scint,
216 std::vector<int>
const& pindices_scint,
217 std::vector<int>
const& pindices_particle)
const;
226 void GetListsSectorPindex(hipo::bank
const& bank, std::vector<int>& sectors, std::vector<int>& pindices)
const;
240 hipo::bank
const* particleBank,
241 hipo::bank
const* trackBank,
242 hipo::bank
const* calBank,
243 hipo::bank
const* scintBank,
244 hipo::bank
const* userChargedBank,
245 hipo::bank
const* userNeutralBank,
246 hipo::bank* resultBank)
const;
249 hipo::banklist::size_type b_particle;
250 hipo::banklist::size_type b_track;
251 hipo::banklist::size_type b_calorimeter;
252 hipo::banklist::size_type b_scint;
253 hipo::banklist::size_type b_user_charged;
254 hipo::banklist::size_type b_user_neutral;
255 hipo::banklist::size_type b_result;
256 bool userSpecifiedBank_charged{
false};
257 bool userSpecifiedBank_neutral{
false};
264 std::string o_bankname_charged;
265 std::string o_bankname_neutral;
268 std::set<int>
const listFDDets{
#define DEFINE_IGUANA_ALGORITHM(ALGO_NAME, ALGO_FULL_NAME)
common objects used in algorithms
Algorithm(std::string_view name)
Algorithm: Find the sector for all rows in REC::Particle
int GetSector(std::vector< int > const §ors, std::vector< int > const &pindices, int const &pindex_particle) const
Action Function: for a given particle with index pindex_particle, get its sector from a detector bank...
void GetListsSectorPindex(hipo::bank const &bank, std::vector< int > §ors, std::vector< int > &pindices) const
void Start(hipo::banklist &banks) override
Initialize this algorithm before any events are processed, with the intent to process banks.
bool Run(hipo::bank const &particleBank, hipo::bank const &trackBank, hipo::bank const &calBank, hipo::bank const &scintBank, hipo::bank &resultBank) const
Run Function: Process an event's hipo::bank objects
bool RunWithCustomChargedBank(hipo::bank const &particleBank, hipo::bank const &trackBank, hipo::bank const &calBank, hipo::bank const &scintBank, hipo::bank const &userChargedBank, hipo::bank &resultBank) const
Run Function: Process an event's hipo::bank objects
static int const UNKNOWN_SECTOR
if this algorithm cannot determine the sector, this value will be used
std::vector< int > GetStandardSector(std::vector< int > const §ors_track, std::vector< int > const &pindices_track, std::vector< int > const §ors_cal, std::vector< int > const &pindices_cal, std::vector< int > const §ors_scint, std::vector< int > const &pindices_scint, std::vector< int > const &pindices_particle) const
Action Function: get sectors for all particles, using the standard method
bool Run(hipo::banklist &banks) const override
Run Function: Process an event's hipo::banklist
int GetStandardSector(std::vector< int > const §ors_track, std::vector< int > const &pindices_track, std::vector< int > const §ors_cal, std::vector< int > const &pindices_cal, std::vector< int > const §ors_scint, std::vector< int > const &pindices_scint, int const &pindex_particle) const
Action Function: for a given particle with index pindex_particle, get its sector from using the stand...
void Stop() override
Finalize this algorithm after all events are processed.
bool RunWithCustomBanks(hipo::bank const &particleBank, hipo::bank const &userChargedBank, hipo::bank const &userNeutralBank, hipo::bank &resultBank) const
Run Function: Process an event's hipo::bank objects
bool RunWithCustomNeutralBank(hipo::bank const &particleBank, hipo::bank const &trackBank, hipo::bank const &calBank, hipo::bank const &scintBank, hipo::bank const &userNeutralBank, hipo::bank &resultBank) const
Run Function: Process an event's hipo::bank objects
General CLAS12 algorithms.