2012-12-13 16:39:27 +01:00
|
|
|
#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();
|
|
|
|
|
2012-12-13 23:27:46 +01:00
|
|
|
void setFunction(CosmoFunction f);
|
2012-12-13 16:39:27 +01:00
|
|
|
|
|
|
|
void updateCosmology();
|
2012-12-13 23:27:46 +01:00
|
|
|
void normalize();
|
2012-12-13 16:39:27 +01:00
|
|
|
|
|
|
|
|
|
|
|
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
|