Class RotationMeasureIntegrator

Inheritance Relationships

Base Type

Class Documentation

class RotationMeasureIntegrator : public IntegratorTemplate<QRotationMeasure, QNumber>

Calculates rotation measure (RM) over the LOS.

The integrators depends on a charged gas density and galactic magnetic field, for example, chargedgas::YMW16 and magneticfields::JF12Field

Public Types

typedef std::pair<std::vector<QLength>, std::vector<double>> tLOSProfile

Get the line of sight profile (integrand of integrateOverLOS) of a direction where N is equidistant number of steps from the Sun’s position to the galactic border

Public Functions

RotationMeasureIntegrator(const std::shared_ptr<magneticfields::MagneticField> &mfield, const std::shared_ptr<chargedgas::ChargedGasDensity> &gdensity)
~RotationMeasureIntegrator()
QRotationMeasure integrateOverLOS(const QDirection &dir) const

Every instantiation/derived class must implement this method which represents an integral over the line of sight of an accumulated quantity \( f(s)\) for a given units::QDirection dir. When multiplied with units::QLength gives the pixel type, QPXL

\[ I(\mathrm{dir}) \sim \int_0^\infty \mathrm{d}s f(s) \]

QRotationMeasure integrateOverLOS(const QDirection &dir, const QNumber&) const

Additionally, for a frequency or energy dependent integrals one should implement the following method too.

std::string getDescription() const

Get Description of the integrator

void setDescription(const std::string &description)

Set Description of the integrator

void setSkymapParameter(const QNumber &p)

Setter for the skymap parameter (requires for the cacheTable, if enabled, to be re-initialized)

QNumber setSkymapParameter() const

Getter for the skymap parameter

void setSunPosition(const Vector3QLength &pos)

Set the position of the Sun in the galaxy as a vector (x, y, z) from which the LOS integration starts, default: (8.5_kpc, 0, 0)

Vector3QLength getSunPosition() const

Get the position of the Sun in the galaxy as a vector (x, y, z)

QLength getMaxDistance(const QDirection &direction) const

Wrapper within the class for distanceToGalBorder(positionSun, direction) becomes getMaxDistance(direction)

virtual void setupCacheTable(int N_x, int N_y, int N_z)

Caching helpers

virtual void initCacheTable()
bool isCacheTableEnabled() const
bool isCacheTableInitialized() const
virtual tLOSProfile getLOSProfile(const QDirection &dir, int Nsteps) const
virtual tLOSProfile getLOSProfile(const QDirection &dir, const QNumber&, int Nsteps) const

Protected Attributes

Vector3QLength positionSun
QNumber skymapParameter
bool cacheEnabled
bool cacheTableInitialized
std::string description