Template Class IntegratorTemplate

Inheritance Relationships

Derived Type

Class Documentation

template <class QPXL, typename QSTEP>
class IntegratorTemplate

Defines the main integrator interface and typical methods shared across all integrators.

Template Parameters

Subclassed by PiZeroIntegrator

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

IntegratorTemplate(const std::string &description)
virtual ~IntegratorTemplate()
std::string getDescription() const

Get Description of the integrator

void setDescription(const std::string &description)

Set Description of the integrator

void setSkymapParameter(const QSTEP &p)

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

QSTEP setSkymapParameter() const

Getter for the skymap parameter

virtual QPXL integrateOverLOS(const QDirection &dir) const = 0

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) \]

virtual QPXL integrateOverLOS(const QDirection &dir, const QSTEP&) const = 0

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

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 QSTEP&, int Nsteps) const

Protected Attributes

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