a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
FlavourWilsonCoefficient.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2015 HEPfit Collaboration
3  *
4  *
5  * For the licensing terms see doc/COPYING.
6  */
7 
9 
10 const std::string FlavourWilsonCoefficient::FlavourWilsonCoefficientvars[NFlavourWilsonCoefficientvars] = {"reDC1","reDC2","reDC3","reDC4","reDC5","reDC6","reDC7","reDC8","reDC9","reDC10","reDC7g","reDC8g",
11  "imDC1","imDC2","imDC3","imDC4","imDC5","imDC6","imDC7","imDC8","imDC9","imDC10","imDC7g","imDC8g",
12  "reDC7p","reDC8p","reDC9p","reDC10p","reDC7gp","reDC8gp",
13  "imDC7p","imDC8p","imDC9p","imDC10p","imDC7gp","imDC8gp",
14  "WCscale"};
15 
17 
19  ModelParamMap.insert(std::make_pair("reDC1", std::cref(reDC1)));
20  ModelParamMap.insert(std::make_pair("reDC2", std::cref(reDC2)));
21  ModelParamMap.insert(std::make_pair("reDC3", std::cref(reDC3)));
22  ModelParamMap.insert(std::make_pair("reDC4", std::cref(reDC4)));
23  ModelParamMap.insert(std::make_pair("reDC5", std::cref(reDC5)));
24  ModelParamMap.insert(std::make_pair("reDC6", std::cref(reDC6)));
25  ModelParamMap.insert(std::make_pair("reDC7", std::cref(reDC7)));
26  ModelParamMap.insert(std::make_pair("reDC8", std::cref(reDC8)));
27  ModelParamMap.insert(std::make_pair("reDC9", std::cref(reDC9)));
28  ModelParamMap.insert(std::make_pair("reDC10", std::cref(reDC10)));
29  ModelParamMap.insert(std::make_pair("reDC7g", std::cref(reDC7g)));
30  ModelParamMap.insert(std::make_pair("reDC8g", std::cref(reDC8g)));
31 
32  ModelParamMap.insert(std::make_pair("imDC1", std::cref(imDC1)));
33  ModelParamMap.insert(std::make_pair("imDC2", std::cref(imDC2)));
34  ModelParamMap.insert(std::make_pair("imDC3", std::cref(imDC3)));
35  ModelParamMap.insert(std::make_pair("imDC4", std::cref(imDC4)));
36  ModelParamMap.insert(std::make_pair("imDC5", std::cref(imDC5)));
37  ModelParamMap.insert(std::make_pair("imDC6", std::cref(imDC6)));
38  ModelParamMap.insert(std::make_pair("imDC7", std::cref(imDC7)));
39  ModelParamMap.insert(std::make_pair("imDC8", std::cref(imDC8)));
40  ModelParamMap.insert(std::make_pair("imDC9", std::cref(imDC9)));
41  ModelParamMap.insert(std::make_pair("imDC10", std::cref(imDC10)));
42  ModelParamMap.insert(std::make_pair("imDC7g", std::cref(imDC7g)));
43  ModelParamMap.insert(std::make_pair("imDC8g", std::cref(imDC8g)));
44 
45  ModelParamMap.insert(std::make_pair("reDC7p", std::cref(reDC7p)));
46  ModelParamMap.insert(std::make_pair("reDC8p", std::cref(reDC8p)));
47  ModelParamMap.insert(std::make_pair("reDC9p", std::cref(reDC9p)));
48  ModelParamMap.insert(std::make_pair("reDC10p", std::cref(reDC10p)));
49  ModelParamMap.insert(std::make_pair("reDC7gp", std::cref(reDC7gp)));
50  ModelParamMap.insert(std::make_pair("reDC8gp", std::cref(reDC8gp)));
51 
52  ModelParamMap.insert(std::make_pair("imDC7p", std::cref(imDC7p)));
53  ModelParamMap.insert(std::make_pair("imDC8p", std::cref(imDC8p)));
54  ModelParamMap.insert(std::make_pair("imDC9p", std::cref(imDC9p)));
55  ModelParamMap.insert(std::make_pair("imDC10p", std::cref(imDC10p)));
56  ModelParamMap.insert(std::make_pair("imDC7gp", std::cref(imDC7gp)));
57  ModelParamMap.insert(std::make_pair("imDC8gp", std::cref(imDC8gp)));
58 
59  ModelParamMap.insert(std::make_pair("WCscale", std::cref(WCscale)));
60 }
61 
63  if (IsModelInitialized()) {
64  }
65 }
66 
68 // Initialization
69 
71 {
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(reDC1, imDC1, false);
108  DC2 = gslpp::complex(reDC2, imDC2, false);
109  DC3 = gslpp::complex(reDC3, imDC3, false);
110  DC4 = gslpp::complex(reDC4, imDC4, false);
111  DC5 = gslpp::complex(reDC5, imDC5, false);
112  DC6 = gslpp::complex(reDC6, imDC6, false);
113  DC7 = gslpp::complex(reDC7, imDC7, false);
114  DC8 = gslpp::complex(reDC8, imDC8, false);
115  DC9 = gslpp::complex(reDC9, imDC9, false);
116  DC10 = gslpp::complex(reDC10, imDC10, false);
117  DC7g = gslpp::complex(reDC7g, imDC7g, false);
118  DC8g = gslpp::complex(reDC8g, imDC8g, false);
119 
120  DC7p = gslpp::complex(reDC7p, imDC7p, false);
121  DC8p = gslpp::complex(reDC8p, imDC8p, false);
122  DC9p = gslpp::complex(reDC9p, imDC9p, false);
123  DC10p = gslpp::complex(reDC10p, imDC10p, false);
124  DC7gp = gslpp::complex(reDC7gp, imDC7gp, false);
125  DC8gp = gslpp::complex(reDC8gp, imDC8gp, false);
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("reDC1") == 0)
136  reDC1 = value;
137  else if(name.compare("reDC2") == 0)
138  reDC2 = value;
139  else if(name.compare("reDC3") == 0)
140  reDC3 = value;
141  else if(name.compare("reDC4") == 0)
142  reDC4 = value;
143  else if(name.compare("reDC5") == 0)
144  reDC5 = value;
145  else if(name.compare("reDC6") == 0)
146  reDC6 = value;
147  else if(name.compare("reDC7") == 0)
148  reDC7 = value;
149  else if(name.compare("reDC8") == 0)
150  reDC8 = value;
151  else if(name.compare("reDC9") == 0)
152  reDC9 = value;
153  else if(name.compare("reDC10") == 0)
154  reDC10 = value;
155  else if(name.compare("reDC7g") == 0)
156  reDC7g = value;
157  else if(name.compare("reDC8g") == 0)
158  reDC8g = value;
159  else if(name.compare("imDC1") == 0)
160  imDC1 = value;
161  else if(name.compare("imDC2") == 0)
162  imDC2 = value;
163  else if(name.compare("imDC3") == 0)
164  imDC3 = value;
165  else if(name.compare("imDC4") == 0)
166  imDC4 = value;
167  else if(name.compare("imDC5") == 0)
168  imDC5 = value;
169  else if(name.compare("imDC6") == 0)
170  imDC6 = value;
171  else if(name.compare("imDC7") == 0)
172  imDC7 = value;
173  else if(name.compare("imDC8") == 0)
174  imDC8 = value;
175  else if(name.compare("imDC9") == 0)
176  imDC9 = value;
177  else if(name.compare("imDC10") == 0)
178  imDC10 = value;
179  else if(name.compare("imDC7g") == 0)
180  imDC7g = value;
181  else if(name.compare("imDC8g") == 0)
182  imDC8g = value;
183  else if(name.compare("reDC7p") == 0)
184  reDC7p = value;
185  else if(name.compare("reDC8p") == 0)
186  reDC8p = value;
187  else if(name.compare("reDC9p") == 0)
188  reDC9p = value;
189  else if(name.compare("reDC10p") == 0)
190  reDC10p = value;
191  else if(name.compare("reDC7gp") == 0)
192  reDC7gp = value;
193  else if(name.compare("reDC8gp") == 0)
194  reDC8gp = value;
195  else if(name.compare("imDC7p") == 0)
196  imDC7p = value;
197  else if(name.compare("imDC8p") == 0)
198  imDC8p = value;
199  else if(name.compare("imDC9p") == 0)
200  imDC9p = value;
201  else if(name.compare("imDC10p") == 0)
202  imDC10p = value;
203  else if(name.compare("imDC7gp") == 0)
204  imDC7gp = value;
205  else if(name.compare("imDC8gp") == 0)
206  imDC8gp = value;
207  else if(name.compare("WCscale") == 0)
208  WCscale = value;
209  else
211 }
212 
213 bool FlavourWilsonCoefficient::CheckParameters(const std::map<std::string, double>& DPars) {
214  for (int i = 0; i < NFlavourWilsonCoefficientvars; i++) {
215  if (DPars.find(FlavourWilsonCoefficientvars[i]) == DPars.end()) {
216  std::cout << "ERROR: missing mandatory FlavourWilsonCoefficient parameter " << FlavourWilsonCoefficientvars[i] << std::endl;
219  }
220  }
221  return(StandardModel::CheckParameters(DPars));
222 }
223 
225 // Flags
226 
227 bool FlavourWilsonCoefficient::setFlag(const std::string name, const bool value)
228 {
229  bool res = false;
230 
231  res = StandardModel::setFlag(name,value);
232 
233  return(res);
234 }
FlavourWilsonCoefficient::DC5
gslpp::complex DC5
Definition: FlavourWilsonCoefficient.h:356
FlavourWilsonCoefficient::imDC8g
double imDC8g
The imaginary parts of the Wilson Coefficients.
Definition: FlavourWilsonCoefficient.h:359
StandardModel::setParameter
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of StandardModel.
Definition: StandardModel.cpp:231
FlavourWilsonCoefficient::DC9p
gslpp::complex DC9p
Definition: FlavourWilsonCoefficient.h:357
FlavourWilsonCoefficient::DC8p
gslpp::complex DC8p
Definition: FlavourWilsonCoefficient.h:357
FlavourWilsonCoefficient::imDC7gp
double imDC7gp
Definition: FlavourWilsonCoefficient.h:361
FlavourWilsonCoefficient::setFlag
virtual bool setFlag(const std::string name, const bool value)
A method to set a flag of FlavourWilsonCoefficient.
Definition: FlavourWilsonCoefficient.cpp:227
FlavourWilsonCoefficient::DC7gp
gslpp::complex DC7gp
Definition: FlavourWilsonCoefficient.h:357
FlavourWilsonCoefficient::reDC7gp
double reDC7gp
Definition: FlavourWilsonCoefficient.h:360
FlavourWilsonCoefficient::reDC2
double reDC2
Definition: FlavourWilsonCoefficient.h:358
FlavourWilsonCoefficient::DC1
gslpp::complex DC1
Definition: FlavourWilsonCoefficient.h:356
FlavourWilsonCoefficient::reDC3
double reDC3
Definition: FlavourWilsonCoefficient.h:358
FlavourWilsonCoefficient::imDC9
double imDC9
Definition: FlavourWilsonCoefficient.h:359
Matching::getObj
T & getObj()
Definition: Matching.h:14
FlavourWilsonCoefficient::imDC7p
double imDC7p
Definition: FlavourWilsonCoefficient.h:361
FlavourWilsonCoefficient::reDC9p
double reDC9p
Definition: FlavourWilsonCoefficient.h:360
FlavourWilsonCoefficient::reDC5
double reDC5
Definition: FlavourWilsonCoefficient.h:358
FlavourWilsonCoefficientMatching::updateFlavourWilsonCoefficientParameters
void updateFlavourWilsonCoefficientParameters()
Updates to new FlavourWilsonCoefficient parameter sets.
Definition: FlavourWilsonCoefficientMatching.cpp:25
FlavourWilsonCoefficient::reDC10
double reDC10
Definition: FlavourWilsonCoefficient.h:358
FlavourWilsonCoefficient::imDC7g
double imDC7g
Definition: FlavourWilsonCoefficient.h:359
FlavourWilsonCoefficient::imDC10
double imDC10
Definition: FlavourWilsonCoefficient.h:359
FlavourWilsonCoefficient::Init
virtual bool Init(const std::map< std::string, double > &DPars)
Initializes the FlavourWilsonCoefficient parameters found in the argument.
Definition: FlavourWilsonCoefficient.cpp:76
FlavourWilsonCoefficient::reDC6
double reDC6
Definition: FlavourWilsonCoefficient.h:358
Model::addMissingModelParameter
void addMissingModelParameter(const std::string &missingParameterName)
Definition: Model.h:232
FlavourWilsonCoefficient::imDC3
double imDC3
Definition: FlavourWilsonCoefficient.h:359
StandardModel::CheckParameters
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...
Definition: StandardModel.cpp:313
FlavourWilsonCoefficient::DC2
gslpp::complex DC2
Definition: FlavourWilsonCoefficient.h:356
gslpp::complex
A class for defining operations on and functions of complex numbers.
Definition: gslpp_complex.h:35
Matching::setObj
void setObj(T &obji)
Definition: Matching.h:15
FlavourWilsonCoefficient::imDC9p
double imDC9p
Definition: FlavourWilsonCoefficient.h:361
FlavourWilsonCoefficient::DC7g
gslpp::complex DC7g
Definition: FlavourWilsonCoefficient.h:356
FlavourWilsonCoefficient::reDC10p
double reDC10p
Definition: FlavourWilsonCoefficient.h:360
FlavourWilsonCoefficient::reDC7
double reDC7
Definition: FlavourWilsonCoefficient.h:358
StandardModel
A model class for the Standard Model.
Definition: StandardModel.h:474
FlavourWilsonCoefficient::WCscale
double WCscale
The scale of the Wilson Coefficients.
Definition: FlavourWilsonCoefficient.h:362
Model::UpdateError
bool UpdateError
A boolean set to false if update is successful.
Definition: Model.h:254
StandardModel::SMM
Matching< StandardModelMatching, StandardModel > SMM
An object of type Matching.
Definition: StandardModel.h:2506
FlavourWilsonCoefficient::reDC4
double reDC4
Definition: FlavourWilsonCoefficient.h:358
StandardModel::setFlag
virtual bool setFlag(const std::string name, const bool value)
A method to set a flag of StandardModel.
Definition: StandardModel.cpp:378
Model::ModelParamMap
std::map< std::string, std::reference_wrapper< const double > > ModelParamMap
Definition: Model.h:262
FlavourWilsonCoefficient::imDC2
double imDC2
Definition: FlavourWilsonCoefficient.h:359
FlavourWilsonCoefficient::DC6
gslpp::complex DC6
Definition: FlavourWilsonCoefficient.h:356
FlavourWilsonCoefficient::FWCM
Matching< FlavourWilsonCoefficientMatching, FlavourWilsonCoefficient > FWCM
The FlavourWilsonCoefficientMatching object.
Definition: FlavourWilsonCoefficient.h:351
FlavourWilsonCoefficient::setParameter
virtual void setParameter(const std::string, const double &)
A method to set the value of a parameter of FlavourWilsonCoefficient.
Definition: FlavourWilsonCoefficient.cpp:134
StandardModel::Init
virtual bool Init(const std::map< std::string, double > &DPars)
A method to initialize the model parameters.
Definition: StandardModel.cpp:159
StandardModelMatching
A class for the matching in the Standard Model.
Definition: StandardModelMatching.h:26
FlavourWilsonCoefficient::reDC8p
double reDC8p
Definition: FlavourWilsonCoefficient.h:360
FlavourWilsonCoefficient::imDC8
double imDC8
Definition: FlavourWilsonCoefficient.h:359
FlavourWilsonCoefficient::imDC10p
double imDC10p
Definition: FlavourWilsonCoefficient.h:361
StandardModel::PreUpdate
virtual bool PreUpdate()
The pre-update method for StandardModel.
Definition: StandardModel.cpp:172
FlavourWilsonCoefficient::DC10p
gslpp::complex DC10p
Definition: FlavourWilsonCoefficient.h:357
FlavourWilsonCoefficient::imDC4
double imDC4
Definition: FlavourWilsonCoefficient.h:359
FlavourWilsonCoefficient::imDC6
double imDC6
Definition: FlavourWilsonCoefficient.h:359
FlavourWilsonCoefficient::reDC8
double reDC8
Definition: FlavourWilsonCoefficient.h:358
Model::raiseMissingModelParameterCount
void raiseMissingModelParameterCount()
Definition: Model.h:242
FlavourWilsonCoefficient::imDC1
double imDC1
Definition: FlavourWilsonCoefficient.h:359
FlavourWilsonCoefficient::DC4
gslpp::complex DC4
Definition: FlavourWilsonCoefficient.h:356
FlavourWilsonCoefficient::PreUpdate
virtual bool PreUpdate()
The pre-update method for FlavourWilsonCoefficient.
Definition: FlavourWilsonCoefficient.cpp:80
FlavourWilsonCoefficient::FlavourWilsonCoefficientvars
static const std::string FlavourWilsonCoefficientvars[NFlavourWilsonCoefficientvars]
Definition: FlavourWilsonCoefficient.h:99
StandardModel::PostUpdate
virtual bool PostUpdate()
The post-update method for StandardModel.
Definition: StandardModel.cpp:199
FlavourWilsonCoefficient::imDC5
double imDC5
Definition: FlavourWilsonCoefficient.h:359
Model::IsModelInitialized
bool IsModelInitialized() const
A method to check if the model is initialized.
Definition: Model.h:136
FlavourWilsonCoefficient::NFlavourWilsonCoefficientvars
static const int NFlavourWilsonCoefficientvars
Definition: FlavourWilsonCoefficient.h:97
FlavourWilsonCoefficient::reDC7p
double reDC7p
Definition: FlavourWilsonCoefficient.h:360
FlavourWilsonCoefficient::DC8g
gslpp::complex DC8g
The complex Wilson Coefficients.
Definition: FlavourWilsonCoefficient.h:356
FlavourWilsonCoefficient::reDC8g
double reDC8g
The real parts of the Wilson Coefficients.
Definition: FlavourWilsonCoefficient.h:358
StandardModel::InitializeModel
virtual bool InitializeModel()
A method to initialize the model.
Definition: StandardModel.cpp:140
FlavourWilsonCoefficient::~FlavourWilsonCoefficient
~FlavourWilsonCoefficient()
FlavourWilsonCoefficient destructor
Definition: FlavourWilsonCoefficient.cpp:62
FlavourWilsonCoefficient::reDC7g
double reDC7g
Definition: FlavourWilsonCoefficient.h:358
FlavourWilsonCoefficient::DC3
gslpp::complex DC3
Definition: FlavourWilsonCoefficient.h:356
FlavourWilsonCoefficient::FlavourWilsonCoefficient
FlavourWilsonCoefficient()
FlavourWilsonCoefficient constructor
Definition: FlavourWilsonCoefficient.cpp:16
FlavourWilsonCoefficient::reDC8gp
double reDC8gp
The real parts of the Wilson Coefficients.
Definition: FlavourWilsonCoefficient.h:360
FlavourWilsonCoefficient::imDC8p
double imDC8p
Definition: FlavourWilsonCoefficient.h:361
FlavourWilsonCoefficient::DC7
gslpp::complex DC7
Definition: FlavourWilsonCoefficient.h:356
FlavourWilsonCoefficient::InitializeModel
virtual bool InitializeModel()
A method to initialize the model.
Definition: FlavourWilsonCoefficient.cpp:70
FlavourWilsonCoefficient::DC7p
gslpp::complex DC7p
Definition: FlavourWilsonCoefficient.h:357
FlavourWilsonCoefficient::imDC8gp
double imDC8gp
The imaginary parts of the Wilson Coefficients.
Definition: FlavourWilsonCoefficient.h:361
FlavourWilsonCoefficient::DC10
gslpp::complex DC10
Definition: FlavourWilsonCoefficient.h:356
Model::name
std::string name
The name of the model.
Definition: Model.h:267
FlavourWilsonCoefficient::DC9
gslpp::complex DC9
Definition: FlavourWilsonCoefficient.h:356
FlavourWilsonCoefficient::reDC1
double reDC1
Definition: FlavourWilsonCoefficient.h:358
FlavourWilsonCoefficient.h
FlavourWilsonCoefficient::imDC7
double imDC7
Definition: FlavourWilsonCoefficient.h:359
FlavourWilsonCoefficient::PostUpdate
virtual bool PostUpdate()
The post-update method for FlavourWilsonCoefficient.
Definition: FlavourWilsonCoefficient.cpp:103
FlavourWilsonCoefficient::DC8
gslpp::complex DC8
Definition: FlavourWilsonCoefficient.h:356
FlavourWilsonCoefficient::DC8gp
gslpp::complex DC8gp
The complex Wilson Coefficients.
Definition: FlavourWilsonCoefficient.h:357
FlavourWilsonCoefficient::Update
virtual bool Update(const std::map< std::string, double > &DPars)
The update method for FlavourWilsonCoefficient.
Definition: FlavourWilsonCoefficient.cpp:87
Model::setModelInitialized
void setModelInitialized(bool ModelInitialized)
A set method to fix the failure or success of the initialization of the model.
Definition: Model.h:145
FlavourWilsonCoefficient::CheckParameters
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
A method to check if all the mandatory parameters for FlavourWilsonCoefficient have been provided in ...
Definition: FlavourWilsonCoefficient.cpp:213
FlavourWilsonCoefficient::reDC9
double reDC9
Definition: FlavourWilsonCoefficient.h:358