Cheetah - SKA - PSS - Prototype Time Domain Search Pipeline
Config.h
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 #ifndef SKA_CHEETAH_RFIM_CONFIG_H
25 #define SKA_CHEETAH_RFIM_CONFIG_H
26 
27 
28 #include "cheetah/utils/Config.h"
29 #include "cheetah/rfim/ampp/Config.h"
30 #include "cheetah/rfim/cuda/Config.h"
31 #include "cheetah/rfim/sum_threshold/Config.h"
32 #include "cheetah/rfim/iqrmcpu/Config.h"
33 #include "panda/arch/nvidia/Nvidia.h"
34 #include "panda/PoolSelector.h"
35 
36 namespace ska {
37 namespace cheetah {
38 namespace rfim {
39 
47 {
48  public:
49  static const unsigned MaxPriority = 2;
50 
51  public:
52  Config();
53  ~Config();
54 
58  ampp::Config const& ampp_algo_config() const;
59 
63  cuda::Config const& cuda_algo_config() const;
64 
69 
73  iqrmcpu::Config const& iqrmcpu_algo_config() const;
74 
78  bool algo_defined() const;
79 
86  bool flag_policy() const;
87 
88  protected:
89  void add_options(OptionsDescriptionEasyInit& add_options) override;
90 
91  private:
92  ampp::Config _ampp_config;
93  cuda::Config _cuda_config;
94  sum_threshold::Config _sum_threshold_config;
95  iqrmcpu::Config _iqrmcpu_config;
96  bool _policy;
97 };
98 
99 // defines a templated ConfigType for Rfim that adds on pool selection
100 template<typename PoolManagerType>
101 using ConfigType = panda::PoolSelector<PoolManagerType, Config>;
102 
103 
104 } // namespace rfim
105 } // namespace cheetah
106 } // namespace ska
107 
108 #endif // SKA_CHEETAH_RFIM_CONFIG_H
iqrmcpu::Config const & iqrmcpu_algo_config() const
Configuration details for the iqrm RFIM algorithm.
Definition: Config.cpp:67
bool flag_policy() const
data policy
Definition: Config.cpp:80
Base class for module configuration.
Definition: Config.h:42
sum_threshold::Config const & sum_threshold_algo_config() const
Configuration details for the sum_threshold based RFIM algorithm.
Definition: Config.cpp:62
bool algo_defined() const
returns true only if one or more algorithms have been marked as active
Definition: Config.cpp:72
Some limits and constants for FLDO.
Definition: Brdz.h:35
cuda::Config const & cuda_algo_config() const
Configuration details for the cuda based RFIM algorithm.
Definition: Config.cpp:57
ampp::Config const & ampp_algo_config() const
Configuration details for the AMPP RFIM algorithm.
Definition: Config.cpp:52
Configuration Parameters for the RFIM module.
Definition: Config.h:46
Configuration Options for the ampp rfi clipping algorithm.
Definition: Config.h:40