Cheetah - SKA - PSS - Prototype Time Domain Search Pipeline
DmTrialsMetadata.h
1 #ifndef SKA_CHEETAH_DATA_DMTRIALSMETADATA_H
2 #define SKA_CHEETAH_DATA_DMTRIALSMETADATA_H
3 
4 #include "cheetah/data/Units.h"
5 #include "cheetah/data/DedispersionMeasure.h"
6 #include "cheetah/data/DefaultAllocator.h"
7 #include "cheetah/data/Series.h"
8 #include "panda/DataChunk.h"
9 
10 #pragma GCC diagnostic push
11 #pragma GCC diagnostic ignored "-Wall"
12 #pragma GCC diagnostic ignored "-Wpragmas"
13 #pragma GCC diagnostic ignored "-Wunused-parameter"
14 #pragma GCC diagnostic ignored "-Wunused-variable"
15 #include <boost/functional/hash.hpp>
16 #pragma GCC diagnostic pop
17 
18 
19 namespace ska {
20 namespace cheetah {
21 namespace data {
22 
49  : public panda::DataChunk<DmTrialsMetadata>
50 {
51  public:
52  typedef DedispersionMeasureType<float> DmType;
54 
55  public:
59  class Metadata
60  {
61  public:
69  Metadata(DmTrialsMetadata const& parent, DmType dm, std::size_t downsampling_factor=1);
70  ~Metadata();
71 
75  DmType const& dm() const;
76 
80  TimeType sampling_interval() const;
81 
85  std::size_t size() const;
86 
87  private:
88  DmTrialsMetadata const& _parent;
89  DmType _dm;
90  std::size_t _downsampling_factor;
91  };
92 
93  private:
94  typedef std::vector<Metadata> ContainerType;
95 
96  public:
108  DmTrialsMetadata(TimeType fundamental_sampling_interval, std::size_t fundamental_sample_count);
109  ~DmTrialsMetadata();
110 
117  void emplace_back(DmType dm, std::size_t downsampling_factor = 1);
118 
124  ContainerType::const_reference operator[](std::size_t n) const;
125 
131  ContainerType::reference operator[](std::size_t n);
132 
136  ContainerType::iterator begin();
137 
141  ContainerType::const_iterator begin() const;
142 
146  ContainerType::const_iterator cbegin() const;
147 
151  ContainerType::iterator end();
152 
156  ContainerType::const_iterator end() const;
157 
161  ContainerType::const_iterator cend() const;
162 
166  std::size_t size() const;
167 
175  bool operator==(DmTrialsMetadata const& other);
176 
182  TimeType duration() const;
183 
187  TimeType fundamental_sampling_interval() const;
188 
192  std::size_t total_data_size() const;
193 
194  private:
195  TimeType _sampling_interval;
196  std::size_t _number_of_samples;
197  std::size_t _hash_value;
198  ContainerType _metadata;
199 
200 
201 };
202 
203 
204 } // namespace data
205 } // namespace cheetah
206 } // namespace ska
207 
208 #endif // SKA_CHEETAH_DATA_DMTRIALSMETADATA_H
ContainerType::iterator begin()
Return an iterator pointing to the first Metadata instance contained.
std::size_t total_data_size() const
Return the total size of the data represented.
ContainerType::const_iterator cbegin() const
Return an const iterator pointing to the first Metadata instance contained.
ContainerType::iterator end()
Return an iterator pointing beyond the Metadata instance contained.
TimeType sampling_interval() const
return the sampling interval
bool operator==(DmTrialsMetadata const &other)
Test if this instance is compatible with another instance.
TimeType duration() const
Return the temporal duration of the trials.
Metadata(DmTrialsMetadata const &parent, DmType dm, std::size_t downsampling_factor=1)
Create a new Metadata instance.
ContainerType::const_iterator cend() const
Return a const iterator pointing beyond the Metadata instance contained.
Container for an metadata concerning a single DM trial.
DmTrialsMetadata(TimeType fundamental_sampling_interval, std::size_t fundamental_sample_count)
Create a new DmTrialsMetadata instance.
void emplace_back(DmType dm, std::size_t downsampling_factor=1)
Add a new Metadata instance containing information about a single DM trial.
std::size_t size() const
return the size (number of samples)
Some limits and constants for FLDO.
Definition: Brdz.h:35
DmType const & dm() const
return the dispersion measure
ContainerType::const_reference operator[](std::size_t n) const
Return a const reference to a Metadata instance.
Container for metadata that describes a set of dispersion measure trials.
TimeType fundamental_sampling_interval() const
Return the fundamental_sampling_interval.