Photon Fields

group PhotonFields

Photon fields for particle interactions.

Functions

inline PhotonField()
virtual double getPhotonDensity(double ePhoton, double z = 0.) const = 0

returns comoving photon density [1/m^3]. multiply with (1+z^3) for physical number density.

Parameters:
  • ePhoton – photon energy [J]

  • z – redshift (if redshift dependent, default = 0.)

virtual double getMinimumPhotonEnergy(double z) const = 0
virtual double getMaximumPhotonEnergy(double z) const = 0
inline virtual std::string getFieldName() const
inline virtual double getRedshiftScaling(double z) const

returns overall comoving scaling factor (cf. CRPropa3-data/calc_scaling.py)

Parameters:

z – redshift

inline bool hasRedshiftDependence() const
inline void setFieldName(std::string fieldName)
TabularPhotonField(const std::string fieldName, const bool isRedshiftDependent = true)
virtual double getPhotonDensity(double ePhoton, double z = 0.) const

returns comoving photon density [1/m^3]. multiply with (1+z^3) for physical number density.

Parameters:
  • ePhoton – photon energy [J]

  • z – redshift (if redshift dependent, default = 0.)

virtual double getRedshiftScaling(double z) const

returns overall comoving scaling factor (cf. CRPropa3-data/calc_scaling.py)

Parameters:

z – redshift

virtual double getMinimumPhotonEnergy(double z) const
virtual double getMaximumPhotonEnergy(double z) const
void readPhotonEnergy(std::string filePath)
void readPhotonDensity(std::string filePath)
void readRedshift(std::string filePath)
void initRedshiftScaling()
void checkInputData() const
inline IRB_Kneiske04()
inline IRB_Stecker05()
inline IRB_Franceschini08()
inline IRB_Finke10()
inline IRB_Dominguez11()
inline IRB_Gilmore12()
inline IRB_Stecker16_upper()
inline IRB_Stecker16_lower()
inline IRB_Saldana21()
inline IRB_Saldana21_upper()
inline IRB_Saldana21_lower()
inline IRB_Finke22()
inline URB_Protheroe96()
inline URB_Fixsen11()
inline URB_Nitu21()
BlackbodyPhotonField(const std::string fieldName, const double blackbodyTemperature)
virtual double getPhotonDensity(double ePhoton, double z = 0.) const

returns comoving photon density [1/m^3]. multiply with (1+z^3) for physical number density.

Parameters:
  • ePhoton – photon energy [J]

  • z – redshift (if redshift dependent, default = 0.)

virtual double getMinimumPhotonEnergy(double z) const
virtual double getMaximumPhotonEnergy(double z) const
void setQuantile(double q)
inline CMB()

Variables

std::string fieldName
bool isRedshiftDependent
std::vector<double> photonEnergies
std::vector<double> photonDensity
std::vector<double> redshifts
std::vector<double> redshiftScalings
double blackbodyTemperature
double quantile
class PhotonField : public Referenced
#include <PhotonBackground.h>

Abstract base class for photon fields.

Subclassed by BlackbodyPhotonField, TabularPhotonField

class TabularPhotonField : public PhotonField
#include <PhotonBackground.h>

Photon field decorator for tabulated photon fields.

This class reads photon field data from files; The first file must be a list of photon energies [J], named fieldName_photonEnergy.txt The second file must be a list of comoving photon field densities [1/m^3], named fieldName_photonDensity.txt Optionally, a third file contains redshifts, named fieldName_redshift.txt

Subclassed by IRB_Dominguez11, IRB_Finke10, IRB_Finke22, IRB_Franceschini08, IRB_Gilmore12, IRB_Kneiske04, IRB_Saldana21, IRB_Saldana21_lower, IRB_Saldana21_upper, IRB_Stecker05, IRB_Stecker16_lower, IRB_Stecker16_upper, URB_Fixsen11, URB_Nitu21, URB_Protheroe96

class IRB_Kneiske04 : public TabularPhotonField
#include <PhotonBackground.h>

Extragalactic background light model from Kneiske et al. 2004.

Source info: DOI:10.1051/0004-6361:20031542, https://www.aanda.org/articles/aa/pdf/2004/03/aa3848.pdf, figure 1 (“Best-fit” model)

class IRB_Stecker05 : public TabularPhotonField
#include <PhotonBackground.h>

Extragalactic background light model by Stecker at al. 2005.

Source info: DOI:10.1086/506188, astro-ph/0510449 https://iopscience.iop.org/article/10.1086/506188/pdf

class IRB_Franceschini08 : public TabularPhotonField
#include <PhotonBackground.h>

Extragalactic background light model from Franceschini et al. 2008.

Source info: DOI:10.1051/0004-6361:200809691 https://arxiv.org/pdf/0805.1841.pdf, tables 1 and 2

class IRB_Finke10 : public TabularPhotonField
#include <PhotonBackground.h>

Extragalactic background light model from Finke et al. 2010.

Source info: DOI:10.1088/0004-637X/712/1/238 https://iopscience.iop.org/article/10.1088/0004-637X/712/1/238/pdf

class IRB_Dominguez11 : public TabularPhotonField
#include <PhotonBackground.h>

Extragalactic background light model from Dominguez et al. 2011.

Source info: DOI:10.1111/j.1365-2966.2010.17631.x https://academic.oup.com/mnras/article/410/4/2556/1008012

class IRB_Gilmore12 : public TabularPhotonField
#include <PhotonBackground.h>

Extragalactic background light model from Gilmore et al. 2012.

Source info: DOI:10.1111/j.1365-2966.2012.20841.x https://academic.oup.com/mnras/article/422/4/3189/1050758

class IRB_Stecker16_upper : public TabularPhotonField
#include <PhotonBackground.h>

Extragalactic background light model from Stecker et al. 2016 (upper-bound model)

Source info: DOI:10.3847/0004-637X/827/1/6 https://iopscience.iop.org/article/10.3847/0004-637X/827/1/6

class IRB_Stecker16_lower : public TabularPhotonField
#include <PhotonBackground.h>

Extragalactic background light model from Stecker et al. 2016 (lower-bound model)

Source info: DOI:10.3847/0004-637X/827/1/6 https://iopscience.iop.org/article/10.3847/0004-637X/827/1/6

class IRB_Saldana21 : public TabularPhotonField
#include <PhotonBackground.h>

Extragalactic background light model from Saldana-Lopez et al. 2021.

Source info: DOI:10.1093/mnras/stab2393 https://ui.adsabs.harvard.edu/abs/2021MNRAS.507.5144S/abstract

class IRB_Saldana21_upper : public TabularPhotonField
#include <PhotonBackground.h>

Extragalactic background light model from Saldana-Lopez et al. 2021 (upper-bound model)

Source info: DOI:10.1093/mnras/stab2393 https://ui.adsabs.harvard.edu/abs/2021MNRAS.507.5144S/abstract

class IRB_Saldana21_lower : public TabularPhotonField
#include <PhotonBackground.h>

Extragalactic background light model from Saldana-Lopez et al. 2021 (lower-bound model)

Source info: DOI:10.1093/mnras/stab2393 https://ui.adsabs.harvard.edu/abs/2021MNRAS.507.5144S/abstract

class IRB_Finke22 : public TabularPhotonField
#include <PhotonBackground.h>

Extragalactic background light model from Finke et al. 2022.

Source info: DOI:10.3847/1538-4357/ac9843 https://iopscience.iop.org/article/10.3847/1538-4357/ac9843/pdf

class URB_Protheroe96 : public TabularPhotonField
class URB_Fixsen11 : public TabularPhotonField
class URB_Nitu21 : public TabularPhotonField
class BlackbodyPhotonField : public PhotonField
#include <PhotonBackground.h>

Photon field decorator for black body photon fields.

Subclassed by CMB

class CMB : public BlackbodyPhotonField
#include <PhotonBackground.h>

Cosmic mircowave background photon field.

Source info: This field is an isotropic blackbody photon field with temperature T = 2.73 K

class URB
#include <PhotonBackground.h>

Extragalactic background light model from Protheroe & Biermann 1996.

Extragalactic background light model by Nitu et al.

Extragalactic background light model based on ARCADE2 observations, by Fixsen et al. Note that this model does not cover the same energy range as other URB models. Here, only ~10 MHz - 10 GHz is considered. Therefore, it only makes sense to use this model in very specific studies.

Source info: DOI:10.1016/S0927-6505(96)00041-2 https://www.sciencedirect.com/science/article/abs/pii/S0927650596000412

Source info: DOI:10.1088/0004-637X/734/1/5 https://iopscience.iop.org/article/10.1088/0004-637X/734/1/5

Source info: DOI:10.1016/j.astropartphys.2020.102532 https://www.sciencedirect.com/science/article/pii/S0927650520301043?