Cheetah - SKA - PSS - Prototype Time Domain Search Pipeline
Rfim.h
1 #ifndef SKA_CHEETAH_IQRMCPU_RFIM_H
2 #define SKA_CHEETAH_IQRMCPU_RFIM_H
3 
4 #include "cheetah/rfim/iqrmcpu/Config.h"
5 #include "cheetah/data/TimeFrequency.h"
6 #include "cheetah/rfim/RfimBase.h"
7 #include "cheetah/rfim/PolicyInfo.h"
8 #include "cheetah/rfim/policy/Policy.h"
9 #include "cheetah/utils/Architectures.h"
10 #include "cheetah/data/TimeFrequency.h"
11 #include "cheetah/data/RfimFlaggedData.h"
12 
13 namespace ska {
14 namespace cheetah {
15 namespace rfim {
16 namespace iqrmcpu {
17 
26 template<typename RfimTraits>
27 class Rfim: public RfimBase<Rfim<RfimTraits>, typename RfimTraits::Policy>
28 {
29  typedef RfimBase<Rfim<RfimTraits>, typename RfimTraits::Policy> BaseT;
30  friend BaseT;
31 
32  typedef typename RfimTraits::Policy Policy;
33  typedef typename PolicyInfo<Policy>::AdapterType DataAdapter;
34 
35  public:
36  typedef typename PolicyInfo<Policy>::ReturnType ReturnType;
37  typedef cheetah::Cpu Architecture;
38 
39  public:
40  Rfim(Config const& config);
41  ~Rfim();
42 
43  using BaseT::operator();
44 
45  protected:
46  template<typename DataType>
47  void operator()(DataType const& data, DataAdapter& adpater);
48 
49  private:
50  Config const& _config;
51 };
52 
53 
54 } // namespace iqrmcpu
55 } // namespace rfim
56 } // namespace cheetah
57 } // namespace ska
58 #include "detail/Rfim.cpp"
59 
60 #endif // SKA_CHEETAH_IQRMCPU_RFIM_H
Wrap a Rfim flaggeing style detector and adjust the data according to the flags and a specific policy...
Definition: RfimBase.h:20
A CPU implementation of the iqrmcpu algorithm.
Definition: Rfim.h:27
std::conditional< std::is_same< void, AdapterDataReturnType >::value, DataArgumentType, AdapterDataReturnType >::type ReturnType
the data type the policy will return
Definition: PolicyInfo.h:67
Some limits and constants for FLDO.
Definition: Brdz.h:35