forked from lesgourg/class_public
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEngine.hh
76 lines (55 loc) · 1.62 KB
/
Engine.hh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
//--------------------------------------------------------------------------
//
// Description:
// class Engine :
//base class for Boltzmann code
//
//
// Author List:
// Stephane Plaszczynski ([email protected])
//
// History (add to end):
// creation: Tue Mar 13 15:28:50 CET 2012
//
//------------------------------------------------------------------------
#ifndef Engine_hh
#define Engine_hh
#include<vector>
#include<ostream>
class Engine
{
public:
enum cltype {TT=0,EE,TE,BB,PP,TP,EP}; //P stands for phi (lensing potential)
//constructors
Engine();
//pure virtual:
virtual bool updateParValues(const std::vector<double>& cosmopars)=0;
// units = (micro-K)^2
virtual void getCls(const std::vector<unsigned>& lVec, //input
std::vector<double>& cltt,
std::vector<double>& clte,
std::vector<double>& clee,
std::vector<double>& clbb)=0;
virtual bool getLensing(const std::vector<unsigned>& lVec, //input
std::vector<double>& clpp,
std::vector<double>& cltp,
std::vector<double>& clep)=0;
virtual double z_drag() const=0;
virtual double rs_drag() const =0;
virtual double get_Dv(double z)=0;
virtual double get_Da(double z)=0;
virtual double get_sigma8(double z)=0;
virtual double get_f(double z)=0;
virtual double get_Fz(double z)=0;
virtual double get_Az(double z)=0;
virtual double get_Hz(double z)=0;
virtual double getTauReio() const=0;
// destructor
virtual ~Engine(){};
//write Cl model+lensing in ostream
virtual void writeCls(std::ostream &o);
inline int lmax() {return _lmax;}
protected:
int _lmax;
};
#endif