FlavourWilsonCoefficient.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2015 HEPfit Collaboration
3  * All rights reserved.
4  *
5  * For the licensing terms see doc/COPYING.
6  */
7 
9 
10 const std::string FlavourWilsonCoefficient::FlavourWilsonCoefficientvars[NFlavourWilsonCoefficientvars] = {"absDC1","absDC2","absDC3","absDC4","absDC5","absDC6","absDC7","absDC8","absDC9","absDC10","absDC7g","absDC8g",
11  "argDC1","argDC2","argDC3","argDC4","argDC5","argDC6","argDC7","argDC8","argDC9","argDC10","argDC7g","argDC8g",
12  "absDC7p","absDC8p","absDC9p","absDC10p","absDC7gp","absDC8gp",
13  "argDC7p","argDC8p","argDC9p","argDC10p","argDC7gp","argDC8gp"};
14 
16 
17 
18  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("absDC1", boost::cref(absDC1)));
19  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("absDC2", boost::cref(absDC2)));
20  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("absDC3", boost::cref(absDC3)));
21  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("absDC4", boost::cref(absDC4)));
22  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("absDC5", boost::cref(absDC5)));
23  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("absDC6", boost::cref(absDC6)));
24  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("absDC7", boost::cref(absDC7)));
25  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("absDC8", boost::cref(absDC8)));
26  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("absDC9", boost::cref(absDC9)));
27  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("absDC10", boost::cref(absDC10)));
28  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("absDC7g", boost::cref(absDC7g)));
29  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("absDC8g", boost::cref(absDC8g)));
30 
31  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("argDC1", boost::cref(argDC1)));
32  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("argDC2", boost::cref(argDC2)));
33  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("argDC3", boost::cref(argDC3)));
34  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("argDC4", boost::cref(argDC4)));
35  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("argDC5", boost::cref(argDC5)));
36  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("argDC6", boost::cref(argDC6)));
37  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("argDC7", boost::cref(argDC7)));
38  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("argDC8", boost::cref(argDC8)));
39  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("argDC9", boost::cref(argDC9)));
40  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("argDC10", boost::cref(argDC10)));
41  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("argDC7g", boost::cref(argDC7g)));
42  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("argDC8g", boost::cref(argDC8g)));
43 
44 
45  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("absDC7p", boost::cref(absDC7p)));
46  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("absDC8p", boost::cref(absDC8p)));
47  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("absDC9p", boost::cref(absDC9p)));
48  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("absDC10p", boost::cref(absDC10p)));
49  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("absDC7gp", boost::cref(absDC7gp)));
50  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("absDC8gp", boost::cref(absDC8gp)));
51 
52  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("argDC7p", boost::cref(argDC7p)));
53  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("argDC8p", boost::cref(argDC8p)));
54  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("argDC9p", boost::cref(argDC9p)));
55  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("argDC10p", boost::cref(argDC10p)));
56  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("argDC7gp", boost::cref(argDC7gp)));
57  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("argDC8gp", boost::cref(argDC8gp)));
58 }
59 
61  if (IsModelInitialized()) {
63  }
64 }
65 
67 // Initialization
68 
70 {
73  return(true);
74 }
75 
76 bool FlavourWilsonCoefficient::Init(const std::map<std::string, double>& DPars) {
77  return(StandardModel::Init(DPars));
78 }
79 
81 {
82  if(!StandardModel::PreUpdate()) return (false);
83 
84  return (true);
85 }
86 
87 bool FlavourWilsonCoefficient::Update(const std::map<std::string, double>& DPars) {
88 
89  if(!PreUpdate()) return (false);
90 
91  UpdateError = false;
92 
93  for (std::map<std::string, double>::const_iterator it = DPars.begin(); it != DPars.end(); it++)
94  setParameter(it->first, it->second);
95 
96  if (UpdateError) return (false);
97 
98  if(!PostUpdate()) return (false);
99 
100  return (true);
101 }
102 
104 {
105  if(!StandardModel::PostUpdate()) return (false);
106 
107  DC1 = gslpp::complex(absDC1, argDC1, true);
108  DC2 = gslpp::complex(absDC2, argDC2, true);
109  DC3 = gslpp::complex(absDC3, argDC3, true);
110  DC4 = gslpp::complex(absDC4, argDC4, true);
111  DC5 = gslpp::complex(absDC5, argDC5, true);
112  DC6 = gslpp::complex(absDC6, argDC6, true);
113  DC7 = gslpp::complex(absDC7, argDC7, true);
114  DC8 = gslpp::complex(absDC8, argDC8, true);
115  DC9 = gslpp::complex(absDC9, argDC8, true);
119 
126 
127  /* Necessary for updating StandardModel parameters in StandardModelMatching,
128  * and FlavourWC and FlavourWC-derived parameters in FlavourWCMatching */
130 
131  return (true);
132 }
133 
134 void FlavourWilsonCoefficient::setParameter(const std::string name, const double& value){
135  if(name.compare("absDC1") == 0)
136  absDC1 = value;
137  else if(name.compare("absDC2") == 0)
138  absDC2 = value;
139  else if(name.compare("absDC3") == 0)
140  absDC3 = value;
141  else if(name.compare("absDC4") == 0)
142  absDC4 = value;
143  else if(name.compare("absDC5") == 0)
144  absDC5 = value;
145  else if(name.compare("absDC6") == 0)
146  absDC6 = value;
147  else if(name.compare("absDC7") == 0)
148  absDC7 = value;
149  else if(name.compare("absDC8") == 0)
150  absDC8 = value;
151  else if(name.compare("absDC9") == 0)
152  absDC9 = value;
153  else if(name.compare("absDC10") == 0)
154  absDC10 = value;
155  else if(name.compare("absDC7g") == 0)
156  absDC7g = value;
157  else if(name.compare("absDC8g") == 0)
158  absDC8g = value;
159  else if(name.compare("argDC1") == 0)
160  argDC1 = value;
161  else if(name.compare("argDC2") == 0)
162  argDC2 = value;
163  else if(name.compare("argDC3") == 0)
164  argDC3 = value;
165  else if(name.compare("argDC4") == 0)
166  argDC4 = value;
167  else if(name.compare("argDC5") == 0)
168  argDC5 = value;
169  else if(name.compare("argDC6") == 0)
170  argDC6 = value;
171  else if(name.compare("argDC7") == 0)
172  argDC7 = value;
173  else if(name.compare("argDC8") == 0)
174  argDC8 = value;
175  else if(name.compare("argDC9") == 0)
176  argDC9 = value;
177  else if(name.compare("argDC10") == 0)
178  argDC10 = value;
179  else if(name.compare("argDC7g") == 0)
180  argDC7g = value;
181  else if(name.compare("argDC8g") == 0)
182  argDC8g = value;
183  else if(name.compare("absDC7p") == 0)
184  absDC7p = value;
185  else if(name.compare("absDC8p") == 0)
186  absDC8p = value;
187  else if(name.compare("absDC9p") == 0)
188  absDC9p = value;
189  else if(name.compare("absDC10p") == 0)
190  absDC10p = value;
191  else if(name.compare("absDC7gp") == 0)
192  absDC7gp = value;
193  else if(name.compare("absDC8gp") == 0)
194  absDC8gp = value;
195  else if(name.compare("argDC7p") == 0)
196  argDC7p = value;
197  else if(name.compare("argDC8p") == 0)
198  argDC8p = value;
199  else if(name.compare("argDC9p") == 0)
200  argDC9p = value;
201  else if(name.compare("argDC10p") == 0)
202  argDC10p = value;
203  else if(name.compare("argDC7gp") == 0)
204  argDC7gp = value;
205  else if(name.compare("argDC8gp") == 0)
206  argDC8gp = value;
207  else
208  StandardModel::setParameter(name,value);
209 }
210 
211 bool FlavourWilsonCoefficient::CheckParameters(const std::map<std::string, double>& DPars) {
212  for (int i = 0; i < NFlavourWilsonCoefficientvars; i++) {
213  if (DPars.find(FlavourWilsonCoefficientvars[i]) == DPars.end()) {
214  std::cout << "missing mandatory FlavourWilsonCoefficient parameter " << FlavourWilsonCoefficientvars[i] << std::endl;
215  return false;
216  }
217  }
218  return(StandardModel::CheckParameters(DPars));
219 }
220 
222 // Flags
223 
224 bool FlavourWilsonCoefficient::setFlag(const std::string name, const bool value)
225 {
226  bool res = false;
227 
228  res = StandardModel::setFlag(name,value);
229 
230  return(res);
231 }
virtual bool PostUpdate()
The post-update method for StandardModel.
bool UpdateError
A boolean set to false if update is successful.
Definition: Model.h:192
virtual bool InitializeModel()
A method to initialize the model.
A model class for the Standard Model.
void setModelInitialized(bool ModelInitialized)
A set method to fix the failure or success of the initialization of the model.
Definition: Model.h:142
bool IsModelInitialized() const
A method to check if the model is initialized.
Definition: Model.h:133
static const std::string FlavourWilsonCoefficientvars[NFlavourWilsonCoefficientvars]
~FlavourWilsonCoefficient()
FlavourWilsonCoefficient destructor.
FlavourWilsonCoefficient()
FlavourWilsonCoefficient constructor.
virtual bool Init(const std::map< std::string, double > &DPars)
A method to initialize the model parameters.
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of StandardModel.
A class for the matching in the FlavourWilsonCoefficient.
virtual bool PreUpdate()
The pre-update method for StandardModel.
virtual bool Init(const std::map< std::string, double > &DPars)
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
A method to check if all the mandatory parameters for StandardModel have been provided in model initi...
void updateFlavourWilsonCoefficientParameters()
Updates to new FlavourWilsonCoefficient parameter sets.
virtual bool Update(const std::map< std::string, double > &DPars)
static const int NFlavourWilsonCoefficientvars
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
virtual void setParameter(const std::string, const double &)
A class for defining operations on and functions of complex numbers.
Definition: gslpp_complex.h:35
FlavourWilsonCoefficientMatching * myFlavourWilsonCoefficientMatching
virtual bool setFlag(const std::string name, const bool value)
virtual bool setFlag(const std::string name, const bool value)
A method to set a flag of StandardModel.
std::map< std::string, boost::reference_wrapper< const double > > ModelParamMap
Definition: Model.h:200