3#include "iguana/algorithms/Algorithm.h"
32 void ConfigHook()
override;
33 void StartHook(hipo::banklist& banks)
override;
34 bool RunHook(hipo::banklist& banks)
const override;
51 hipo::bank
const& particleBank,
52 hipo::bank
const& trackBank,
53 hipo::bank
const& calBank,
54 hipo::bank
const& scintBank,
55 hipo::bank& resultBank)
const
57 return RunImpl(&particleBank, &trackBank, &calBank, &scintBank,
nullptr,
nullptr, &resultBank);
71 hipo::bank
const& particleBank,
72 hipo::bank
const& trackBank,
73 hipo::bank
const& calBank,
74 hipo::bank
const& scintBank,
75 hipo::bank
const& userChargedBank,
76 hipo::bank& resultBank)
const
78 return RunImpl(&particleBank, &trackBank, &calBank, &scintBank, &userChargedBank,
nullptr, &resultBank);
92 hipo::bank
const& particleBank,
93 hipo::bank
const& trackBank,
94 hipo::bank
const& calBank,
95 hipo::bank
const& scintBank,
96 hipo::bank
const& userNeutralBank,
97 hipo::bank& resultBank)
const
99 return RunImpl(&particleBank, &trackBank, &calBank, &scintBank,
nullptr, &userNeutralBank, &resultBank);
111 hipo::bank
const& particleBank,
112 hipo::bank
const& userChargedBank,
113 hipo::bank
const& userNeutralBank,
114 hipo::bank& resultBank)
const
116 return RunImpl(&particleBank,
nullptr,
nullptr,
nullptr, &userChargedBank, &userNeutralBank, &resultBank);
162 std::vector<int>
const& sectors,
163 std::vector<int>
const& pindices,
164 int const& pindex_particle)
const;
186 std::vector<int>
const& sectors_track,
187 std::vector<int>
const& pindices_track,
188 std::vector<int>
const& sectors_cal,
189 std::vector<int>
const& pindices_cal,
190 std::vector<int>
const& sectors_scint,
191 std::vector<int>
const& pindices_scint,
192 int const& pindex_particle)
const;
209 std::vector<int>
const& sectors_track,
210 std::vector<int>
const& pindices_track,
211 std::vector<int>
const& sectors_cal,
212 std::vector<int>
const& pindices_cal,
213 std::vector<int>
const& sectors_scint,
214 std::vector<int>
const& pindices_scint,
215 std::vector<int>
const& pindices_particle)
const;
224 void GetListsSectorPindex(hipo::bank
const& bank, std::vector<int>& sectors, std::vector<int>& pindices)
const;
238 hipo::bank
const* particleBank,
239 hipo::bank
const* trackBank,
240 hipo::bank
const* calBank,
241 hipo::bank
const* scintBank,
242 hipo::bank
const* userChargedBank,
243 hipo::bank
const* userNeutralBank,
244 hipo::bank* resultBank)
const;
247 hipo::banklist::size_type b_particle;
248 hipo::banklist::size_type b_track;
249 hipo::banklist::size_type b_calorimeter;
250 hipo::banklist::size_type b_scint;
251 hipo::banklist::size_type b_user_charged;
252 hipo::banklist::size_type b_user_neutral;
253 hipo::banklist::size_type b_result;
254 bool userSpecifiedBank_charged{
false};
255 bool userSpecifiedBank_neutral{
false};
262 std::string o_bankname_charged;
263 std::string o_bankname_neutral;
266 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
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
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...
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.