24 #ifndef SKA_CHEETAH_PIPELINE_ACCELERATIONSEARCH_H 25 #define SKA_CHEETAH_PIPELINE_ACCELERATIONSEARCH_H 26 #include "cheetah/pipeline/SinglePulseFactory.h" 27 #include "cheetah/pipeline/Dedispersion.h" 28 #include "cheetah/pipeline/AccelerationSearchAlgoConfig.h" 29 #include "cheetah/pipeline/detail/FldoHandler.h" 30 #include "cheetah/psbc/Psbc.h" 31 #include "cheetah/sift/Sift.h" 32 #include "cheetah/fldo/Fldo.h" 33 #include <panda/DataSwitch.h> 85 template<
typename NumericalT>
91 template<
typename DmHandlerT>
95 , DmHandlerT dm_handler
99 return sp_factory.create(beam_config, dm_handler);
103 template<
typename NumericalT,
typename AccelerationSearchTraitsT>
109 typedef typename panda::is_pointer_wrapper<typename Dedispersion<NumericalT>::DmTrialType>::type DmTrialsType;
112 typedef AccelerationSearchTraitsT Traits;
113 typedef NumericalT value_type;
122 void operator()(TimeFrequencyType&)
override;
143 void operator()(std::shared_ptr<data::Scl>)
const;
150 typedef typename std::remove_pointer<decltype(std::declval<AccelerationSearchTraitsT>().create_acceleration_search_algo(
151 std::declval<AccelerationSearchAlgoConfig const&>()
152 , std::declval<SiftType&>()
154 )>::type AccelerationSearchAlgoType;
169 AccelerationSearchAlgoType
const& acceleration_search_pipeline()
const;
174 FldoHandler _fldo_handler;
176 SiftHandler _sift_handler;
178 std::unique_ptr<AccelerationSearchAlgoType> _acceleration_search;
180 ska::panda::DataSwitch<DmTrialsType> _dm_switch;
182 std::unique_ptr<Dedispersion<NumericalT>> _dedisperser;
183 std::vector<std::shared_ptr<TimeFrequencyType>> _tf_data;
190 #include "detail/AccelerationSearch.cpp" 192 #endif // SKA_CHEETAH_PIPELINE_ACCELERATIONSEARCH_H
decltype(std::declval< T & >().create_fldo_handler(std::declval< DataExport< value_type > & >(), std::declval< CheetahConfig< NumericalT > const & >(), std::declval< BeamConfig< NumericalT > const & >())) has_create_fldo_handler_t
template for testing if type T has a create_fldo_handler function
The acceleration search pipeline.
Generate a suitable SinglePulse implementaion bases on the configuration parameters.
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.
Base class for dedispersion pipeline handlers.
static Dedispersion< NumericalT > * create_dedispersion_pipeline(CheetahConfig< NumericalT > const &cheetah_config, BeamConfig< NumericalT > const &beam_config, DmHandlerT dm_handler)
Default dedispersion is the cheetsh SinglePulse pipeline.