a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
Loading...
Searching...
No Matches
MVgamma.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2014 HEPfit Collaboration
3 *
4 *
5 * For the licensing terms see doc/COPYING.
6 */
7
8#ifndef MVGAMMA_H
9#define MVGAMMA_H
10
11class StandardModel;
12class F_1;
13class F_2;
14#include "ThObservable.h"
15#include <gsl/gsl_integration.h>
16#include <memory>
17
18#define NFPOLARBASIS_MVGAMMA false
19#define UNIFIEDBTOS true
20#define FULLNLOQCDF_MVGAMMA false
21
143class MVgamma {
144public:
151 MVgamma(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
152
156 virtual ~MVgamma();
157
161 void updateParameters();
162
167 std::vector<std::string> initializeMVgammaParameters();
168
169 std::vector<std::string> parametersForMVgamma;
170
171 double GF;
172 double ale;
173 double MM;
174 double MM2;
175 double MV;
176 double Mb;
177 double mb_pole;
178 double mc_pole;
179 double mu_b;
180 double mu_h;
181 double width;
182 double fperp;
183 double fpara;
184 double fB;
185 double Ms;
186 double MW;
187 double t_p;
188 double t_m;
189 double z_DM;
190 double rV;
191 double ChiTT;
192 double Chi1plus;
193 double Chi1minus;
194 double n_I;
195 gslpp::complex lambda_t;
196 gslpp::complex lambda_u;
197 gslpp::complex h[2];
198 double r1_1;
199 double r1_2;
200 double r2_1;
201 double r2_2;
202 double deltaC9_1;
203 double deltaC9_2;
204 gslpp::complex exp_Phase_1;
205 gslpp::complex exp_Phase_2;
206 gslpp::complex SU3_breaking;
207 double lambda;
209 double alpha_s_mub;
210 gslpp::complex DC7_QCDF;
211 gslpp::complex DC7_QCDF_bar;
212
213 double a_0T1;
214 double a_0A1;
215 double a_0V;
217 double a_1T1;
218 double a_2T1;
219 double MRT1_2;
220 double MRT12_2;
221 double a_0f;
222 double a_1f;
223 double a_2f;
224 double MRf_2;
225 double MRf2_2;
226 double a_0g;
227 double a_1g;
228 double a_2g;
229 double MRg_2;
230 double MRg2_2;
232 gslpp::vector<gslpp::complex> ** allcoeff;
233 gslpp::vector<gslpp::complex> ** allcoeffprime;
235 gslpp::vector<gslpp::complex> ** allcoeff_noSM;
237 gslpp::complex C_1;
238 gslpp::complex C_2;
239 gslpp::complex C_3;
240 gslpp::complex C_4;
241 gslpp::complex C_5;
242 gslpp::complex C_6;
243 gslpp::complex C_7;
244 gslpp::complex C_7p;
245 gslpp::complex C_8;
253 double phi_f(double MRf_2, double MRf2_2);
254
261 double phi_g(double MRg_2, double MRg2_2);
262
269 double phi_T1(double MRT1_2, double MRT12_2);
270
280 double f_DM(double a_0f, double a_1f, double a_2f, double MRf_2, double MRf2_2);
281
291 double g_DM(double a_0g, double a_1g, double a_2g, double MRg_2, double MRg2_2);
292
302 double T1_DM(double a_0T1, double a_1T1, double a_2T1, double MRT1_2, double MRT12_2);
303
308 double T_1();
309
315 gslpp::complex h_lambda(int hel);
316
321 gslpp::complex H_V_p();
322
327 gslpp::complex H_V_m();
328
333 gslpp::complex H_V_p_bar();
334
339 gslpp::complex H_V_m_bar();
340
346 gslpp::complex deltaC7_QCDF(bool conjugate);
347
353 gslpp::complex Cq34(bool conjugate);
354
359 gslpp::complex T_perp_WA_1();
360
366 gslpp::complex T_perp_WA_2(bool conjugate);
367
373 gslpp::complex L1(gslpp::complex x);
374
380 double phi_V(double u);
381
388 gslpp::complex t_perp(double u, double m);
389
396 gslpp::complex T_perp_plus_QSS(double u, bool conjugate);
397
403 gslpp::complex T_perp_plus_O8(double u);
404
411 gslpp::complex T_perp(double u, bool conjugate);
412
418 double getT_perp_integrand_real(double u) {
419 return T_perp(u, false).real();
420 };
421
427 double getT_perp_integrand_imag(double u) {
428 return T_perp(u, false).imag();
429 };
430
436 double getT_perp_bar_integrand_real(double u) {
437 return T_perp(u, true).real();
438 };
439
445 double getT_perp_bar_integrand_imag(double u) {
446 return T_perp(u, true).imag();
447 };
448
454 gslpp::complex T_QCDF_minus(bool conjugate);
455
461 gslpp::complex zh(double q2);
462
467 gslpp::complex P();
468
473 gslpp::complex phi_1();
474
479 gslpp::complex phi_2();
480
485 gslpp::complex phi_3();
486
492 gslpp::complex DeltaC9_zExpansion(int tran);
493
494private:
495 QCD::meson meson;
496 QCD::meson vectorM;
497 bool dispersion;
498 bool zExpansion;
499 bool FixedWCbtos;
500 bool MVll_DM_flag;
502 gslpp::complex beta_0[7];
503 gslpp::complex beta_1[7];
504 gslpp::complex beta_2[7];
505 double s_p;
506 double s_0;
507 double Q2;
508 double chiOPE;
509 double mJpsi, mJ2;
510 double mPsi2S, mPsi2S2;
511 double mD2;
512
513 double Delta_C7_U;
514
515 const StandardModel& SM;
516 std::unique_ptr<F_1> myF_1;
517 std::unique_ptr<F_2> myF_2;
518 double T_perp_real;
519 double T_perp_imag;
520 double T_perp_bar_real;
521 double T_perp_bar_imag;
522
523 double average;
524 double error;
525 gsl_function f_GSL;
526 gsl_integration_cquad_workspace * w_GSL;
528 std::vector<std::string> mVgammaParameters;
529};
530
531
532
546class BR_MVgamma : public ThObservable {
547public:
548
555 BR_MVgamma(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
556
562
563 double computeThValue();
564
565private:
568 double arg;
569 double ADG;
570 double ys;
571 double t_int;
572};
573
574
575
589class R_MVgamma : public BR_MVgamma {
590public:
591
600 R_MVgamma(const StandardModel& SM_i, QCD::meson meson_1, QCD::meson vector_1, QCD::meson meson_2, QCD::meson vector_2);
601
606 double computeThValue();
607
608private:
613};
614
615
616
630class D0p_MVgamma : public BR_MVgamma {
631public:
632
641 D0p_MVgamma(const StandardModel& SM_i, QCD::meson meson_1, QCD::meson vector_1, QCD::meson meson_2, QCD::meson vector_2);
642
647 double computeThValue();
648
649private:
654};
655
656
657
671class ACP_MVgamma : public ThObservable {
672public:
673
680 ACP_MVgamma(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
681
687
688 double computeThValue();
689
690private:
693};
694
695
696
710class DACP_MVgamma : public ACP_MVgamma {
711public:
712
721 DACP_MVgamma(const StandardModel& SM_i, QCD::meson meson_1, QCD::meson vector_1, QCD::meson meson_2, QCD::meson vector_2);
722
727 double computeThValue();
728
729private:
734};
735
736
737
751class C_MVgamma : public ThObservable {
752public:
753
760 C_MVgamma(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
761
766 double computeThValue ();
767
768private:
771};
772
786class S_MVgamma : public ThObservable {
787public:
788
795 S_MVgamma(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
796
801 double computeThValue ();
802
803private:
806 double arg;
807};
808
822class ADG_MVgamma : public ThObservable {
823public:
824
831 ADG_MVgamma(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
832
837 double computeThValue ();
838
839private:
842 double arg;
843};
844
845
858class DC7_1 : public ThObservable {
859public:
860
867 DC7_1(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
868
873 double computeThValue();
874
875private:
878};
879
880
881
894class DC7_2 : public ThObservable {
895public:
896
903 DC7_2(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
904
909 double computeThValue();
910
911private:
914};
915
925class hp0_hm0 : public ThObservable {
926public:
927
934 hp0_hm0(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
935
940 double computeThValue();
941
942private:
945};
946
959class AbsDC7_L : public ThObservable {
960public:
961
968 AbsDC7_L(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
969
974 double computeThValue();
975
976private:
979};
980
981
982
995class AbsDC7_R : public ThObservable {
996public:
997
1004 AbsDC7_R(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
1005
1010 double computeThValue();
1011
1012private:
1015};
1016
1029class ReDC7_L : public ThObservable {
1030public:
1031
1038 ReDC7_L(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
1039
1044 double computeThValue();
1045
1046private:
1049};
1050
1051
1052
1065class ReDC7_R : public ThObservable {
1066public:
1067
1074 ReDC7_R(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
1075
1080 double computeThValue();
1081
1082private:
1085};
1086
1099class ImDC7_L : public ThObservable {
1100public:
1101
1108 ImDC7_L(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
1109
1114 double computeThValue();
1115
1116private:
1119};
1120
1121
1122
1135class ImDC7_R : public ThObservable {
1136public:
1137
1144 ImDC7_R(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
1145
1150 double computeThValue();
1151
1152private:
1155};
1156
1170public:
1171
1178 AbsDC7_QCDF(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
1179
1184 double computeThValue();
1185
1186private:
1189};
1190
1204public:
1205
1212 AbsDC7_QCDF_bar(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
1213
1218 double computeThValue();
1219
1220private:
1223};
1224
1237class ReDC7_QCDF : public ThObservable {
1238public:
1239
1246 ReDC7_QCDF(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
1247
1252 double computeThValue();
1253
1254private:
1257};
1258
1272public:
1273
1280 ReDC7_QCDF_bar(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
1281
1286 double computeThValue();
1287
1288private:
1291};
1292
1305class ImDC7_QCDF : public ThObservable {
1306public:
1307
1314 ImDC7_QCDF(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
1315
1320 double computeThValue();
1321
1322private:
1325};
1326
1340public:
1341
1348 ImDC7_QCDF_bar(const StandardModel& SM_i, QCD::meson meson_i, QCD::meson vector_i);
1349
1354 double computeThValue();
1355
1356private:
1359};
1360#endif /* MVLL_H */
1361
A class for the parameter of CPV in decay.
Definition MVgamma.h:671
double computeACP_MVgamma(QCD::meson meson, QCD::meson vector)
The parameter of CPV in .
Definition MVgamma.cpp:951
double computeThValue()
Definition MVgamma.cpp:966
QCD::meson meson
Definition MVgamma.h:691
QCD::meson vectorM
Definition MVgamma.h:692
A class for the parameter for decay.
Definition MVgamma.h:822
double arg
Definition MVgamma.h:842
double computeThValue()
The parameter for CPV in .
Definition MVgamma.cpp:1058
QCD::meson meson
Definition MVgamma.h:840
QCD::meson vectorM
Definition MVgamma.h:841
A class for the correction in decay.
Definition MVgamma.h:959
QCD::meson vectorM
Definition MVgamma.h:978
QCD::meson meson
Definition MVgamma.h:977
double computeThValue()
The in .
Definition MVgamma.cpp:1139
A class for the correction in decay.
Definition MVgamma.h:1203
QCD::meson meson
Definition MVgamma.h:1221
QCD::meson vectorM
Definition MVgamma.h:1222
double computeThValue()
The in .
Definition MVgamma.cpp:1250
A class for the correction in decay.
Definition MVgamma.h:1169
QCD::meson vectorM
Definition MVgamma.h:1188
double computeThValue()
The in .
Definition MVgamma.cpp:1229
QCD::meson meson
Definition MVgamma.h:1187
A class for the correction in decay.
Definition MVgamma.h:995
QCD::meson vectorM
Definition MVgamma.h:1014
double computeThValue()
The in .
Definition MVgamma.cpp:1154
QCD::meson meson
Definition MVgamma.h:1013
A class for the in decay.
Definition MVgamma.h:546
double arg
Definition MVgamma.h:568
QCD::meson meson
Definition MVgamma.h:566
double ys
Definition MVgamma.h:570
double computeBR_MVgamma(QCD::meson meson, QCD::meson vector)
The in .
Definition MVgamma.cpp:854
double computeThValue()
Definition MVgamma.cpp:902
double t_int
Definition MVgamma.h:571
double ADG
Definition MVgamma.h:569
QCD::meson vectorM
Definition MVgamma.h:567
A class for the parameter of CPV in decay.
Definition MVgamma.h:751
double computeThValue()
The parameter of CPV in .
Definition MVgamma.cpp:997
QCD::meson meson
Definition MVgamma.h:769
QCD::meson vectorM
Definition MVgamma.h:770
QCD::meson meson2
Definition MVgamma.h:651
double computeThValue()
The in .
Definition MVgamma.cpp:936
QCD::meson vector1
Definition MVgamma.h:652
QCD::meson meson1
Definition MVgamma.h:650
QCD::meson vector2
Definition MVgamma.h:653
A class for the parameter of CPV in decay.
Definition MVgamma.h:710
QCD::meson vector2
Definition MVgamma.h:733
QCD::meson vector1
Definition MVgamma.h:732
QCD::meson meson2
Definition MVgamma.h:731
double computeThValue()
The in .
Definition MVgamma.cpp:983
QCD::meson meson1
Definition MVgamma.h:730
A class for the correction in decay.
Definition MVgamma.h:858
QCD::meson vectorM
Definition MVgamma.h:877
double computeThValue()
The in .
Definition MVgamma.cpp:1094
QCD::meson meson
Definition MVgamma.h:876
A class for the correction in decay.
Definition MVgamma.h:894
QCD::meson meson
Definition MVgamma.h:912
QCD::meson vectorM
Definition MVgamma.h:913
double computeThValue()
The in .
Definition MVgamma.cpp:1109
Definition F_1.h:15
Definition F_2.h:15
A class for the correction in decay.
Definition MVgamma.h:1099
double computeThValue()
The in .
Definition MVgamma.cpp:1199
QCD::meson meson
Definition MVgamma.h:1117
QCD::meson vectorM
Definition MVgamma.h:1118
A class for the correction in decay.
Definition MVgamma.h:1339
QCD::meson meson
Definition MVgamma.h:1357
double computeThValue()
The in .
Definition MVgamma.cpp:1334
QCD::meson vectorM
Definition MVgamma.h:1358
A class for the correction in decay.
Definition MVgamma.h:1305
double computeThValue()
The in .
Definition MVgamma.cpp:1313
QCD::meson meson
Definition MVgamma.h:1323
QCD::meson vectorM
Definition MVgamma.h:1324
A class for the correction in decay.
Definition MVgamma.h:1135
double computeThValue()
The in .
Definition MVgamma.cpp:1214
QCD::meson vectorM
Definition MVgamma.h:1154
QCD::meson meson
Definition MVgamma.h:1153
A class for the decay.
Definition MVgamma.h:143
double t_m
Definition MVgamma.h:188
double t_p
Definition MVgamma.h:187
double r2_1
Definition MVgamma.h:200
double fperp
Definition MVgamma.h:182
double mu_b
Definition MVgamma.h:179
double r2_2
Definition MVgamma.h:201
double z_DM
Definition MVgamma.h:189
double Chi1plus
Definition MVgamma.h:192
double Ms
Definition MVgamma.h:185
gslpp::complex h[2]
Definition MVgamma.h:197
double ChiTT
Definition MVgamma.h:191
double Mb
Definition MVgamma.h:176
double r1_1
Definition MVgamma.h:198
void updateParameters()
The update parameter method for MVgamma.
Definition MVgamma.cpp:227
double n_I
Definition MVgamma.h:194
double spectator_charge
Definition MVgamma.h:208
virtual ~MVgamma()
Destructor.
Definition MVgamma.cpp:42
double rV
Definition MVgamma.h:190
double mc_pole
Definition MVgamma.h:178
std::vector< std::string > initializeMVgammaParameters()
A method for initializing the parameters necessary for MVgamma.
Definition MVgamma.cpp:45
double Chi1minus
Definition MVgamma.h:193
gslpp::complex lambda_u
Definition MVgamma.h:196
double mb_pole
Definition MVgamma.h:177
double lambda
Definition MVgamma.h:207
double ale
Definition MVgamma.h:172
double deltaC9_2
Definition MVgamma.h:203
double mu_h
Definition MVgamma.h:180
double GF
Definition MVgamma.h:171
gslpp::complex SU3_breaking
Definition MVgamma.h:206
gslpp::complex exp_Phase_1
Definition MVgamma.h:204
double deltaC9_1
Definition MVgamma.h:202
gslpp::complex exp_Phase_2
Definition MVgamma.h:205
double fB
Definition MVgamma.h:184
double fpara
Definition MVgamma.h:183
double MM
Definition MVgamma.h:173
double MM2
Definition MVgamma.h:174
double MW
Definition MVgamma.h:186
double width
Definition MVgamma.h:181
double r1_2
Definition MVgamma.h:199
gslpp::complex lambda_t
Definition MVgamma.h:195
double MV
Definition MVgamma.h:175
std::vector< std::string > parametersForMVgamma
Definition MVgamma.h:169
meson
An enum type for mesons.
Definition QCD.h:336
QCD::meson vector1
Definition MVgamma.h:611
QCD::meson meson2
Definition MVgamma.h:610
QCD::meson meson1
Definition MVgamma.h:609
QCD::meson vector2
Definition MVgamma.h:612
double computeThValue()
The in .
Definition MVgamma.cpp:919
A class for the correction in decay.
Definition MVgamma.h:1029
QCD::meson vectorM
Definition MVgamma.h:1048
QCD::meson meson
Definition MVgamma.h:1047
double computeThValue()
The in .
Definition MVgamma.cpp:1169
A class for the correction in decay.
Definition MVgamma.h:1271
QCD::meson vectorM
Definition MVgamma.h:1290
QCD::meson meson
Definition MVgamma.h:1289
double computeThValue()
The in .
Definition MVgamma.cpp:1292
A class for the correction in decay.
Definition MVgamma.h:1237
double computeThValue()
The in .
Definition MVgamma.cpp:1271
QCD::meson meson
Definition MVgamma.h:1255
QCD::meson vectorM
Definition MVgamma.h:1256
A class for the correction in decay.
Definition MVgamma.h:1065
QCD::meson meson
Definition MVgamma.h:1083
QCD::meson vectorM
Definition MVgamma.h:1084
double computeThValue()
The in .
Definition MVgamma.cpp:1184
A class for the parameter for CPV in decay.
Definition MVgamma.h:786
QCD::meson vectorM
Definition MVgamma.h:805
double arg
Definition MVgamma.h:806
double computeThValue()
The parameter for CPV in .
Definition MVgamma.cpp:1021
QCD::meson meson
Definition MVgamma.h:804
A model class for the Standard Model.
A class for a model prediction of an observable.
A class for the absolute value of the ratio in .
Definition MVgamma.h:925
QCD::meson vectorM
Definition MVgamma.h:944
double computeThValue()
The absolute value of the ratio in .
Definition MVgamma.cpp:1124
QCD::meson meson
Definition MVgamma.h:943