24 #ifndef SKA_CHEETAH_PIPELINE_RFIDETECTIONPIPELINE_H 25 #define SKA_CHEETAH_PIPELINE_RFIDETECTIONPIPELINE_H 27 #include "cheetah/pipeline/PipelineHandler.h" 28 #include "cheetah/rfim/Rfim.h" 29 #include "cheetah/rfim/policy/LastUnflagged.h" 30 #include "cheetah/channel_mask/ConfigurableChannelMask.h" 31 #include "cheetah/channel_mask/PolicyFactory.h" 32 #include "panda/ModuloNumber.h" 38 template<
typename NumericalT>
41 template<
typename NumericalT>
48 template<
typename TimeFrequencyType>
49 inline void operator()(TimeFrequencyType) {}
57 template<typename NumericalT, typename RfimOutputHandler=NullHandler, typename RfiPolicy=rfim::LastUnflagged<typename PipelineHandler<NumericalT>::TimeFrequencyType>>
66 template<
typename... HandlerArgs>
68 virtual ~RfiDetectionPipeline();
70 void operator()(TimeFrequencyType&)
override;
73 RfimOutputHandler& output_handler();
76 class RfiOutputHandler {
80 template<
typename... HandlerArgs>
81 RfiOutputHandler(RfiDetectionPipeline&, HandlerArgs&&...);
82 inline void operator()(ReturnType);
84 RfiDetectionPipeline& _pipeline;
85 RfimOutputHandler _output;
88 class BandPassOutputHandler {
92 BandPassOutputHandler(RfiDetectionPipeline&);
93 inline void operator()(BandPassType
const&);
96 RfiDetectionPipeline& _pipeline;
100 typedef RfiOutputHandler RfimHandler;
101 typedef BandPassOutputHandler BandPassHandler;
102 typedef RfiPolicy Policy;
103 typedef NumericalT NumericalRep;
109 typedef typename RfimType::ReturnType ReturnType;
113 RfiOutputHandler _rfim_handler;
114 BandPassOutputHandler _bandpass_handler;
116 std::vector<TimeFrequencyType*> _data_sequence;
117 panda::AtomicModuloNumber<unsigned, std::memory_order_relaxed> _last_data_sequence_index;
118 panda::AtomicModuloNumber<unsigned, std::memory_order_relaxed> _next_data_sequence_index;
124 #include "detail/RfiDetectionPipeline.cpp" 126 #endif // SKA_CHEETAH_PIPELINE_RFIDETECTIONPIPELINE_H
std::conditional< std::is_same< void, AdapterDataReturnType >::value, DataArgumentType, AdapterDataReturnType >::type ReturnType
the data type the policy will return
Some limits and constants for FLDO.
Parse configuration parameters for a single beam in the pipeline instance of cheetah.
Base class for Cheetah Pipeline Handlers.
Pipeline that performs only RFI detection.
A single dimension representation of the bandPass.