1 #ifndef MHO_SkyFreqGrid_HH__
2 #define MHO_SkyFreqGrid_HH__
30 : fGrid(std::move(grid_MHz)), fTol(tol)
32 std::sort(fGrid.begin(), fGrid.end());
36 void Add(
double sky_freq_MHz) { fPending.push_back(sky_freq_MHz); }
41 std::sort(fPending.begin(), fPending.end());
43 for(
double f : fPending)
48 if(std::fabs(f - g) < fTol)
59 std::sort(fGrid.begin(), fGrid.end());
67 bool Empty()
const {
return fGrid.empty(); }
69 std::size_t
Size()
const {
return fGrid.size(); }
71 const std::vector< double >&
Frequencies()
const {
return fGrid; }
75 bool FindIndex(
double sky_freq_MHz, std::size_t& out_index)
const
77 for(std::size_t i = 0; i < fGrid.size(); i++)
79 if(std::fabs(sky_freq_MHz - fGrid[i]) < fTol)
95 std::vector< double > fGrid;
96 std::vector< double > fPending;
Creates a sorted, tolerance-deduplicated list of sky frequencies (MHz) with indexed lookup....
Definition: MHO_SkyFreqGrid.hh:23
void SetTolerance(double tol_MHz)
Definition: MHO_SkyFreqGrid.hh:63
std::size_t Size() const
Definition: MHO_SkyFreqGrid.hh:69
bool FindIndex(double sky_freq_MHz, std::size_t &out_index) const
Definition: MHO_SkyFreqGrid.hh:75
const std::vector< double > & Frequencies() const
Definition: MHO_SkyFreqGrid.hh:71
void Finalize()
Definition: MHO_SkyFreqGrid.hh:39
MHO_SkyFreqGrid(std::vector< double > grid_MHz, double tol=DEFAULT_TOL_MHZ)
Definition: MHO_SkyFreqGrid.hh:29
void Add(double sky_freq_MHz)
Definition: MHO_SkyFreqGrid.hh:36
double GetTolerance() const
Definition: MHO_SkyFreqGrid.hh:65
MHO_SkyFreqGrid()
Definition: MHO_SkyFreqGrid.hh:27
static constexpr double DEFAULT_TOL_MHZ
Definition: MHO_SkyFreqGrid.hh:25
bool Empty() const
Definition: MHO_SkyFreqGrid.hh:67
bool Contains(double sky_freq_MHz) const
Definition: MHO_SkyFreqGrid.hh:88
Definition: MHO_AdhocFlagging.hh:18