24 #include "cheetah/pipeline/ScanConfig.h" 32 ScanConfig::ScanConfig()
33 : cheetah::utils::Config(
"scan")
34 , _freq_channels(4096)
35 , _accel_range(300 *data::meters_per_second_squared)
36 , _beam_bw(300 *
boost::units::si::hertz*
boost::units::si::mega)
37 , _scan_time(600 *
boost::units::si::seconds)
38 , _time_resolution(64 *
boost::units::si::micro *
boost::units::si::seconds)
42 ScanConfig::~ScanConfig()
46 void ScanConfig::add_options(OptionsDescriptionEasyInit& add_options)
49 (
"accel_range", boost::program_options::value<double>()->notifier([
this](
double val) {
50 _accel_range = val * data::meters_per_second_squared;
51 }),
"Acceleration Search range")
53 (
"beam_bw", boost::program_options::value<double>()->notifier([
this](
double val) {
54 _beam_bw = val * boost::units::si::hertz*boost::units::si::mega;
55 }),
"Beam Band width")
57 (
"beam_id", boost::program_options::value<int>(&_beam_id)->default_value(0),
"Beam Identifier ")
58 (
"bit_per_sample", boost::program_options::value<int>(&_bit_per_sample)->default_value(8),
"Bit per sample")
59 (
"disp_measure", boost::program_options::value<double>()->notifier([
this](
double val) {
60 _disp_measure = val * data::parsecs_per_cube_cm;
61 }),
"Dispersion measure")
63 (
"freq_channels", boost::program_options::value<int>(&_freq_channels)->default_value(4096),
"Number of Frequency channels")
64 (
"scan_id", boost::program_options::value<int>(&_scan_id)->default_value(0),
"Global scan Identifier")
65 (
"scan_time", boost::program_options::value<int>()->notifier([
this](
int val) {
66 _scan_time = val * boost::units::si::seconds;
67 }),
"Global scan time in seconds")
69 (
"sub_array_id", boost::program_options::value<int>(&_sub_array_id)->default_value(0),
"Sub-array Identifier")
70 (
"time_resolution", boost::program_options::value<double>()->notifier([
this](
double val) {
71 _time_resolution = val* boost::units::si::micro * boost::units::si::seconds;
72 }),
"Data sampling time (usec)")
74 (
"time_samples", boost::program_options::value<uint64_t>(&_time_samples)->default_value(65536),
"Time samples per block")
75 (
"trials_number", boost::program_options::value<int>(&_trials_number)->default_value(100),
"Global scan time in seconds");
78 data::AccelerationType ScanConfig::accel_range()
const 83 data::FrequencyType ScanConfig::beam_bw()
const 88 int ScanConfig::beam_id()
const 93 int ScanConfig::bit_per_sample()
const 95 return _bit_per_sample;
98 typename ScanConfig::Dm ScanConfig::disp_measure()
const 100 return _disp_measure;
103 int ScanConfig::freq_channels()
const 105 return _freq_channels;
108 int ScanConfig::scan_id()
const 113 typename ScanConfig::ScanTimeType ScanConfig::scan_time()
const 118 int ScanConfig::sub_array_id()
const 120 return _sub_array_id;
123 uint64_t ScanConfig::time_samples()
const 125 return _time_samples;
128 typename ScanConfig::MicroSecTimeType ScanConfig::time_resolution()
const 130 return _time_resolution;
133 int ScanConfig::trials_number()
const 135 return _trials_number;
Some limits and constants for FLDO.