Template Class IntegratorTemplate¶
- Defined in File IntegratorTemplate.h
Inheritance Relationships¶
Derived Type¶
public PiZeroIntegrator
(Class PiZeroIntegrator)
Class Documentation¶
-
template <class QPXL, typename QSTEP>
classIntegratorTemplate
¶ Defines the main integrator interface and typical methods shared across all integrators.
- Template Parameters
QPXL
: A type of pixel which an integrator returns (e.g., units::QTemperature, units::QDiffIntensity)QSTEP
: A physical quantity (a parameter) that describes a specific map (e.g., units::QFrequency, units::QEnergy)
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