Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
CovarianceTransformer.cpp
Go to the documentation of this file.
2
3std::vector<std::vector<double>> CovarianceTransformer::transform(const std::vector<ParamId>& ids) {
4 std::vector<std::vector<double>> out;
5
6 for (const auto& elem : ids) {
7 std::vector<double> temp;
8 for (const auto& elem2 : ids) {
9 double rho = (*corr_proxy)(elem, elem2, CorrelationProvider::CorrelationType::STAT);
10 temp.push_back(rho);
11 }
12 out.push_back(std::move(temp));
13 }
14
15 return out;
16}
17
18std::map<ParamId, std::map<ParamId, double>>
19CovarianceTransformer::transform(const std::map<ParamId, double>& ids) {
20 std::map<ParamId, std::map<ParamId, double>> out;
21
22 for (const auto& elem : ids) {
23 for (const auto& elem2 : ids) {
24 out[elem.first][elem2.first] =
25 (*corr_proxy)(elem.first, elem2.first,
26 CorrelationProvider::CorrelationType::STAT); // v1.1 : correlation for copula
27 }
28 }
29
30 return out;
31}
32
33std::vector<std::vector<double>>
34CovarianceTransformer::transform(const std::vector<ExperimentObs>& ids) {
35 std::vector<std::vector<double>> out;
36
37 for (const auto& elem : ids) {
38 std::vector<double> temp;
39 for (const auto& elem2 : ids) {
40 double rho = (*corr_proxy)(elem, elem2, CorrelationProvider::CorrelationType::STAT);
41 temp.push_back(rho);
42 }
43 out.push_back(std::move(temp));
44 }
45
46 return out;
47}
48
49std::map<ExperimentObs, std::map<ExperimentObs, double>>
50CovarianceTransformer::transform(const std::map<ExperimentObs, double>& ids) {
51 std::map<ExperimentObs, std::map<ExperimentObs, double>> out;
52
53 for (const auto& elem : ids) {
54 for (const auto& elem2 : ids) {
55 out[elem.first][elem2.first] =
56 (*corr_proxy)(elem.first, elem2.first,
57 CorrelationProvider::CorrelationType::STAT); // v1.1 : correlation for copula
58 }
59 }
60
61 return out;
62}
63
64std::map<BinnedObservableId, std::map<BinnedObservableId, double>>
65CovarianceTransformer::transform(const std::string& experiment,
66 const std::map<BinnedObservableId, double>& ids) {
67 std::map<BinnedObservableId, std::map<BinnedObservableId, double>> out;
68
69 for (const auto& elem : ids) {
70 for (const auto& elem2 : ids) {
71 out[elem.first][elem2.first] =
72 (*corr_proxy)(experiment, elem.first, elem2.first,
73 CorrelationProvider::CorrelationType::STAT); // v1.1 : correlation for copula
74 }
75 }
76
77 return out;
78}
79
80std::vector<std::vector<double>>
81CovarianceTransformer::transform(const std::string& experiment,
82 const std::vector<BinnedObservableId>& ids) {
83 std::vector<std::vector<double>> out;
84
85 for (const auto& elem : ids) {
86 std::vector<double> temp;
87 for (const auto& elem2 : ids) {
88 double rho = (*corr_proxy)(experiment, elem, elem2,
90 temp.push_back(rho);
91 }
92 out.push_back(std::move(temp));
93 }
94
95 return out;
96}
97
98std::vector<ParamId> CovarianceTransformer::check_if_corr(const std::vector<ParamId>& ids) {
99 std::vector<ParamId> out;
100
101 for (const auto& elem : ids) {
102 if ((*par_proxy)(elem, DataType::STD_STAT) > 0) { // v1.1 : eps 1e-50 ? ?
103 out.push_back(elem);
104 }
105 }
106
107 return out;
108}
Helper used to transform collections of identifiers into correlation matrices/maps.
std::vector< ParamId > check_if_corr(const std::vector< ParamId > &ids)
Filters a parameter list, keeping only entries with positive combined uncertainty.
std::vector< std::vector< double > > transform(const std::vector< ParamId > &ids)
Builds a dense correlation matrix for a list of parameters.