cosmotool/src/cosmopower.hpp

71 lines
1.2 KiB
C++
Raw Normal View History

#ifndef _COSMOPOWER_HPP
#define _COSMOPOWER_HPP
namespace CosmoTool {
class CosmoPower
{
public:
// PRIMARY VARIABLES
double n;
double K0;
double V_LG_CMB;
double CMB_VECTOR[3];
double h;
double SIGMA8;
double OMEGA_B;
double OMEGA_C;
double Theta_27;
// DERIVED VARIABLES
double OMEGA_0;
double Omega;
double beta;
double OmegaEff;
double Gamma0;
double normPower;
enum CosmoFunction
{
POWER_EFSTATHIOU,
HU_WIGGLES,
HU_BARYON,
OLD_POWERSPECTRUM,
POWER_BARDEEN,
POWER_SUGIYAMA,
POWER_BDM,
POWER_TEST
};
CosmoPower();
void setFunction();
void updateCosmology();
void normalize(double sigma8);
double eval_theta_theta(double k);
double power(double k);
double integrandNormalize(double k);
private:
double (CosmoPower::*eval)(double);
double powerEfstathiou(double k);
double powerHuWiggles(double k);
double powerHuBaryons(double k);
double powerOld(double k);
double powerBardeen(double k);
double powerSugiyama(double k);
double powerBDM(double k);
double powerTest(double k);
};
};
#endif