Derotation.h
1 //-*-C++-*-
2 /***************************************************************************
3  *
4  * Copyright (C) 2020 by Willem van Straten
5  * Licensed under the Academic Free License version 2.1
6  *
7  ***************************************************************************/
8 
9 // dspsr/Signal/General/dsp/Derotation.h
10 
11 #ifndef __Derotation_h
12 #define __Derotation_h
13 
14 #include "dsp/PlasmaResponse.h"
15 #include "Pulsar/Faraday.h"
16 
17 namespace dsp {
18 
20  /* This class implements the phase-coherent rotation removal kernel, as
21  determined by the frequency response of the interstellar medium. */
22 
23  class Derotation : public PlasmaResponse
24  {
25 
26  public:
27 
29  Derotation ();
30 
32  double delay_time (double freq) const;
33 
35  void prepare (const Observation* input, unsigned channels);
36 
38  void set_rotation_measure (double dm);
39 
41  double get_rotation_measure () const;
42 
43  protected:
44 
45  Calibration::Faraday birefringence;
46 
47  void build (unsigned ndat, unsigned nchan);
48 
49  friend class PlasmaResponse;
50 
52  void build_setup (double chan_freq);
53 
55  Jones<float> build_compute (double chan_freq, double freq);
56 
58 
59  std::vector<bool> supported_channels;
60  };
61 
62 }
63 
64 #endif
double get_rotation_measure() const
Get the rotation measure in .
Definition: Derotation.C:36
void build_setup(double chan_freq)
Set up for the specified channel.
Definition: Derotation.C:51
Contains all Baseband Data Reduction Library classes.
Definition: ASCIIObservation.h:17
Jones< float > build_compute(double chan_freq, double freq)
Called in build to compute the value of the response.
Definition: Derotation.C:56
Derotation()
Null constructor.
Definition: Derotation.C:20
void set_rotation_measure(const Estimate< double > &rotation_measure)
void set_frequency(double MHz)
unsigned nchan
Number of frequency divisions (channels)
Definition: Shape.h:115
Stores information about digital, band-limited, time-varying signals.
Definition: Observation.h:33
double get_rotation() const
double delay_time(double freq) const
Return the refractive delay for the given frequency.
Definition: Derotation.C:92
unsigned ndat
Number of datum in each of the npol*nchan divisions.
Definition: Shape.h:118
std::vector< bool > supported_channels
Supported frequency channels.
Definition: Derotation.h:69
void prepare(const Observation *input, unsigned channels)
Set up and calculate the impulse_pos and impulse_neg attributes.
Definition: Derotation.C:41
void set_rotation_measure(double dm)
Set the rotation measure in .
Definition: Derotation.C:25
void set_reference_wavelength(double metres)

Generated using doxygen 1.8.17