71 lines
1.2 KiB
C++
71 lines
1.2 KiB
C++
|
#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
|