a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
WilsonCoefficientObservables.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
9#include "StandardModel.h"
10
11/*******************************************************************************
12 * Wilson Coefficients *
13 * ****************************************************************************/
14
15
16WC_C7g::WC_C7g(const StandardModel& SM_i, unsigned int part_i)
17: ThObservable(SM_i), mySM(SM_i)
18{
19 part = part_i;
20 mu = mySM.getMub();
21}
22
24{
25 mu = getBinMin();
26 allcoeff = mySM.getFlavour().ComputeCoeffBMll(mu, QCD::MU); /*QCD::MU does not matter here but necessary.*/
27
28 if (part == 0) return ((*(allcoeff[LO]))(6) + (*(allcoeff[NLO]))(6)).real();
29 if (part == 1) return ((*(allcoeff[LO]))(6) + (*(allcoeff[NLO]))(6)).imag();
30 if (part == 2) return ((*(allcoeff[LO]))(6) + (*(allcoeff[NLO]))(6)).abs();
31 if (part == 3) return ((*(allcoeff[LO]))(6) + (*(allcoeff[NLO]))(6)).arg();
32 else throw std::runtime_error("WC_C7g: part specification can only be 0, 1 or 2");
33}
34
35WC_C9::WC_C9(const StandardModel& SM_i, unsigned int part_i, QCD::lepton lep_i)
36: ThObservable(SM_i), mySM(SM_i)
37{
38 part = part_i;
39 lepton = lep_i;
40 mu = mySM.getMub();
41}
42
44{
45 mu = getBinMin();
47
48 if (part == 0) return ((*(allcoeff[LO]))(8) + (*(allcoeff[NLO]))(8)).real();
49 if (part == 1) return ((*(allcoeff[LO]))(8) + (*(allcoeff[NLO]))(8)).imag();
50 if (part == 2) return ((*(allcoeff[LO]))(8) + (*(allcoeff[NLO]))(8)).abs();
51 if (part == 3) return ((*(allcoeff[LO]))(8) + (*(allcoeff[NLO]))(8)).arg();
52 else throw std::runtime_error("WC_C7g: part specification can only be 0, 1 or 2");
53}
54
55WC_C10::WC_C10(const StandardModel& SM_i, unsigned int part_i, QCD::lepton lep_i)
56: ThObservable(SM_i), mySM(SM_i)
57{
58 part = part_i;
59 lepton = lep_i;
60 mu = mySM.getMub();
61}
62
64{
65 mu = getBinMin();
67
68 if (part == 0) return ((*(allcoeff[LO]))(9) + (*(allcoeff[NLO]))(9)).real();
69 if (part == 1) return ((*(allcoeff[LO]))(9) + (*(allcoeff[NLO]))(9)).imag();
70 if (part == 2) return ((*(allcoeff[LO]))(9) + (*(allcoeff[NLO]))(9)).abs();
71 if (part == 3) return ((*(allcoeff[LO]))(9) + (*(allcoeff[NLO]))(9)).arg();
72 else throw std::runtime_error("WC_C7g: part specification can only be 0, 1 or 2");
73}
74
75WC_epspOeps::WC_epspOeps(const StandardModel& SM_i, unsigned int part_i, double mu_z)
76: ThObservable(SM_i), mySM(SM_i)
77{
78 part = part_i;
79 mu = mu_z;
80}
81
83{
86 gslpp::vector<gslpp::complex> allcoeff_z = (*allcoeffz[LO]) + (*allcoeffz[LO_QED]) + (*allcoeffz[NLO]) + (*allcoeffz[NLO_QED11]);
87 gslpp::vector<gslpp::complex> allcoeff_y = (*allcoeffv[LO]) + (*allcoeffv[LO_QED]) + (*allcoeffv[NLO]) + (*allcoeffv[NLO_QED11]);
88 allcoeff_z.assign(0,allcoeff_y(0));
89 allcoeff_z.assign(1,allcoeff_y(1));
90 for(int i = 2; i<10; i++){
91 allcoeff_y.assign(i,allcoeff_y(i)-allcoeff_z(i));
92 }
93 // Table 5 of 1909.05610
94 if (part == 0) return allcoeff_z(0).real(); // z1
95 if (part == 1) return allcoeff_z(1).real(); // z2
96 if (part == 2) return allcoeff_y(2).real(); // y3
97 if (part == 3) return allcoeff_y(3).real(); // y4
98 if (part == 4) return allcoeff_y(4).real(); // y5
99 if (part == 5) return allcoeff_y(5).real(); // y6
100 if (part == 6) return allcoeff_y(6).real(); // y7
101 if (part == 7) return allcoeff_y(7).real(); // y8
102 if (part == 8) return allcoeff_y(8).real(); // y9
103 if (part == 9) return allcoeff_y(9).real(); // y10
104 else throw std::runtime_error("WC_epspOeps: part specification can only go from 0 to 9");
105}
@ LO
Definition: OrderScheme.h:34
@ NLO
Definition: OrderScheme.h:35
@ NDR
Definition: OrderScheme.h:21
@ NLO_QED11
Definition: OrderScheme.h:59
@ LO_QED
Definition: OrderScheme.h:58
gslpp::vector< gslpp::complex > ** ComputeCoeffDS1PPv(double mu, schemes scheme=NDR) const
Definition: Flavour.cpp:126
gslpp::vector< gslpp::complex > ** ComputeCoeffBMll(double mu, QCD::lepton lepton, bool noSM=false, schemes scheme=NDR) const
Computes the Wilson coefficient for the process .
Definition: Flavour.cpp:194
gslpp::vector< gslpp::complex > ** ComputeCoeffDS1PPz(double muc, schemes scheme=NDR) const
Definition: Flavour.cpp:131
lepton
An enum type for leptons.
Definition: QCD.h:310
@ MU
Definition: QCD.h:314
const double getMub() const
A get method to access the threshold between five- and four-flavour theory in GeV.
Definition: QCD.h:582
A model class for the Standard Model.
const Flavour & getFlavour() const
A class for a model prediction of an observable.
Definition: ThObservable.h:25
double getBinMin()
A get method to get the minimum value of the bin.
Definition: ThObservable.h:82
double computeThValue()
The Wilson coefficient .
gslpp::vector< gslpp::complex > ** allcoeff
WC_C10(const StandardModel &SM_i, unsigned int part_i, QCD::lepton lep_i)
Constructor.
const StandardModel & mySM
WC_C7g(const StandardModel &SM_i, unsigned int part_i)
Constructor.
const StandardModel & mySM
double computeThValue()
The Wilson coefficient .
gslpp::vector< gslpp::complex > ** allcoeff
gslpp::vector< gslpp::complex > ** allcoeff
const StandardModel & mySM
WC_C9(const StandardModel &SM_i, unsigned int part_i, QCD::lepton lep_i)
Constructor.
double computeThValue()
The Wilson coefficient .
const StandardModel & mySM
gslpp::vector< gslpp::complex > ** allcoeffv
WC_epspOeps(const StandardModel &SM_i, unsigned int part_i, double mu_z)
Constructor.
gslpp::vector< gslpp::complex > ** allcoeffz
double computeThValue()
The Wilson coefficients of eps' / eps.