Cheetah - SKA - PSS - Prototype Time Domain Search Pipeline
CandidateWindowConfig.cpp
1 /*
2  * The MIT License (MIT)
3  *
4  * Copyright (c) 2016 The SKA organisation
5  *
6  * Permission is hereby granted, free of charge, to any person obtaining a copy
7  * of this software and associated documentation files (the "Software"), to deal
8  * in the Software without restriction, including without limitation the rights
9  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10  * copies of the Software, and to permit persons to whom the Software is
11  * furnished to do so, subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be included in all
14  * copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22  * SOFTWARE.
23  */
24 #include "cheetah/data/CandidateWindowConfig.h"
25 
26 
27 namespace ska {
28 namespace cheetah {
29 namespace data {
30 
31 
32 CandidateWindowConfig::CandidateWindowConfig()
33  : BaseT("candidate_window"),
34  _window(0.0 * boost::units::si::milli * boost::units::si::seconds, 0.0 * boost::units::si::milli * boost::units::si::seconds)
35 {
36 }
37 
38 CandidateWindowConfig::~CandidateWindowConfig()
39 {
40 }
41 
42 void CandidateWindowConfig::add_options(OptionsDescriptionEasyInit& add_options)
43 {
44  add_options
45  ("ms_before", boost::program_options::value<double>()->default_value(static_cast<double>(_window.ms_before().value()))->notifier([this](double v){
46  _window.ms_before(v * milliseconds);
47  })
48  , "the number of milliseconds of data to incclude before the start of the candidate")
49  ("ms_after", boost::program_options::value<double>()->default_value(static_cast<double>(_window.ms_after().value()))->notifier([this](double v) {
50  _window.ms_after(v * milliseconds);
51  })
52  , "the number of milliseconds of data to incclude before the end of the candidate");
53 }
54 
55 
57 {
58  return _window;
59 }
60 
62 {
63  return _window;
64 }
65 
66 
68 {
69  window = _window;
70 }
71 
73 {
74  _window.ms_before(window_config.window().ms_before());
75  _window.ms_after( window_config.window().ms_after());
76  return *this;
77 }
78 
79 } // namespace data
80 } // namespace cheetah
81 } // namespace ska
Definition: Units.h:112
CandidateWindowConfig & operator=(const CandidateWindowConfig &window_config)
assignment operator. This will copy just the CandidateWindow from one object to another ...
MsecTimeType ms_before() const
the milliseconds required before the cnadidate start time
Some limits and constants for FLDO.
Definition: Brdz.h:35
Config Module for initialising a CandidateWindow object.
MsecTimeType ms_after() const
the milliseconds required after the candidate end time
CandidateWindow const & window() const
the confugred CandidateWindow
define a window of data surrounding a single pulse candidate