CLASSpp Manual
Cosmology reference and developer manual
Loading...
Searching...
No Matches
lensing_module.h
1#ifndef LENSING_MODULE_H
2#define LENSING_MODULE_H
3
4#include <map>
5#include <string>
6#include <vector>
7
8#include "base_module.h"
9#include "input_module.h"
10
11class LensingModule : public BaseModule {
12 public:
13 LensingModule(InputModulePtr input_module, SpectraModulePtr spectra_module);
14 ~LensingModule();
15 std::map<std::string, std::vector<double>> cl_output(int lmax) const;
16 std::map<std::string, std::vector<double>> cl_output_computed() const;
17 void lensing_cl_at_l(int l, double* cl_lensed) const;
18
19 int l_unlensed_max_;
20 int l_lensed_max_;
22 private:
23 void lensing_init();
24 void lensing_indices();
25 std::map<std::string, std::vector<double>> cl_output_at_l_values(
26 const std::vector<int>& l_values) const;
27 void lensing_lensed_cl_tt(double* ksi, double** d00, double* w8, int nmu);
28 void lensing_lensed_cl_te(double* ksiX, double** d20, double* w8, int nmu);
29 void lensing_lensed_cl_ee_bb(
30 double* ksip, double* ksim, double** d22, double** d2m2, double* w8, int nmu);
31 void lensing_addback_cl_tt(double* cl_tt);
32 void lensing_addback_cl_te(double* cl_te);
33 void lensing_addback_cl_ee_bb(double* cl_ee, double* cl_bb);
34 int lensing_X000(double* mu, int num_mu, int lmax, double* sigma2, double** X000);
35 int lensing_Xp000(double* mu, int num_mu, int lmax, double* sigma2, double** Xp000);
36 int lensing_X220(double* mu, int num_mu, int lmax, double* sigma2, double** X220);
37 int lensing_X022(double* mu, int num_mu, int lmax, double* sigma2, double** X022);
38 int lensing_Xp022(double* mu, int num_mu, int lmax, double* sigma2, double** Xp022);
39 int lensing_X121(double* mu, int num_mu, int lmax, double* sigma2, double** X121);
40 int lensing_X132(double* mu, int num_mu, int lmax, double* sigma2, double** X132);
41 int lensing_X242(double* mu, int num_mu, int lmax, double* sigma2, double** X242);
42 void lensing_d00(double* mu, int num_mu, int lmax, double** d00);
43 void lensing_d11(double* mu, int num_mu, int lmax, double** d11);
44 void lensing_d1m1(double* mu, int num_mu, int lmax, double** d1m1);
45 void lensing_d2m2(double* mu, int num_mu, int lmax, double** d2m2);
46 void lensing_d22(double* mu, int num_mu, int lmax, double** d22);
47 void lensing_d20(double* mu, int num_mu, int lmax, double** d20);
48 void lensing_d31(double* mu, int num_mu, int lmax, double** d3m1);
49 void lensing_d3m1(double* mu, int num_mu, int lmax, double** d3m1);
50 void lensing_d3m3(double* mu, int num_mu, int lmax, double** d3m3);
51 void lensing_d40(double* mu, int num_mu, int lmax, double** d40);
52 void lensing_d4m2(double* mu, int num_mu, int lmax, double** d4m2);
53 void lensing_d4m4(double* mu, int num_mu, int lmax, double** d4m4);
54
58
59 bool has_tt_;
60 bool has_ee_;
61 bool has_te_;
62 bool has_bb_;
63 bool has_pp_;
64 bool has_tp_;
65 bool has_dd_;
66 bool has_td_;
67 bool has_ll_;
68 bool has_tl_;
70 int index_lt_tt_;
71 int index_lt_ee_;
72 int index_lt_te_;
73 int index_lt_bb_;
74 int index_lt_pp_;
75 int index_lt_tp_;
76 int index_lt_dd_;
77 int index_lt_td_;
78 int index_lt_ll_;
79 int index_lt_tl_;
81 int lt_size_;
84
88
89 /* interpolable version: */
90
91 int l_size_;
93 std::vector<int> l_max_lt_;
96 std::vector<double> l_;
97 std::vector<double> cl_lens_;
101 std::vector<double> ddcl_lens_;
104 SpectraModulePtr spectra_module_;
105};
106
107#endif //LENSING_MODULE_H