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 
16 BParameter::BParameter(int n, std::string name_i)
17 : bpars(n, 0.)
18 {
19  name = name_i;
20  FlagCsi = true;
21 };
22 
24 {}
25 
26 void 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("BK") == 0) {
61  ModelParamMap.insert(std::make_pair("BK1", std::cref(bpars(0))));
62  ModelParamMap.insert(std::make_pair("BK2", std::cref(bpars(1))));
63  ModelParamMap.insert(std::make_pair("BK3", std::cref(bpars(2))));
64  ModelParamMap.insert(std::make_pair("BK4", std::cref(bpars(3))));
65  ModelParamMap.insert(std::make_pair("BK5", std::cref(bpars(4))));
66  ModelParamMap.insert(std::make_pair("BKscale", std::cref(mu)));
67  return;
68  }
69  if (name.compare("BD") == 0) {
70  ModelParamMap.insert(std::make_pair("BD1", std::cref(bpars(0))));
71  ModelParamMap.insert(std::make_pair("BD2", std::cref(bpars(1))));
72  ModelParamMap.insert(std::make_pair("BD3", std::cref(bpars(2))));
73  ModelParamMap.insert(std::make_pair("BD4", std::cref(bpars(3))));
74  ModelParamMap.insert(std::make_pair("BD5", std::cref(bpars(4))));
75  ModelParamMap.insert(std::make_pair("BDscale", std::cref(mu)));
76  return;
77  }
78  if (name.compare("BKd1") == 0) {
79  ModelParamMap.insert(std::make_pair("BK(1/2)1", std::cref(bpars(0))));
80  ModelParamMap.insert(std::make_pair("BK(1/2)2", std::cref(bpars(1))));
81  ModelParamMap.insert(std::make_pair("BK(1/2)3", std::cref(bpars(2))));
82  ModelParamMap.insert(std::make_pair("BK(1/2)4", std::cref(bpars(3))));
83  ModelParamMap.insert(std::make_pair("BK(1/2)5", std::cref(bpars(4))));
84  ModelParamMap.insert(std::make_pair("BK(1/2)6", std::cref(bpars(5))));
85  ModelParamMap.insert(std::make_pair("BK(1/2)7", std::cref(bpars(6))));
86  ModelParamMap.insert(std::make_pair("BK(1/2)8", std::cref(bpars(7))));
87  ModelParamMap.insert(std::make_pair("BK(1/2)9", std::cref(bpars(8))));
88  ModelParamMap.insert(std::make_pair("BK(1/2)10", std::cref(bpars(9))));
89  ModelParamMap.insert(std::make_pair("BKd_scale", std::cref(mu)));
90  return;
91  }
92  if (name.compare("BKd3") == 0) {
93  ModelParamMap.insert(std::make_pair("BK(3/2)1", std::cref(bpars(0))));
94  ModelParamMap.insert(std::make_pair("BK(3/2)2", std::cref(bpars(1))));
95  ModelParamMap.insert(std::make_pair("BK(3/2)3", std::cref(bpars(2))));
96  ModelParamMap.insert(std::make_pair("BK(3/2)4", std::cref(bpars(3))));
97  ModelParamMap.insert(std::make_pair("BK(3/2)5", std::cref(bpars(4))));
98  ModelParamMap.insert(std::make_pair("BK(3/2)6", std::cref(bpars(5))));
99  ModelParamMap.insert(std::make_pair("BK(3/2)7", std::cref(bpars(6))));
100  ModelParamMap.insert(std::make_pair("BK(3/2)8", std::cref(bpars(7))));
101  ModelParamMap.insert(std::make_pair("BK(3/2)9", std::cref(bpars(8))));
102  ModelParamMap.insert(std::make_pair("BK(3/2)10", std::cref(bpars(9))));
103  ModelParamMap.insert(std::make_pair("BKd_scale", std::cref(mu)));
104  return;
105  } else throw std::runtime_error(name + " is not implemented in BParameter class");
106 }
107 
108 std::vector<std::string> BParameter::parameterList(std::string name_i)
109 {
110  if (name_i.compare("BBs") == 0 && !FlagCsi) return make_vector<std::string>() << "BBs1" << "BBs2" << "BBs3" << "BBs4" << "BBs5" << "BBsscale" << "BBsscheme";
111  if (name_i.compare("BBs") == 0 && FlagCsi) return make_vector<std::string>() << "FBsSqrtBBs1" << "FBsSqrtBBs2" << "FBsSqrtBBs3" << "FBsSqrtBBs4" << "FBsSqrtBBs5" << "BBsscale" << "BBsscheme";
112  if (name_i.compare("BBd") == 0 && !FlagCsi) return make_vector<std::string>() << "BBsoBBd" << "BBd2" << "BBd3" << "BBd4" << "BBd5" << "BBdscale" << "BBdscheme";
113  if (name_i.compare("BBd") == 0 && FlagCsi) return make_vector<std::string>() << "csi" << "FBdSqrtBBd2" << "FBdSqrtBBd3" << "FBdSqrtBBd4" << "FBdSqrtBBd5" << "BBdscale" << "BBdscheme";
114  if (name_i.compare("BK") == 0) return make_vector<std::string>() << "BK1" << "BK2" << "BK3" << "BK4" << "BK5" << "BKscale" << "BKscheme";
115  if (name_i.compare("BD") == 0) return make_vector<std::string>() << "BD1" << "BD2" << "BD3" << "BD4" << "BD5" << "BDscale" << "BDscheme";
116  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"
117  << "BK(1/2)6" << "BK(1/2)7" << "BK(1/2)8" << "BK(1/2)9" << "BK(1/2)10" << "BKd_scale" << "BKd_scheme";
118  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"
119  << "BK(3/2)6" << "BK(3/2)7" << "BK(3/2)8" << "BK(3/2)9" << "BK(3/2)10" << "BKd_scale" << "BKd_scheme";
120  else throw std::runtime_error(name_i + " is not implemented in BParameter class");
121 }
122 
123 bool BParameter::setParameter(std::string name_i, double value)
124 {
125 
126  if (name.compare("BBs") == 0 || name.compare("BBd") == 0) {
127  if (!FlagCsi) {
128  if (name_i.compare("BBsoBBd") == 0) {
129  BBsoBBd = value;
130  return true;
131  } else if (name_i.compare("BBs1") == 0) {
132  setBpars(0, value);
133  return true;
134  } else if (name_i.compare("BBs2") == 0) {
135  setBpars(1, value);
136  return true;
137  } else if (name_i.compare("BBs3") == 0) {
138  setBpars(2, value);
139  return true;
140  } else if (name_i.compare("BBs4") == 0) {
141  setBpars(3, value);
142  return true;
143  } else if (name_i.compare("BBs5") == 0) {
144  setBpars(4, value);
145  return true;
146  } else if (name_i.compare("BBd2") == 0) {
147  setBpars(1, value);
148  return true;
149  } else if (name_i.compare("BBd3") == 0) {
150  setBpars(2, value);
151  return true;
152  } else if (name_i.compare("BBd4") == 0) {
153  setBpars(3, value);
154  return true;
155  } else if (name_i.compare("BBd5") == 0) {
156  setBpars(4, value);
157  return true;
158  }
159  } else {
160  if (name_i.compare("csi") == 0) {
161  csi = value;
162  return true;
163  } else if (name_i.compare("FBsSqrtBBs1") == 0) {
164  FBsSqrtBBs1 = value;
165  return true;
166  } else if (name_i.compare("FBsSqrtBBs2") == 0) {
167  FBsSqrtBBs2 = value;
168  return true;
169  } else if (name_i.compare("FBsSqrtBBs3") == 0) {
170  FBsSqrtBBs3 = value;
171  return true;
172  } else if (name_i.compare("FBsSqrtBBs4") == 0) {
173  FBsSqrtBBs4 = value;
174  return true;
175  } else if (name_i.compare("FBsSqrtBBs5") == 0) {
176  FBsSqrtBBs5 = value;
177  return true;
178  } else if (name_i.compare("FBdSqrtBBd2") == 0) {
179  FBdSqrtBBd2 = value;
180  return true;
181  } else if (name_i.compare("FBdSqrtBBd3") == 0) {
182  FBdSqrtBBd3 = value;
183  return true;
184  } else if (name_i.compare("FBdSqrtBBd4") == 0) {
185  FBdSqrtBBd4 = value;
186  return true;
187  } else if (name_i.compare("FBdSqrtBBd5") == 0) {
188  FBdSqrtBBd5 = value;
189  return true;
190  }
191  }
192  if (name_i.compare("BBdscale") == 0) {
193  setMu(value);
194  return true;
195  } else if (name_i.compare("BBdscheme") == 0) {
196  setScheme((schemes) value);
197  return true;
198  } else if (name_i.compare("BBsscale") == 0) {
199  setMu(value);
200  return true;
201  } else if (name_i.compare("BBsscheme") == 0) {
202  setScheme((schemes) value);
203  return true;
204  }
205  }
206 
207  if (name.compare("BK") == 0) {
208  if (name_i.compare("BK1") == 0) {
209  setBpars(0, value);
210  return true;
211  } else if (name_i.compare("BK2") == 0) {
212  setBpars(1, value);
213  return true;
214  } else if (name_i.compare("BK3") == 0) {
215  setBpars(2, value);
216  return true;
217  } else if (name_i.compare("BK4") == 0) {
218  setBpars(3, value);
219  return true;
220  } else if (name_i.compare("BK5") == 0) {
221  setBpars(4, value);
222  return true;
223  } else if (name_i.compare("BKscale") == 0) {
224  setMu(value);
225  return true;
226  } else if (name_i.compare("BKscheme") == 0) {
227  setScheme((schemes) value);
228  return true;
229  }
230  }
231  if (name.compare("BD") == 0) {
232  if (name_i.compare("BD1") == 0) {
233  setBpars(0, value);
234  return true;
235  } else if (name_i.compare("BD2") == 0) {
236  setBpars(1, value);
237  return true;
238  } else if (name_i.compare("BD3") == 0) {
239  setBpars(2, value);
240  return true;
241  } else if (name_i.compare("BD4") == 0) {
242  setBpars(3, value);
243  return true;
244  } else if (name_i.compare("BD5") == 0) {
245  setBpars(4, value);
246  return true;
247  } else if (name_i.compare("BDscale") == 0) {
248  setMu(value);
249  return true;
250  } else if (name_i.compare("BDscheme") == 0) {
251  setScheme((schemes) value);
252  return true;
253  }
254  }
255 
256  if (name.compare("Bkd1") == 0) {
257  if (name_i.compare("BK(1/2)1") == 0) {
258  setBpars(0, value);
259  return true;
260  } else if (name_i.compare("BK(1/2)2") == 0) {
261  setBpars(1, value);
262  return true;
263  } else if (name_i.compare("BK(1/2)3") == 0) {
264  setBpars(2, value);
265  return true;
266  } else if (name_i.compare("BK(1/2)4") == 0) {
267  setBpars(3, value);
268  return true;
269  } else if (name_i.compare("BK(1/2)5") == 0) {
270  setBpars(4, value);
271  return true;
272  } else if (name_i.compare("BK(1/2)6") == 0) {
273  setBpars(5, value);
274  return true;
275  } else if (name_i.compare("BK(1/2)7") == 0) {
276  setBpars(6, value);
277  return true;
278  } else if (name_i.compare("BK(1/2)8") == 0) {
279  setBpars(7, value);
280  return true;
281  } else if (name_i.compare("BK(1/2)9") == 0) {
282  setBpars(8, value);
283  return true;
284  } else if (name_i.compare("BK(1/2)10") == 0) {
285  setBpars(9, value);
286  return true;
287  }
288  }
289 
290  if (name.compare("Bkd3") == 0) {
291  if (name_i.compare("BK(3/2)1") == 0 && name.compare("Bkd3") == 0) {
292  setBpars(0, value);
293  return true;
294  } else if (name_i.compare("BK(3/2)2") == 0 && name.compare("Bkd3") == 0) {
295  setBpars(1, value);
296  return true;
297  } else if (name_i.compare("BK(3/2)3") == 0 && name.compare("Bkd3") == 0) {
298  setBpars(2, value);
299  return true;
300  } else if (name_i.compare("BK(3/2)4") == 0 && name.compare("Bkd3") == 0) {
301  setBpars(3, value);
302  return true;
303  } else if (name_i.compare("BK(3/2)5") == 0 && name.compare("Bkd3") == 0) {
304  setBpars(4, value);
305  return true;
306  } else if (name_i.compare("BK(3/2)6") == 0 && name.compare("Bkd3") == 0) {
307  setBpars(5, value);
308  return true;
309  } else if (name_i.compare("BK(3/2)7") == 0 && name.compare("Bkd3") == 0) {
310  setBpars(6, value);
311  return true;
312  } else if (name_i.compare("BK(3/2)8") == 0 && name.compare("Bkd3") == 0) {
313  setBpars(7, value);
314  return true;
315  } else if (name_i.compare("BK(3/2)9") == 0 && name.compare("Bkd3") == 0) {
316  setBpars(8, value);
317  return true;
318  } else if (name_i.compare("BK(3/2)10") == 0 && name.compare("Bkd3") == 0) {
319  setBpars(9, value);
320  return true;
321  }
322  }
323 
324  if (name_i.compare("BKd_scale") == 0 && (name.compare("Bkd1") == 0 || name.compare("Bkd3") == 0)) {
325  setMu(value);
326  return true;
327  } else if (name_i.compare("BKd_scheme") == 0 && (name.compare("Bkd1") == 0 || name.compare("Bkd3") == 0)) {
328  setScheme((schemes) value);
329  return true;
330  }
331 
332  return false;
333 
334 }
std_make_vector.h
BParameter::FBsSqrtBBs2
double FBsSqrtBBs2
The product of decay constant times square root of the second bag parameter for .
Definition: BParameter.h:392
BParameter::FBsSqrtBBs4
double FBsSqrtBBs4
The product of decay constant times square root of the fourth bag parameter for .
Definition: BParameter.h:394
make_vector
Definition: std_make_vector.h:15
BParameter::~BParameter
virtual ~BParameter()
The default destructor.
Definition: BParameter.cpp:23
BParameter::parameterList
std::vector< std::string > parameterList(std::string name_i)
A method to get the parameters list.
Definition: BParameter.cpp:108
BParameter::FBdSqrtBBd2
double FBdSqrtBBd2
The product of decay constant times square root of the second bag parameter for .
Definition: BParameter.h:396
BParameter::FBsSqrtBBs1
double FBsSqrtBBs1
The product of decay constant times square root of the first bag parameter for .
Definition: BParameter.h:391
BParameter.h
BParameter::mu
double mu
The scale at which the bag parameters are defined.
Definition: BParameter.h:385
BParameter::FBsSqrtBBs3
double FBsSqrtBBs3
The product of decay constant times square root of the third bag parameter for .
Definition: BParameter.h:393
BParameter::FBdSqrtBBd3
double FBdSqrtBBd3
The product of decay constant times square root of the third bag parameter for .
Definition: BParameter.h:397
schemes
schemes
An enum type for regularization schemes.
Definition: OrderScheme.h:19
BParameter::FBdSqrtBBd4
double FBdSqrtBBd4
The product of decay constant times square root of the fourth bag parameter for .
Definition: BParameter.h:398
BParameter::setScheme
void setScheme(schemes scheme)
A set method for the scheme of the bag parameters.
Definition: BParameter.h:231
BParameter::csi
double csi
The ratio of decay constant times square root of the first bag parameters for and .
Definition: BParameter.h:390
BParameter::BBsoBBd
double BBsoBBd
The ratio of the first bag parameters for and .
Definition: BParameter.h:389
BParameter::FBsSqrtBBs5
double FBsSqrtBBs5
The product of decay constant times square root of the fifth bag parameter for .
Definition: BParameter.h:395
BParameter::setMu
void setMu(double mu)
A set method for the scale of the bag parameters.
Definition: BParameter.h:213
BParameter::setParameter
bool setParameter(std::string name_i, double value)
A set method for setting the parameters.
Definition: BParameter.cpp:123
BParameter::name
std::string name
The meson for which the bag parameters are defined.
Definition: BParameter.h:387
BParameter::BParameter
BParameter(int n)
Constructor.
Definition: BParameter.cpp:12
BParameter::FlagCsi
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
BParameter::setBpars
void setBpars(gslpp::vector< double > bpars)
A set method for a vector of the bag parameters.
Definition: BParameter.h:185
BParameter::bpars
gslpp::vector< double > bpars
A vector of bag parameters.
Definition: BParameter.h:384
BParameter::FBdSqrtBBd5
double FBdSqrtBBd5
The product of decay constant times square root of the fifth bag parameter for .
Definition: BParameter.h:399
BParameter::ModelParameterMapInsert
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