Pulsar::FaradayRotation Class Reference

Corrects Faraday rotation. More...

#include <FaradayRotation.h>

Inheritance diagram for Pulsar::FaradayRotation:
Pulsar::ColdPlasma< Calibration::Faraday, DeFaraday > Pulsar::Transformation< Integration > Pulsar::Algorithm Reference::Able Reference::HeapTracked

Public Member Functions

 FaradayRotation ()
 Default constructor.
double get_relative_measure (const Integration *) const override
 Return the rotation measure.
double get_absolute_measure (const Integration *) const override
 Return the auxiliary rotation measure.
bool get_relative_corrected (const Integration *) const override
 Return true if the rotation measure has been corrected with respect to centre frequency.
bool get_absolute_corrected (const Integration *) const override
 Return true if the auxiliary rotation measure has been corrected with respect to centre frequency.
Jones< double > get_identity () const override
 Return the identity matrix.
void combine (Jones< double > &res, const Jones< double > &J) const override
 Combine matrices.
void apply (Integration *, unsigned channel, Jones< double > rotation) override
 Invert the Faraday rotation in the specified polarization.
void execute (Archive *)
 Apply the current correction to all sub-integrations in an archive.
void revert (Archive *)
 Undo the correction.
void set_rotation_measure (double rotation_measure)
 Set the rotation measure.
double get_rotation_measure () const
 Get the rotation measure.
Public Member Functions inherited from Pulsar::ColdPlasma< Calibration::Faraday, DeFaraday >
 ColdPlasma ()
 Default constructor.
void just_do_it (Archive *)
 Just do the correction (off the books)
void transform (Integration *)
 The default correction.
void setup (const Integration *)
 Set up internal variables before execution.
virtual void update (const Integration *)
 update internal variables before execution
virtual void set (const Integration *data)
 Calls setup then update.
virtual void set_Profile (const Profile *data)
 Set the frequency for which the correction will be computed.
virtual void set_frequency (double frequency)
 Set the frequency for which the correction will be computed.
void execute1 (Integration *)
 Execute the correction for the current get_reference_frequency and get_measure.
void revert_relative (Integration *)
 Undo the relative correction.
void correct (Integration *, unsigned start_chan, unsigned end_chan, double freq)
 Correct the selected range according to effective_measure.
void match (const Integration *reference, Integration *to_be_corrected)
 Correct the second argument as the first argument was corrected.
void set_reference_wavelength (double metres)
 Set the reference wavelength in metres.
double get_reference_wavelength () const
 Get the reference wavelength in metres.
void set_reference_frequency (double MHz)
 Set the reference frequency in MHz.
double get_reference_frequency () const
 Get the reference frequency in MHz.
void set_delta (const Type &d)
 Set the correction due to a change in reference wavelength.
Type get_delta () const
 Get the correction due to a change in reference wavelength.
Public Member Functions inherited from Pulsar::Transformation< Integration >
void operator() (Integration *container)
 Functor interface.
Public Member Functions inherited from Reference::Able
 Able (const Able &)
Ableoperator= (const Able &)
unsigned get_reference_count () const
Public Member Functions inherited from Reference::HeapTracked
 HeapTracked (const HeapTracked &)
HeapTrackedoperator= (const HeapTracked &)
bool __is_on_heap () const

Additional Inherited Members

Public Types inherited from Pulsar::ColdPlasma< Calibration::Faraday, DeFaraday >
typedef Calibration::Faraday::Return Type
Static Public Member Functions inherited from Reference::Able
static size_t get_instance_count ()
Static Public Member Functions inherited from Reference::HeapTracked
static void * operator new (size_t size, void *ptr=0)
static void operator delete (void *location, void *ptr)
static void operator delete (void *location)
static size_t get_heap_queue_size ()
Protected Member Functions inherited from Pulsar::ColdPlasma< Calibration::Faraday, DeFaraday >
void range (Integration *, unsigned start_chan, unsigned end_chan)
 Execute the correction on the selected range.
virtual void update_relative (const Integration *)
 update the relative transformation based on past correction
virtual void update_absolute (const Integration *)
 update the absolute transformation based on past correction
Protected Member Functions inherited from Reference::Able
Handle__reference (bool active) const
void __dereference (bool auto_delete=true) const
Protected Attributes inherited from Pulsar::ColdPlasma< Calibration::Faraday, DeFaraday >
Calibration::Faraday relative
 Computes the effect to be corrected with respect to reference frequency.
Calibration::Faraday absolute
 Computes the effect to be corrected with respect to infinite frequency.
Type delta
 The correction due to a change in reference wavelength.
std::string name
 The name to be used in verbose messages.
std::string val
 The name of the correction measure.

Detailed Description

Corrects Faraday rotation.

Rotates the polarization profiles in each frequency channel about the line of sight to remove Faraday rotation with respect to the reference frequency.

Precondition
The noise contribution to Stokes Q and U should have been removed.
The Integration must have full polarimetric information.
Postcondition
All profiles will have a position angle aligned to the reference frequency

Member Function Documentation

◆ apply()

void Pulsar::FaradayRotation::apply ( Integration * data,
unsigned channel,
Jones< double > rotation )
overridevirtual

Invert the Faraday rotation in the specified polarization.

Implements Pulsar::ColdPlasma< Calibration::Faraday, DeFaraday >.

References Pulsar::Integration::new_PolnProfile().

◆ combine()

void Pulsar::FaradayRotation::combine ( Jones< double > & res,
const Jones< double > & J ) const
inlineoverridevirtual

◆ execute()

void Pulsar::FaradayRotation::execute ( Archive * arch)
virtual

◆ get_absolute_corrected()

bool Pulsar::FaradayRotation::get_absolute_corrected ( const Integration * data) const
overridevirtual

Return true if the auxiliary rotation measure has been corrected with respect to centre frequency.

As returned by psredit -c aux:rmc

Implements Pulsar::ColdPlasma< Calibration::Faraday, DeFaraday >.

References Pulsar::Integration::get_absolute_birefringence_corrected(), and Pulsar::IntegrationManager::verbose.

◆ get_absolute_measure()

double Pulsar::FaradayRotation::get_absolute_measure ( const Integration * data) const
overridevirtual

Return the auxiliary rotation measure.

As returned by psredit -c int:aux:rm

Implements Pulsar::ColdPlasma< Calibration::Faraday, DeFaraday >.

References Pulsar::Integration::get(), and Pulsar::AuxColdPlasmaMeasures::get_rotation_measure().

◆ get_identity()

Jones< double > Pulsar::FaradayRotation::get_identity ( ) const
inlineoverridevirtual

Return the identity matrix.

Implements Pulsar::ColdPlasma< Calibration::Faraday, DeFaraday >.

Referenced by FaradayRotation().

◆ get_relative_corrected()

bool Pulsar::FaradayRotation::get_relative_corrected ( const Integration * data) const
overridevirtual

Return true if the rotation measure has been corrected with respect to centre frequency.

As returned by psredit -c rmc

Implements Pulsar::ColdPlasma< Calibration::Faraday, DeFaraday >.

References Pulsar::Integration::get_faraday_corrected(), and Pulsar::IntegrationManager::verbose.

◆ get_relative_measure()

double Pulsar::FaradayRotation::get_relative_measure ( const Integration * data) const
overridevirtual

Return the rotation measure.

As returned by psredit -c rm

Implements Pulsar::ColdPlasma< Calibration::Faraday, DeFaraday >.

References Pulsar::Integration::get_rotation_measure(), and Pulsar::IntegrationManager::verbose.

◆ revert()

void Pulsar::FaradayRotation::revert ( Archive * arch)
virtual

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

Generated using doxygen 1.14.0