Loading [MathJax]/extensions/tex2jax.js
Iguana 0.9.0
Implementation Guardian of Analysis Algorithms
Algorithm.h
1#pragma once
2
3#include "iguana/algorithms/Algorithm.h"
5
6namespace iguana::clas12 {
7
33 class SectorFinder : public Algorithm
34 {
35
37
38 public:
39
40 void Start(hipo::banklist& banks) override;
41 void Run(hipo::banklist& banks) const override;
42 void Stop() override;
43
87 std::vector<int> const& sectors,
88 std::vector<int> const& pindices,
89 int const& pindex_particle) const;
90
111 std::vector<int> const& sectors_track,
112 std::vector<int> const& pindices_track,
113 std::vector<int> const& sectors_cal,
114 std::vector<int> const& pindices_cal,
115 std::vector<int> const& sectors_scint,
116 std::vector<int> const& pindices_scint,
117 int const& pindex_particle) const;
118
133 std::vector<int> GetStandardSector(
134 std::vector<int> const& sectors_track,
135 std::vector<int> const& pindices_track,
136 std::vector<int> const& sectors_cal,
137 std::vector<int> const& pindices_cal,
138 std::vector<int> const& sectors_scint,
139 std::vector<int> const& pindices_scint,
140 std::vector<int> const& pindices_particle) const;
141
149 void GetListsSectorPindex(hipo::bank const& bank, std::vector<int>& sectors, std::vector<int>& pindices) const;
150
151 private:
152
154 hipo::banklist::size_type b_particle;
155 hipo::banklist::size_type b_calorimeter;
156 hipo::banklist::size_type b_track;
157 hipo::banklist::size_type b_scint;
158 hipo::banklist::size_type b_user_charged;
159 hipo::banklist::size_type b_user_uncharged;
160 hipo::banklist::size_type b_result;
161 bool userSpecifiedBank_charged{false};
162 bool userSpecifiedBank_uncharged{true};
163
164 // `b_result` bank item indices
165 int i_sector;
166 int i_pindex;
167
169 std::string o_bankname_charged;
170 std::string o_bankname_uncharged;
171
172 //only want sectors from FD detectors
173 std::set<int> const listFDDets{
174 DetectorType::DC,
175 DetectorType::ECAL,
176 DetectorType::FTOF,
177 DetectorType::HTCC,
178 DetectorType::LTCC,
179 DetectorType::RICH
180 };
181 };
182
183}
#define DEFINE_IGUANA_ALGORITHM(ALGO_NAME, ALGO_FULL_NAME)
common objects used in algorithms
Algorithm(std::string_view name)
Definition Algorithm.h:46
Algorithm: Find the sector for all rows in REC::Particle
Definition Algorithm.h:34
int GetSector(std::vector< int > const &sectors, 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 > &sectors, 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
std::vector< int > GetStandardSector(std::vector< int > const &sectors_track, std::vector< int > const &pindices_track, std::vector< int > const &sectors_cal, std::vector< int > const &pindices_cal, std::vector< int > const &sectors_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 &sectors_track, std::vector< int > const &pindices_track, std::vector< int > const &sectors_cal, std::vector< int > const &pindices_cal, std::vector< int > const &sectors_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.
void Run(hipo::banklist &banks) const override
Run this algorithm for an event.
CLAS12 algorithms.
Definition Algorithm.h:5