a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
Loading...
Searching...
No Matches
FlavourWilsonCoefficient_DF2.cpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2019 HEPfit Collaboration
3 *
4 *
5 * For the licensing terms see doc/COPYING.
6 */
7
9#include <string>
10
11const std::string FlavourWilsonCoefficient_DF2::FlavourWilsonCoefficient_DF2vars[NFlavourWilsonCoefficient_DF2vars] = {
12 "reC1_s","reC2_s","reC3_s","reC4_s","reC5_s",
13"reC1_c","reC2_c","reC3_c","reC4_c","reC5_c","reC1_bd","reC2_bd","reC3_bd","reC4_bd","reC5_bd",
14"reC1_bs","reC2_bs","reC3_bs","reC4_bs","reC5_bs","imC1_s","imC2_s","imC3_s","imC4_s","imC5_s",
15"imC1_c","imC2_c","imC3_c","imC4_c","imC5_c","imC1_bd","imC2_bd","imC3_bd","imC4_bd","imC5_bd",
16"imC1_bs","imC2_bs","imC3_bs","imC4_bs","imC5_bs","WCscale_s","WCscale_c","WCscale_bd","WCscale_bs"};
17
19 FWCM(*this), C_s(5,0.), C_c(5,0.), C_bd(5,0.), C_bs(5,0.) {
20
21 FlagNMFV = false;
23 ModelParamMap.insert(std::make_pair("reC1_s", std::cref(reC1_s)));
24 ModelParamMap.insert(std::make_pair("reC2_s", std::cref(reC2_s)));
25 ModelParamMap.insert(std::make_pair("reC3_s", std::cref(reC3_s)));
26 ModelParamMap.insert(std::make_pair("reC4_s", std::cref(reC4_s)));
27 ModelParamMap.insert(std::make_pair("reC5_s", std::cref(reC5_s)));
28 ModelParamMap.insert(std::make_pair("imC1_s", std::cref(imC1_s)));
29 ModelParamMap.insert(std::make_pair("imC2_s", std::cref(imC2_s)));
30 ModelParamMap.insert(std::make_pair("imC3_s", std::cref(imC3_s)));
31 ModelParamMap.insert(std::make_pair("imC4_s", std::cref(imC4_s)));
32 ModelParamMap.insert(std::make_pair("imC5_s", std::cref(imC5_s)));
33 ModelParamMap.insert(std::make_pair("WCscale_s", std::cref(WCscale_s)));
34 ModelParamMap.insert(std::make_pair("reC1_c", std::cref(reC1_c)));
35 ModelParamMap.insert(std::make_pair("reC2_c", std::cref(reC2_c)));
36 ModelParamMap.insert(std::make_pair("reC3_c", std::cref(reC3_c)));
37 ModelParamMap.insert(std::make_pair("reC4_c", std::cref(reC4_c)));
38 ModelParamMap.insert(std::make_pair("reC5_c", std::cref(reC5_c)));
39 ModelParamMap.insert(std::make_pair("imC1_c", std::cref(imC1_c)));
40 ModelParamMap.insert(std::make_pair("imC2_c", std::cref(imC2_c)));
41 ModelParamMap.insert(std::make_pair("imC3_c", std::cref(imC3_c)));
42 ModelParamMap.insert(std::make_pair("imC4_c", std::cref(imC4_c)));
43 ModelParamMap.insert(std::make_pair("imC5_c", std::cref(imC5_c)));
44 ModelParamMap.insert(std::make_pair("WCscale_c", std::cref(WCscale_c)));
45 ModelParamMap.insert(std::make_pair("reC1_bd", std::cref(reC1_bd)));
46 ModelParamMap.insert(std::make_pair("reC2_bd", std::cref(reC2_bd)));
47 ModelParamMap.insert(std::make_pair("reC3_bd", std::cref(reC3_bd)));
48 ModelParamMap.insert(std::make_pair("reC4_bd", std::cref(reC4_bd)));
49 ModelParamMap.insert(std::make_pair("reC5_bd", std::cref(reC5_bd)));
50 ModelParamMap.insert(std::make_pair("imC1_bd", std::cref(imC1_bd)));
51 ModelParamMap.insert(std::make_pair("imC2_bd", std::cref(imC2_bd)));
52 ModelParamMap.insert(std::make_pair("imC3_bd", std::cref(imC3_bd)));
53 ModelParamMap.insert(std::make_pair("imC4_bd", std::cref(imC4_bd)));
54 ModelParamMap.insert(std::make_pair("imC5_bd", std::cref(imC5_bd)));
55 ModelParamMap.insert(std::make_pair("WCscale_bd", std::cref(WCscale_bd)));
56 ModelParamMap.insert(std::make_pair("reC1_bs", std::cref(reC1_bs)));
57 ModelParamMap.insert(std::make_pair("reC2_bs", std::cref(reC2_bs)));
58 ModelParamMap.insert(std::make_pair("reC3_bs", std::cref(reC3_bs)));
59 ModelParamMap.insert(std::make_pair("reC4_bs", std::cref(reC4_bs)));
60 ModelParamMap.insert(std::make_pair("reC5_bs", std::cref(reC5_bs)));
61 ModelParamMap.insert(std::make_pair("imC1_bs", std::cref(imC1_bs)));
62 ModelParamMap.insert(std::make_pair("imC2_bs", std::cref(imC2_bs)));
63 ModelParamMap.insert(std::make_pair("imC3_bs", std::cref(imC3_bs)));
64 ModelParamMap.insert(std::make_pair("imC4_bs", std::cref(imC4_bs)));
65 ModelParamMap.insert(std::make_pair("imC5_bs", std::cref(imC5_bs)));
66 ModelParamMap.insert(std::make_pair("WCscale_bs", std::cref(WCscale_bs)));
67}
68
69
71// Initialization
72
79
81{
82 if(!StandardModel::PostUpdate()) return (false);
83
84 C_s.assign(0,gslpp::complex(reC1_s, imC1_s));
85 C_s.assign(1,gslpp::complex(reC2_s, imC2_s));
86 C_s.assign(2,gslpp::complex(reC3_s, imC3_s));
87 C_s.assign(3,gslpp::complex(reC4_s, imC4_s));
88 C_s.assign(4,gslpp::complex(reC5_s, imC5_s));
89 C_c.assign(0,gslpp::complex(reC1_c, imC1_c));
90 C_c.assign(1,gslpp::complex(reC2_c, imC2_c));
91 C_c.assign(2,gslpp::complex(reC3_c, imC3_c));
92 C_c.assign(3,gslpp::complex(reC4_c, imC4_c));
93 C_c.assign(4,gslpp::complex(reC5_c, imC5_c));
94 C_bd.assign(0,gslpp::complex(reC1_bd, imC1_bd));
95 C_bd.assign(1,gslpp::complex(reC2_bd, imC2_bd));
96 C_bd.assign(2,gslpp::complex(reC3_bd, imC3_bd));
97 C_bd.assign(3,gslpp::complex(reC4_bd, imC4_bd));
98 C_bd.assign(4,gslpp::complex(reC5_bd, imC5_bd));
99 C_bs.assign(0,gslpp::complex(reC1_bs, imC1_bs));
100 C_bs.assign(1,gslpp::complex(reC2_bs, imC2_bs));
101 C_bs.assign(2,gslpp::complex(reC3_bs, imC3_bs));
102 C_bs.assign(3,gslpp::complex(reC4_bs, imC4_bs));
103 C_bs.assign(4,gslpp::complex(reC5_bs, imC5_bs));
104 if (FlagNMFV) {
105 // Add NMFV factors to the Wilson coefficients
106 double NMFV_factor_s = getCKM().computelamt().abs2();
107 double NMFV_factor_c = getCKM().getV_cb().abs2()*getCKM().getV_ub().abs2();
108 double NMFV_factor_bd = getCKM().computelamt_d().abs2();
109 double NMFV_factor_bs = getCKM().computelamt_s().abs2();
110 for (int i = 0; i < 5; i++) {
111 C_s.assign(i, C_s(i) * NMFV_factor_s);
112 C_c.assign(i, C_c(i) * NMFV_factor_c);
113 C_bd.assign(i, C_bd(i) * NMFV_factor_bd);
114 C_bs.assign(i, C_bs(i) * NMFV_factor_bs);
115 }
116 }
117
118 return (true);
119}
120
121bool FlavourWilsonCoefficient_DF2::setFlag(const std::string name, const bool value) {
122 if(name.compare("NMFV") == 0) {
123 FlagNMFV = value;
124 return true;
125 }
126 else
127 return StandardModel::setFlag(name,value);
128}
129
130void FlavourWilsonCoefficient_DF2::setParameter(const std::string name, const double& value){
131 if(name.compare("reC1_s") == 0)
132 reC1_s = value;
133 else if(name.compare("reC2_s") == 0)
134 reC2_s = value;
135 else if(name.compare("reC3_s") == 0)
136 reC3_s = value;
137 else if(name.compare("reC4_s") == 0)
138 reC4_s = value;
139 else if(name.compare("reC5_s") == 0)
140 reC5_s = value;
141 else if(name.compare("imC1_s") == 0)
142 imC1_s = value;
143 else if(name.compare("imC2_s") == 0)
144 imC2_s = value;
145 else if(name.compare("imC3_s") == 0)
146 imC3_s = value;
147 else if(name.compare("imC4_s") == 0)
148 imC4_s = value;
149 else if(name.compare("imC5_s") == 0)
150 imC5_s = value;
151 else if(name.compare("WCscale_s") == 0)
152 WCscale_s = value;
153 else if(name.compare("reC1_c") == 0)
154 reC1_c = value;
155 else if(name.compare("reC2_c") == 0)
156 reC2_c = value;
157 else if(name.compare("reC3_c") == 0)
158 reC3_c = value;
159 else if(name.compare("reC4_c") == 0)
160 reC4_c = value;
161 else if(name.compare("reC5_c") == 0)
162 reC5_c = value;
163 else if(name.compare("imC1_c") == 0)
164 imC1_c = value;
165 else if(name.compare("imC2_c") == 0)
166 imC2_c = value;
167 else if(name.compare("imC3_c") == 0)
168 imC3_c = value;
169 else if(name.compare("imC4_c") == 0)
170 imC4_c = value;
171 else if(name.compare("imC5_c") == 0)
172 imC5_c = value;
173 else if(name.compare("WCscale_c") == 0)
174 WCscale_c = value;
175 else if(name.compare("reC1_bd") == 0)
176 reC1_bd = value;
177 else if(name.compare("reC2_bd") == 0)
178 reC2_bd = value;
179 else if(name.compare("reC3_bd") == 0)
180 reC3_bd = value;
181 else if(name.compare("reC4_bd") == 0)
182 reC4_bd = value;
183 else if(name.compare("reC5_bd") == 0)
184 reC5_bd = value;
185 else if(name.compare("imC1_bd") == 0)
186 imC1_bd = value;
187 else if(name.compare("imC2_bd") == 0)
188 imC2_bd = value;
189 else if(name.compare("imC3_bd") == 0)
190 imC3_bd = value;
191 else if(name.compare("imC4_bd") == 0)
192 imC4_bd = value;
193 else if(name.compare("imC5_bd") == 0)
194 imC5_bd = value;
195 else if(name.compare("WCscale_bd") == 0)
196 WCscale_bd = value;
197 else if(name.compare("reC1_bs") == 0)
198 reC1_bs = value;
199 else if(name.compare("reC2_bs") == 0)
200 reC2_bs = value;
201 else if(name.compare("reC3_bs") == 0)
202 reC3_bs = value;
203 else if(name.compare("reC4_bs") == 0)
204 reC4_bs = value;
205 else if(name.compare("reC5_bs") == 0)
206 reC5_bs = value;
207 else if(name.compare("imC1_bs") == 0)
208 imC1_bs = value;
209 else if(name.compare("imC2_bs") == 0)
210 imC2_bs = value;
211 else if(name.compare("imC3_bs") == 0)
212 imC3_bs = value;
213 else if(name.compare("imC4_bs") == 0)
214 imC4_bs = value;
215 else if(name.compare("imC5_bs") == 0)
216 imC5_bs = value;
217 else if(name.compare("WCscale_bs") == 0)
218 WCscale_bs = value;
219 else
221}
222
223bool FlavourWilsonCoefficient_DF2::CheckParameters(const std::map<std::string, double>& DPars) {
224 for (int i = 0; i < NFlavourWilsonCoefficient_DF2vars; i++) {
225 if (DPars.find(FlavourWilsonCoefficient_DF2vars[i]) == DPars.end()) {
226 std::cout << "ERROR: missing mandatory FlavourWilsonCoefficient_DF2 parameter " << FlavourWilsonCoefficient_DF2vars[i] << std::endl;
229 }
230 }
232}
std::map< std::string, double > DPars
Definition Minimal.cpp:11
const gslpp::complex computelamt_s() const
The product of the CKM elements .
Definition CKM.cpp:174
const gslpp::complex getV_cb() const
A member for returning the value of the CKM element .
Definition CKM.h:247
const gslpp::complex getV_ub() const
A member for returning the value of the CKM element .
Definition CKM.h:220
const gslpp::complex computelamt() const
The product of the CKM elements .
Definition CKM.cpp:142
const gslpp::complex computelamt_d() const
The product of the CKM elements .
Definition CKM.cpp:158
double reC5_bd
The real parts of the Wilson Coefficients.
FlavourWilsonCoefficient_DF2()
FlavourWilsonCoefficient constructor.
gslpp::vector< gslpp::complex > C_bd
virtual void setParameter(const std::string, const double &)
A method to set the value of a parameter of FlavourWilsonCoefficient_DF2.
virtual bool PostUpdate()
The post-update method for FlavourWilsonCoefficient_DF2.
bool FlagNMFV
A boolean that is true if the model is next-to-minimal flavour violation (NMFV) and false if the mode...
static const std::string FlavourWilsonCoefficient_DF2vars[NFlavourWilsonCoefficient_DF2vars]
double imC5_c
The imaginary parts of the Wilson Coefficients.
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
A method to check if all the mandatory parameters for FlavourWilsonCoefficient_DF2 have been provided...
Matching< FlavourWilsonCoefficient_DF2Matching, FlavourWilsonCoefficient_DF2 > FWCM
The FlavourWilsonCoefficientMatching_DF2 object.
gslpp::vector< gslpp::complex > C_c
double imC5_bd
The imaginary parts of the Wilson Coefficients.
gslpp::vector< gslpp::complex > C_s
double imC5_bs
The imaginary parts of the Wilson Coefficients.
gslpp::vector< gslpp::complex > C_bs
The complex Wilson Coefficients.
double reC5_s
The real parts of the Wilson Coefficients.
double reC5_c
The real parts of the Wilson Coefficients.
double WCscale_bs
The scale of the Wilson Coefficients.
virtual bool InitializeModel()
A method to initialize the model.
double imC5_s
The imaginary parts of the Wilson Coefficients.
double reC5_bs
The real parts of the Wilson Coefficients.
virtual bool setFlag(const std::string name, const bool value)
A method to set a flag of FlavourWilsonCoefficient_DF2.
T & getObj()
Definition Matching.h:14
void setObj(T &obji)
Definition Matching.h:15
void addMissingModelParameter(const std::string &missingParameterName)
Definition Model.h:250
void setModelFWC_DF2()
Definition Model.h:186
std::map< std::string, std::reference_wrapper< const double > > ModelParamMap
Definition Model.h:280
void setModelInitialized(bool ModelInitialized)
A set method to fix the failure or success of the initialization of the model.
Definition Model.h:145
std::string name
The name of the model.
Definition Model.h:285
void raiseMissingModelParameterCount()
Definition Model.h:260
A model class for the Standard Model.
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...
const CKM & getCKM() const
A get method to retrieve the member object of type CKM.
Matching< StandardModelMatching, StandardModel > SMM
An object of type Matching.
virtual bool setFlag(const std::string name, const bool value)
A method to set a flag of StandardModel.
virtual bool PostUpdate()
The post-update method for StandardModel.
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of StandardModel.
virtual bool InitializeModel()
A method to initialize the model.
A class for the matching in the Standard Model.