Class InverseComptonIntegrator

Inheritance Relationships

Base Type

Class Documentation

class InverseComptonIntegrator : public IntegratorTemplate<QDiffIntensity, QEnergy>

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

InverseComptonIntegrator(const std::shared_ptr<cosmicrays::CosmicRayDensity> &crdensity_, const std::shared_ptr<photonfields::PhotonField> &phdensity_, const std::shared_ptr<interactions::DifferentialCrossSection> &crossSec_)
~InverseComptonIntegrator()
void setEnergy(const QEnergy &Egamma)
QEnergy getEnergy() const
QDiffIntensity 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) \]

QDiffIntensity integrateOverLOS(const QDirection &dir, const QEnergy&) const

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

QGREmissivity integrateOverEnergy(const Vector3QLength &pos, const QEnergy &Egamma) const
QICInnerIntegral integrateOverPhotonEnergy(const Vector3QLength &pos, const QEnergy &Egamma, const QEnergy &Eelectron) const
void setupCacheTable(int N_x, int N_y, int N_z)

Caching helpers

void initCacheTable()
InverseComptonIntegrator::tLOSProfile getLOSProfile(const QDirection &direction, const QEnergy &Egamma, int Nsteps) const
std::string getDescription() const

Get Description of the integrator

void setDescription(const std::string &description)

Set Description of the integrator

void setSkymapParameter(const QEnergy &p)

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

QEnergy 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)

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

Protected Attributes

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