DP3
Public Member Functions | Static Public Member Functions | List of all members
dp3::steps::ApplyBeam Class Referencefinal

DP3 step class to ApplyBeam visibilities from a source model. More...

#include <ApplyBeam.h>

Inheritance diagram for dp3::steps::ApplyBeam:
dp3::steps::Step

Public Member Functions

 ApplyBeam (const common::ParameterSet &, const std::string &prefix, bool substep=false)
 
void finish () override
 Finish the processing of this step and subsequent steps. More...
 
common::Fields getProvidedFields () const override
 
common::Fields getRequiredFields () const override
 Get the fields required by the current step. More...
 
bool invert ()
 
bool process (std::unique_ptr< base::DPBuffer > buffer) override
 
void show (std::ostream &) const override
 Show the step parameters. More...
 
void showTimings (std::ostream &, double duration) const override
 Show the timings. More...
 
void updateInfo (const base::DPInfo &) override
 Update the general info. More...
 
- Public Member Functions inherited from dp3::steps::Step
 Step ()
 
virtual ~Step ()
 
virtual bool accepts (MsType dt) const
 Boolean if this step can process this type of data. More...
 
const base::DPInfogetInfoIn () const
 Get access to the info of the input. More...
 
const base::DPInfogetInfoOut () const
 Get access to the info of the output. More...
 
const Step::ShPtrgetNextStep () const
 Get the next step. More...
 
StepgetPrevStep () const
 Get the previous step. More...
 
virtual MsType outputs () const
 Return which datatype this step outputs. More...
 
virtual bool process (std::unique_ptr< base::BdaBuffer >)
 
void setInfo (const base::DPInfo &)
 
virtual void setNextStep (Step::ShPtr nextStep)
 Set the next step. More...
 
void setPrevStep (Step *prevStep)
 Set the previous step. More...
 
virtual void showCounts (std::ostream &) const
 

Static Public Member Functions

static void ApplyBaselineBasedArrayFactor (const base::DPInfo &info, double time, std::complex< double > *data0, const everybeam::vector3r_t &srcdir, const everybeam::telescope::Telescope *telescope, std::complex< double > *beam_values, const std::pair< size_t, size_t > &baseline_range, const std::pair< size_t, size_t > &station_range, std::barrier<> &barrier, bool invert, everybeam::BeamMode mode, std::mutex *mutex=nullptr, const std::vector< size_t > &skip_station_indices=std::vector< size_t >())
 
static void ApplyBaselineBasedBeam (const base::DPInfo &info, double time, std::complex< double > *data0, float *weight0, const everybeam::vector3r_t &srcdir, const everybeam::telescope::Telescope *telescope, aocommon::MC2x2 *beam_values, const std::pair< size_t, size_t > &baseline_range, const std::pair< size_t, size_t > &station_range, std::barrier<> &barrier, bool invert, everybeam::BeamMode mode, bool do_update_weights=false, std::mutex *mutex=nullptr, const std::vector< size_t > &skip_station_indices=std::vector< size_t >())
 
- Static Public Member Functions inherited from dp3::steps::Step
static void SetThreadingIsInitialized ()
 

Additional Inherited Members

- Public Types inherited from dp3::steps::Step
enum class  MsType { kRegular , kBda }
 To check compatibility between steps before running. More...
 
typedef std::shared_ptr< StepShPtr
 
- Static Public Attributes inherited from dp3::steps::Step
static constexpr dp3::common::Fields kDataField
 
static constexpr dp3::common::Fields kFlagsField
 
static constexpr dp3::common::Fields kUvwField
 
static constexpr dp3::common::Fields kWeightsField
 
- Protected Member Functions inherited from dp3::steps::Step
virtual void addToMS (const std::string &msName)
 
base::DPInfoGetWritableInfoOut ()
 

Detailed Description

DP3 step class to ApplyBeam visibilities from a source model.

This class is a Step class to apply the beam model, optionally inverted. The input MeasurementSet it operates on, must have the LOFAR subtables defining the station layout and tiles/dipoles used.

Constructor & Destructor Documentation

◆ ApplyBeam()

dp3::steps::ApplyBeam::ApplyBeam ( const common::ParameterSet ,
const std::string &  prefix,
bool  substep = false 
)

Construct the object. Parameters are obtained from the parset using the given prefix.

Member Function Documentation

◆ ApplyBaselineBasedArrayFactor()

static void dp3::steps::ApplyBeam::ApplyBaselineBasedArrayFactor ( const base::DPInfo info,
double  time,
std::complex< double > *  data0,
const everybeam::vector3r_t &  srcdir,
const everybeam::telescope::Telescope *  telescope,
std::complex< double > *  beam_values,
const std::pair< size_t, size_t > &  baseline_range,
const std::pair< size_t, size_t > &  station_range,
std::barrier<> &  barrier,
bool  invert,
everybeam::BeamMode  mode,
std::mutex *  mutex = nullptr,
const std::vector< size_t > &  skip_station_indices = std::vector< size_t >() 
)
static

Like ApplyBaselineBasedBeam(), but for array factor only.

◆ ApplyBaselineBasedBeam()

static void dp3::steps::ApplyBeam::ApplyBaselineBasedBeam ( const base::DPInfo info,
double  time,
std::complex< double > *  data0,
float *  weight0,
const everybeam::vector3r_t &  srcdir,
const everybeam::telescope::Telescope *  telescope,
aocommon::MC2x2 *  beam_values,
const std::pair< size_t, size_t > &  baseline_range,
const std::pair< size_t, size_t > &  station_range,
std::barrier<> &  barrier,
bool  invert,
everybeam::BeamMode  mode,
bool  do_update_weights = false,
std::mutex *  mutex = nullptr,
const std::vector< size_t > &  skip_station_indices = std::vector< size_t >() 
)
static

Calculate and apply the beam for processing when parallelizing over baselines. Because the beam is a per-antenna effect, this requires synchronisation, which is performed with the provided barrier.

◆ finish()

void dp3::steps::ApplyBeam::finish ( )
overridevirtual

Finish the processing of this step and subsequent steps.

Implements dp3::steps::Step.

◆ getProvidedFields()

common::Fields dp3::steps::ApplyBeam::getProvidedFields ( ) const
inlineoverridevirtual

Get the fields provided (modified and/or created) by the current step. The returned fields thus should not include (required) fields that are forwarded without modifications.

Implements dp3::steps::Step.

◆ getRequiredFields()

common::Fields dp3::steps::ApplyBeam::getRequiredFields ( ) const
inlineoverridevirtual

Get the fields required by the current step.

Implements dp3::steps::Step.

◆ invert()

bool dp3::steps::ApplyBeam::invert ( )
inline

◆ process()

bool dp3::steps::ApplyBeam::process ( std::unique_ptr< base::DPBuffer buffer)
inlineoverridevirtual

Process the data. When processed, the step should invoke the process function of the next step with the same buffer as argument.

Returns
False at the end of the input. True if there is more input.

Reimplemented from dp3::steps::Step.

◆ show()

void dp3::steps::ApplyBeam::show ( std::ostream &  ) const
overridevirtual

Show the step parameters.

Implements dp3::steps::Step.

◆ showTimings()

void dp3::steps::ApplyBeam::showTimings ( std::ostream &  ,
double  duration 
) const
overridevirtual

Show the timings.

Reimplemented from dp3::steps::Step.

◆ updateInfo()

void dp3::steps::ApplyBeam::updateInfo ( const base::DPInfo )
overridevirtual

Update the general info.

Reimplemented from dp3::steps::Step.


The documentation for this class was generated from the following file: