Corrects dispersive delays. More...

#include <Dispersion.h>

Inheritance diagram for Pulsar::Dispersion:
Pulsar::ColdPlasma< DispersionDelay, Dedisperse > Pulsar::Transformation< Integration > Pulsar::Algorithm Reference::Able Reference::HeapTracked

Public Member Functions

 Dispersion ()
 Default constructor.
 
double get_correction_measure (const Integration *)
 Return the dispersion measure due to the ISM.
 
double get_absolute_measure (const Integration *)
 Return the auxiliary dispersion measure (0 if corrected)
 
bool get_corrected (const Integration *data)
 Return true if the Integration has been dedispersed.
 
double get_effective_measure (const Integration *)
 Return the effective dispersion measure that remains to be corrected.
 
double get_identity ()
 Return zero delay.
 
void combine (double &result, const double &add)
 Combine delays.
 
void set (const Integration *)
 Setup all necessary attributes. More...
 
void apply (Integration *, unsigned channel)
 Phase rotate each profile by the correction.
 
void execute (Archive *)
 Apply the current correction to all sub-integrations in an archive. More...
 
void revert (Archive *)
 Undo the correction. More...
 
void set_dispersion_measure (double dispersion_measure)
 Set the dispersion measure.
 
double get_dispersion_measure () const
 Get the dispersion measure.
 
double get_shift () const
 Get the phase shift.
 
- Public Member Functions inherited from Pulsar::ColdPlasma< DispersionDelay, Dedisperse >
 ColdPlasma ()
 Default constructor.
 
virtual void combine (Type &result, const Type &add)=0
 Derived classes must define the operator.
 
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. More...
 
void update (const Integration *)
 update internal variables before execution More...
 
virtual void set_Profile (const Profile *data)
 Set the frequency for which the correction will be computed.
 
void execute1 (Integration *)
 Execute the correction.
 
void revert1 (Integration *)
 Undo the correction.
 
void correct (Integration *, unsigned ichan, unsigned jchan, double freq)
 Correct the selected range according to effective_measure. More...
 
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.
 
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_measure (double measure)
 Set the correction measure.
 
double get_measure () const
 Get the correction measure.
 
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
 

Protected Attributes

double folding_period
 
IntegrationBarycentre bary
 
double earth_doppler
 
- Protected Attributes inherited from Pulsar::ColdPlasma< DispersionDelay, Dedisperse >
DispersionDelay corrector
 The dielectric effect corrector.
 
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.
 

Static Protected Attributes

static Option< bool > barycentric_correction
 

Additional Inherited Members

- Public Types inherited from Pulsar::ColdPlasma< DispersionDelay, Dedisperse >
typedef DispersionDelay ::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< DispersionDelay, Dedisperse >
void range (Integration *, unsigned ichan, unsigned jchan)
 Execute the correction on the selected range. More...
 
- Protected Member Functions inherited from Reference::Able
Handle__reference (bool active) const
 
void __dereference (bool auto_delete=true) const
 

Detailed Description

Corrects dispersive delays.

Rotates the phase of each profile in each frequency channel to remove dispersive delays with respect to the reference frequency.

Postcondition
All profiles will be phase-aligned to the reference frequency

Member Function Documentation

◆ execute()

void Pulsar::Dispersion::execute ( Archive arch)
virtual

Apply the current correction to all sub-integrations in an archive.

Execute the correction for an entire Pulsar::Archive.

Reimplemented from Pulsar::ColdPlasma< DispersionDelay, Dedisperse >.

References Pulsar::Archive::get(), Pulsar::Archive::set_dedispersed(), and Pulsar::Archive::set_dispersion_measure().

Referenced by Pulsar::Interpreter::dedisperse().

◆ revert()

void Pulsar::Dispersion::revert ( Archive arch)
virtual

Undo the correction.

Undo the correction for an entire Pulsar::Archive.

Reimplemented from Pulsar::ColdPlasma< DispersionDelay, Dedisperse >.

References Pulsar::Archive::set_dedispersed().

◆ set()

void Pulsar::Dispersion::set ( const Integration data)
virtual

Setup all necessary attributes.

Set attributes in preparation for execute.

Reimplemented from Pulsar::ColdPlasma< DispersionDelay, Dedisperse >.

References Pulsar::Integration::get_folding_period().


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

Generated using doxygen 1.8.17