a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
BParameter.cpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2017 HEPfit Collaboration
3 *
4 *
5 * For the licensing terms see doc/COPYING.
6 */
7
8#include <stdexcept>
9#include "BParameter.h"
10#include "std_make_vector.h"
11
13: bpars(n, 0.)
14{};
15
16BParameter::BParameter(int n, std::string name_i)
17: bpars(n, 0.)
18{
19 name = name_i;
20 FlagCsi = true;
21};
22
24{}
25
26void BParameter::ModelParameterMapInsert(std::map< std::string, std::reference_wrapper<const double> >& ModelParamMap)
27{
28 if (name.compare("BBs") == 0) {
29 ModelParamMap.insert(std::make_pair("BBs1", std::cref(bpars(0))));
30 ModelParamMap.insert(std::make_pair("BBs2", std::cref(bpars(1))));
31 ModelParamMap.insert(std::make_pair("BBs3", std::cref(bpars(2))));
32 ModelParamMap.insert(std::make_pair("BBs4", std::cref(bpars(3))));
33 ModelParamMap.insert(std::make_pair("BBs5", std::cref(bpars(4))));
34 ModelParamMap.insert(std::make_pair("BBsscale", std::cref(mu)));
35 if (FlagCsi) {
36 ModelParamMap.insert(std::make_pair("FBsSqrtBBs1", std::cref(FBsSqrtBBs1)));
37 ModelParamMap.insert(std::make_pair("FBsSqrtBBs2", std::cref(FBsSqrtBBs2)));
38 ModelParamMap.insert(std::make_pair("FBsSqrtBBs3", std::cref(FBsSqrtBBs3)));
39 ModelParamMap.insert(std::make_pair("FBsSqrtBBs4", std::cref(FBsSqrtBBs4)));
40 ModelParamMap.insert(std::make_pair("FBsSqrtBBs5", std::cref(FBsSqrtBBs5)));
41 }
42 return;
43 }
44 if (name.compare("BBd") == 0) {
45 ModelParamMap.insert(std::make_pair("BBsoBBd", std::cref(BBsoBBd)));
46 ModelParamMap.insert(std::make_pair("BBd2", std::cref(bpars(1))));
47 ModelParamMap.insert(std::make_pair("BBd3", std::cref(bpars(2))));
48 ModelParamMap.insert(std::make_pair("BBd4", std::cref(bpars(3))));
49 ModelParamMap.insert(std::make_pair("BBd5", std::cref(bpars(4))));
50 ModelParamMap.insert(std::make_pair("BBdscale", std::cref(mu)));
51 if (FlagCsi) {
52 ModelParamMap.insert(std::make_pair("csi", std::cref(csi)));
53 ModelParamMap.insert(std::make_pair("FBdSqrtBBd2", std::cref(FBdSqrtBBd2)));
54 ModelParamMap.insert(std::make_pair("FBdSqrtBBd3", std::cref(FBdSqrtBBd3)));
55 ModelParamMap.insert(std::make_pair("FBdSqrtBBd4", std::cref(FBdSqrtBBd4)));
56 ModelParamMap.insert(std::make_pair("FBdSqrtBBd5", std::cref(FBdSqrtBBd5)));
57 }
58 return;
59 }
60 if (name.compare("BBs_subleading") == 0) {
61 ModelParamMap.insert(std::make_pair("Rs2", std::cref(bpars(0))));
62 ModelParamMap.insert(std::make_pair("Rs3", std::cref(bpars(1))));
63 return;
64 }
65 if (name.compare("BBd_subleading") == 0) {
66 ModelParamMap.insert(std::make_pair("Rd2", std::cref(bpars(0))));
67 ModelParamMap.insert(std::make_pair("Rd3", std::cref(bpars(1))));
68 return;
69 }
70 if (name.compare("BK") == 0) {
71 ModelParamMap.insert(std::make_pair("BK1", std::cref(bpars(0))));
72 ModelParamMap.insert(std::make_pair("BK2", std::cref(bpars(1))));
73 ModelParamMap.insert(std::make_pair("BK3", std::cref(bpars(2))));
74 ModelParamMap.insert(std::make_pair("BK4", std::cref(bpars(3))));
75 ModelParamMap.insert(std::make_pair("BK5", std::cref(bpars(4))));
76 ModelParamMap.insert(std::make_pair("BKscale", std::cref(mu)));
77 return;
78 }
79 if (name.compare("BD") == 0) {
80 ModelParamMap.insert(std::make_pair("BD1", std::cref(bpars(0))));
81 ModelParamMap.insert(std::make_pair("BD2", std::cref(bpars(1))));
82 ModelParamMap.insert(std::make_pair("BD3", std::cref(bpars(2))));
83 ModelParamMap.insert(std::make_pair("BD4", std::cref(bpars(3))));
84 ModelParamMap.insert(std::make_pair("BD5", std::cref(bpars(4))));
85 ModelParamMap.insert(std::make_pair("BDscale", std::cref(mu)));
86 return;
87 }
88 if (name.compare("BKd1") == 0) {
89 ModelParamMap.insert(std::make_pair("BK(1/2)1", std::cref(bpars(0))));
90 ModelParamMap.insert(std::make_pair("BK(1/2)2", std::cref(bpars(1))));
91 ModelParamMap.insert(std::make_pair("BK(1/2)3", std::cref(bpars(2))));
92 ModelParamMap.insert(std::make_pair("BK(1/2)4", std::cref(bpars(3))));
93 ModelParamMap.insert(std::make_pair("BK(1/2)5", std::cref(bpars(4))));
94 ModelParamMap.insert(std::make_pair("BK(1/2)6", std::cref(bpars(5))));
95 ModelParamMap.insert(std::make_pair("BK(1/2)7", std::cref(bpars(6))));
96 ModelParamMap.insert(std::make_pair("BK(1/2)8", std::cref(bpars(7))));
97 ModelParamMap.insert(std::make_pair("BK(1/2)9", std::cref(bpars(8))));
98 ModelParamMap.insert(std::make_pair("BK(1/2)10", std::cref(bpars(9))));
99 ModelParamMap.insert(std::make_pair("BKd1_scale", std::cref(mu)));
100 return;
101 }
102 if (name.compare("BKd3") == 0) {
103 ModelParamMap.insert(std::make_pair("BK(3/2)1", std::cref(bpars(0))));
104 ModelParamMap.insert(std::make_pair("BK(3/2)2", std::cref(bpars(1))));
105 ModelParamMap.insert(std::make_pair("BK(3/2)3", std::cref(bpars(2))));
106 ModelParamMap.insert(std::make_pair("BK(3/2)4", std::cref(bpars(3))));
107 ModelParamMap.insert(std::make_pair("BK(3/2)5", std::cref(bpars(4))));
108 ModelParamMap.insert(std::make_pair("BK(3/2)6", std::cref(bpars(5))));
109 ModelParamMap.insert(std::make_pair("BK(3/2)7", std::cref(bpars(6))));
110 ModelParamMap.insert(std::make_pair("BK(3/2)8", std::cref(bpars(7))));
111 ModelParamMap.insert(std::make_pair("BK(3/2)9", std::cref(bpars(8))));
112 ModelParamMap.insert(std::make_pair("BK(3/2)10", std::cref(bpars(9))));
113 ModelParamMap.insert(std::make_pair("BKd3_scale", std::cref(mu)));
114 return;
115 } else throw std::runtime_error(name + " is not implemented in BParameter class");
116}
117
118std::vector<std::string> BParameter::parameterList(std::string name_i)
119{
120 if (name_i.compare("BBs") == 0 && !FlagCsi) return make_vector<std::string>() << "BBs1" << "BBs2" << "BBs3" << "BBs4" << "BBs5" << "BBsscale" << "BBsscheme";
121 if (name_i.compare("BBs") == 0 && FlagCsi) return make_vector<std::string>() << "FBsSqrtBBs1" << "FBsSqrtBBs2" << "FBsSqrtBBs3" << "FBsSqrtBBs4" << "FBsSqrtBBs5" << "BBsscale" << "BBsscheme";
122 if (name_i.compare("BBd") == 0 && !FlagCsi) return make_vector<std::string>() << "BBsoBBd" << "BBd2" << "BBd3" << "BBd4" << "BBd5" << "BBdscale" << "BBdscheme";
123 if (name_i.compare("BBd") == 0 && FlagCsi) return make_vector<std::string>() << "csi" << "FBdSqrtBBd2" << "FBdSqrtBBd3" << "FBdSqrtBBd4" << "FBdSqrtBBd5" << "BBdscale" << "BBdscheme";
124 if (name_i.compare("BBs_subleading") == 0) return make_vector<std::string>() << "Rs2" << "Rs3" << "BBsscale" << "BBsscheme";
125 if (name_i.compare("BBd_subleading") == 0) return make_vector<std::string>() << "Rd2" << "Rd3" << "BBdscale" << "BBdscheme";
126 if (name_i.compare("BK") == 0) return make_vector<std::string>() << "BK1" << "BK2" << "BK3" << "BK4" << "BK5" << "BKscale" << "BKscheme";
127 if (name_i.compare("BD") == 0) return make_vector<std::string>() << "BD1" << "BD2" << "BD3" << "BD4" << "BD5" << "BDscale" << "BDscheme";
128 if (name_i.compare("BKd1") == 0) return make_vector<std::string>() << "BK(1/2)1" << "BK(1/2)2" << "BK(1/2)3" << "BK(1/2)4" << "BK(1/2)5"
129 << "BK(1/2)6" << "BK(1/2)7" << "BK(1/2)8" << "BK(1/2)9" << "BK(1/2)10" << "BKd1_scale" << "BKd1_scheme";
130 if (name_i.compare("BKd3") == 0) return make_vector<std::string>() << "BK(3/2)1" << "BK(3/2)2" << "BK(3/2)3" << "BK(3/2)4" << "BK(3/2)5"
131 << "BK(3/2)6" << "BK(3/2)7" << "BK(3/2)8" << "BK(3/2)9" << "BK(3/2)10" << "BKd3_scale" << "BKd3_scheme";
132 else throw std::runtime_error(name_i + " is not implemented in BParameter class");
133}
134
135bool BParameter::setParameter(std::string name_i, double value)
136{
137
138 if (name.compare("BBs") == 0) {
139 if (!FlagCsi) {
140 if (name_i.compare("BBs1") == 0) {
141 setBpars(0, value);
142 return true;
143 } else if (name_i.compare("BBs2") == 0) {
144 setBpars(1, value);
145 return true;
146 } else if (name_i.compare("BBs3") == 0) {
147 setBpars(2, value);
148 return true;
149 } else if (name_i.compare("BBs4") == 0) {
150 setBpars(3, value);
151 return true;
152 } else if (name_i.compare("BBs5") == 0) {
153 setBpars(4, value);
154 return true;
155 }
156 } else {
157 if (name_i.compare("FBsSqrtBBs1") == 0) {
158 FBsSqrtBBs1 = value;
159 return true;
160 } else if (name_i.compare("FBsSqrtBBs2") == 0) {
161 FBsSqrtBBs2 = value;
162 return true;
163 } else if (name_i.compare("FBsSqrtBBs3") == 0) {
164 FBsSqrtBBs3 = value;
165 return true;
166 } else if (name_i.compare("FBsSqrtBBs4") == 0) {
167 FBsSqrtBBs4 = value;
168 return true;
169 } else if (name_i.compare("FBsSqrtBBs5") == 0) {
170 FBsSqrtBBs5 = value;
171 return true;
172 }
173 }
174 if (name_i.compare("BBsscale") == 0) {
175 setMu(value);
176 return true;
177 } else if (name_i.compare("BBsscheme") == 0) {
178 setScheme((schemes) value);
179 return true;
180 }
181 }
182 if (name.compare("BBd") == 0) {
183 if (!FlagCsi) {
184 if (name_i.compare("BBsoBBd") == 0) {
185 BBsoBBd = value;
186 return true;
187 } else if (name_i.compare("BBd2") == 0) {
188 setBpars(1, value);
189 return true;
190 } else if (name_i.compare("BBd3") == 0) {
191 setBpars(2, value);
192 return true;
193 } else if (name_i.compare("BBd4") == 0) {
194 setBpars(3, value);
195 return true;
196 } else if (name_i.compare("BBd5") == 0) {
197 setBpars(4, value);
198 return true;
199 }
200 } else {
201 if (name_i.compare("csi") == 0) {
202 csi = value;
203 return true;
204 } else if (name_i.compare("FBdSqrtBBd2") == 0) {
205 FBdSqrtBBd2 = value;
206 return true;
207 } else if (name_i.compare("FBdSqrtBBd3") == 0) {
208 FBdSqrtBBd3 = value;
209 return true;
210 } else if (name_i.compare("FBdSqrtBBd4") == 0) {
211 FBdSqrtBBd4 = value;
212 return true;
213 } else if (name_i.compare("FBdSqrtBBd5") == 0) {
214 FBdSqrtBBd5 = value;
215 return true;
216 }
217 }
218 if (name_i.compare("BBdscale") == 0) {
219 setMu(value);
220 return true;
221 } else if (name_i.compare("BBdscheme") == 0) {
222 setScheme((schemes) value);
223 return true;
224 }
225 }
226
227 if (name.compare("BBs_subleading") == 0) {
228 if (name_i.compare("Rs2") == 0) {
229 setBpars(0, value);
230 return true;
231 } else if (name_i.compare("Rs3") == 0) {
232 setBpars(1, value);
233 return true;
234 }
235 }
236 if (name.compare("BBd_subleading") == 0) {
237 if (name_i.compare("Rd2") == 0) {
238 setBpars(0, value);
239 return true;
240 } else if (name_i.compare("Rd3") == 0) {
241 setBpars(1, value);
242 return true;
243 }
244 }
245
246 if (name.compare("BK") == 0) {
247 if (name_i.compare("BK1") == 0) {
248 setBpars(0, value);
249 return true;
250 } else if (name_i.compare("BK2") == 0) {
251 setBpars(1, value);
252 return true;
253 } else if (name_i.compare("BK3") == 0) {
254 setBpars(2, value);
255 return true;
256 } else if (name_i.compare("BK4") == 0) {
257 setBpars(3, value);
258 return true;
259 } else if (name_i.compare("BK5") == 0) {
260 setBpars(4, value);
261 return true;
262 } else if (name_i.compare("BKscale") == 0) {
263 setMu(value);
264 return true;
265 } else if (name_i.compare("BKscheme") == 0) {
266 setScheme((schemes) value);
267 return true;
268 }
269 }
270 if (name.compare("BD") == 0) {
271 if (name_i.compare("BD1") == 0) {
272 setBpars(0, value);
273 return true;
274 } else if (name_i.compare("BD2") == 0) {
275 setBpars(1, value);
276 return true;
277 } else if (name_i.compare("BD3") == 0) {
278 setBpars(2, value);
279 return true;
280 } else if (name_i.compare("BD4") == 0) {
281 setBpars(3, value);
282 return true;
283 } else if (name_i.compare("BD5") == 0) {
284 setBpars(4, value);
285 return true;
286 } else if (name_i.compare("BDscale") == 0) {
287 setMu(value);
288 return true;
289 } else if (name_i.compare("BDscheme") == 0) {
290 setScheme((schemes) value);
291 return true;
292 }
293 }
294
295 if (name.compare("BKd1") == 0) {
296 if (name_i.compare("BK(1/2)1") == 0) {
297 setBpars(0, value);
298 return true;
299 } else if (name_i.compare("BK(1/2)2") == 0) {
300 setBpars(1, value);
301 return true;
302 } else if (name_i.compare("BK(1/2)3") == 0) {
303 setBpars(2, value);
304 return true;
305 } else if (name_i.compare("BK(1/2)4") == 0) {
306 setBpars(3, value);
307 return true;
308 } else if (name_i.compare("BK(1/2)5") == 0) {
309 setBpars(4, value);
310 return true;
311 } else if (name_i.compare("BK(1/2)6") == 0) {
312 setBpars(5, value);
313 return true;
314 } else if (name_i.compare("BK(1/2)7") == 0) {
315 setBpars(6, value);
316 return true;
317 } else if (name_i.compare("BK(1/2)8") == 0) {
318 setBpars(7, value);
319 return true;
320 } else if (name_i.compare("BK(1/2)9") == 0) {
321 setBpars(8, value);
322 return true;
323 } else if (name_i.compare("BK(1/2)10") == 0) {
324 setBpars(9, value);
325 return true;
326 } else if (name_i.compare("BKd1_scale") == 0) {
327 setMu(value);
328 return true;
329 } else if (name_i.compare("BKd1_scheme") == 0) {
330 setScheme((schemes) value);
331 return true;
332 }
333 }
334
335 if (name.compare("BKd3") == 0) {
336 if (name_i.compare("BK(3/2)1") == 0) {
337 setBpars(0, value);
338 return true;
339 } else if (name_i.compare("BK(3/2)2") == 0) {
340 setBpars(1, value);
341 return true;
342 } else if (name_i.compare("BK(3/2)3") == 0) {
343 setBpars(2, value);
344 return true;
345 } else if (name_i.compare("BK(3/2)4") == 0) {
346 setBpars(3, value);
347 return true;
348 } else if (name_i.compare("BK(3/2)5") == 0) {
349 setBpars(4, value);
350 return true;
351 } else if (name_i.compare("BK(3/2)6") == 0) {
352 setBpars(5, value);
353 return true;
354 } else if (name_i.compare("BK(3/2)7") == 0) {
355 setBpars(6, value);
356 return true;
357 } else if (name_i.compare("BK(3/2)8") == 0) {
358 setBpars(7, value);
359 return true;
360 } else if (name_i.compare("BK(3/2)9") == 0) {
361 setBpars(8, value);
362 return true;
363 } else if (name_i.compare("BK(3/2)10") == 0) {
364 setBpars(9, value);
365 return true;
366 } else if (name_i.compare("BKd3_scale") == 0) {
367 setMu(value);
368 return true;
369 } else if (name_i.compare("BKd3_scheme") == 0) {
370 setScheme((schemes) value);
371 return true;
372 }
373 }
374
375 return false;
376
377}
gslpp::vector< double > bpars
A vector of bag parameters.
Definition: BParameter.h:384
double FBsSqrtBBs5
The product of decay constant times square root of the fifth bag parameter for .
Definition: BParameter.h:395
void ModelParameterMapInsert(std::map< std::string, std::reference_wrapper< const double > > &ModelParamMap)
A method to pass the list of parameters as observables.
Definition: BParameter.cpp:26
void setScheme(schemes scheme)
A set method for the scheme of the bag parameters.
Definition: BParameter.h:231
std::string name
The meson for which the bag parameters are defined.
Definition: BParameter.h:387
double FBdSqrtBBd4
The product of decay constant times square root of the fourth bag parameter for .
Definition: BParameter.h:398
bool setParameter(std::string name_i, double value)
A set method for setting the parameters.
Definition: BParameter.cpp:135
double FBsSqrtBBs1
The product of decay constant times square root of the first bag parameter for .
Definition: BParameter.h:391
double FBsSqrtBBs2
The product of decay constant times square root of the second bag parameter for .
Definition: BParameter.h:392
void setMu(double mu)
A set method for the scale of the bag parameters.
Definition: BParameter.h:213
double FBdSqrtBBd5
The product of decay constant times square root of the fifth bag parameter for .
Definition: BParameter.h:399
double FBsSqrtBBs3
The product of decay constant times square root of the third bag parameter for .
Definition: BParameter.h:393
double FBsSqrtBBs4
The product of decay constant times square root of the fourth bag parameter for .
Definition: BParameter.h:394
void setBpars(gslpp::vector< double > bpars)
A set method for a vector of the bag parameters.
Definition: BParameter.h:185
double FBdSqrtBBd2
The product of decay constant times square root of the second bag parameter for .
Definition: BParameter.h:396
bool FlagCsi
A flag to define, if true, a set of model parameters for the product of decay constant times square r...
Definition: BParameter.h:388
virtual ~BParameter()
The default destructor.
Definition: BParameter.cpp:23
double FBdSqrtBBd3
The product of decay constant times square root of the third bag parameter for .
Definition: BParameter.h:397
BParameter(int n)
Constructor.
Definition: BParameter.cpp:12
double csi
The ratio of decay constant times square root of the first bag parameters for and .
Definition: BParameter.h:390
double mu
The scale at which the bag parameters are defined.
Definition: BParameter.h:385
std::vector< std::string > parameterList(std::string name_i)
A method to get the parameters list.
Definition: BParameter.cpp:118
double BBsoBBd
The ratio of the first bag parameters for and .
Definition: BParameter.h:389
schemes
An enum type for regularization schemes.
Definition: OrderScheme.h:20