24 #ifndef SKA_CHEETAH_DDTR_DEDISPERSIONTRIALPLAN_H 25 #define SKA_CHEETAH_DDTR_DEDISPERSIONTRIALPLAN_H 28 #include "cheetah/utils/Config.h" 29 #include "cheetah/ddtr/DedispersionConfig.h" 30 #include "cheetah/data/DedispersionMeasure.h" 31 #include "cheetah/data/DmConstant.h" 32 #include "cheetah/data/DmTrialsMetadata.h" 33 #include "cheetah/data/TimeFrequency.h" 34 #include "cheetah/data/Units.h" 52 typedef data::DedispersionMeasureType<float> Dm;
53 typedef boost::units::quantity<data::dm_constant::s_mhz::Unit, double> DmConstantType;
54 typedef boost::units::quantity<boost::units::si::time, double> TimeType;
55 typedef boost::units::quantity<data::MegaHertz, double> FrequencyType;
56 typedef panda::ConfigModuleIteratorWrapper<DedispersionConfig> RangeIterator;
92 std::shared_ptr<data::DmTrialsMetadata>
generate_dmtrials_metadata(TimeType sample_interval, std::size_t nspectra, std::size_t nsamples)
const;
107 TimeType
maximum_delay(FrequencyType freq_low, FrequencyType freq_high)
const;
112 template<
typename Arch,
typename NumericalRep>
115 RangeIterator begin_range()
const;
116 RangeIterator end_range()
const;
119 void add_options(OptionsDescriptionEasyInit& add_options)
override;
122 DmConstantType _dm_constant;
123 mutable std::vector<Dm> _dm_trials;
132 #include "detail/DedispersionTrialPlan.cpp" 134 #endif // SKA_CHEETAH_DDTR_DEDISPERSIONTRIALPLAN_H Configuration module to specify Dedispersion Trials.
Base class for module configuration.
std::shared_ptr< data::DmTrialsMetadata > generate_dmtrials_metadata(TimeType sample_interval, std::size_t nspectra, std::size_t nsamples) const
Generate metadata based on dedispersion plan.
void dedispersion_config(DedispersionConfig &config)
add a Dedispersion Configuration Element
std::vector< Dm > const & dm_trials() const
list of DM trials
describes dedispersion configuration
void add_dm_range(Dm start, Dm end, Dm step)
get range of DM values
Some limits and constants for FLDO.
DmConstantType dm_constant() const
get DM constant
TimeType maximum_delay(FrequencyType freq_low, FrequencyType freq_high) const
the maximum delay time for a signal at the maximum Dm in the plan
data::DimensionSize< data::Time > maximum_delay_offset(data::TimeFrequency< Arch, NumericalRep > const &tf) const
the maximum delay offset calculated with the TF blocks properties
Dm max_dm() const
the largest Dm value specified