Class TabularPhotonField

Inheritance Relationships

Base Type

Derived Types

Class Documentation

class TabularPhotonField : public PhotonField

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

Public Functions

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
inline virtual std::string getFieldName() const
inline bool hasRedshiftDependence() const
inline void setFieldName(std::string fieldName)
inline size_t addReference() const
inline size_t removeReference() const
inline int removeReferenceNoDelete() const
inline size_t getReferenceCount() const

Protected Functions

void readPhotonEnergy(std::string filePath)
void readPhotonDensity(std::string filePath)
void readRedshift(std::string filePath)
void initRedshiftScaling()
void checkInputData() const

Protected Attributes

std::vector<double> photonEnergies
std::vector<double> photonDensity
std::vector<double> redshifts
std::vector<double> redshiftScalings
std::string fieldName
bool isRedshiftDependent
mutable size_t _referenceCount