a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
StandardModelMatching.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2012 HEPfit Collaboration
3  *
4  *
5  * For the licensing terms see doc/COPYING.
6  */
7 
8 #ifndef STANDARDMODELMATCHING_H
9 #define STANDARDMODELMATCHING_H
10 
11 #include "ModelMatching.h"
12 #include "gslpp.h"
13 
14 #define LEPS 1.e-5 // tolerance in the limit of S(x,y) to S(x)
15 
16 class StandardModel;
17 
27 public:
28 
30 
31  virtual ~StandardModelMatching();
32 
37  void updateSMParameters();
38 
44  virtual std::vector<WilsonCoefficient>& CMdbd2() ;
45 
51  virtual std::vector<WilsonCoefficient>& CMdbs2() ;
52 
58  virtual std::vector<WilsonCoefficient>& CMdd2() ;
59 
65  virtual std::vector<WilsonCoefficient>& CMdk2() ;
66 
74  virtual std::vector<WilsonCoefficient>& CMbnlep( int a) ;
75 
82  virtual std::vector<WilsonCoefficient>& CMbnlepCC( int a) ;
83 
90  virtual std::vector<WilsonCoefficient>& CMbsg() ;
91 
98  virtual std::vector<WilsonCoefficient>& CMprimebsg() ;
99 
106  virtual std::vector<WilsonCoefficient>& CMBMll(QCD::lepton lepton) ;
113  virtual std::vector<WilsonCoefficient>& CMprimeBMll(QCD::lepton lepton) ;
114 
122  virtual std::vector<WilsonCoefficient>& CMK() ;
123 
131  virtual std::vector<WilsonCoefficient>& CMKCC() ;
132 
138  virtual std::vector<WilsonCoefficient>& CMd1() ;
139 
145  virtual std::vector<WilsonCoefficient>& CMd1Buras() ;
146 
151  virtual std::vector<WilsonCoefficient>& CMkpnn() ;
156  virtual std::vector<WilsonCoefficient>& CMkmm() ;
157 
162  virtual std::vector<WilsonCoefficient>& CMbsmm() ;
163 
168  virtual std::vector<WilsonCoefficient>& CMbdmm() ;
169 
174  virtual std::vector<WilsonCoefficient>& CMbtaunu(QCD::meson meson_i) ;
175 
180  virtual std::vector<WilsonCoefficient>& CMBXsnn() ;
181 
186  virtual std::vector<WilsonCoefficient>& CMBXdnn() ;
187 
192  virtual std::vector<WilsonCoefficient>& CMDLij(int li_lj) ;
193 
198  virtual std::vector<WilsonCoefficient>& CMDLi3j(int li_lj) ;
199 
204  virtual std::vector<WilsonCoefficient>& CMmueconv() ;
205 
210  virtual std::vector<WilsonCoefficient>& CMgminus2mu() ;
211 
212  double x_c(const double mu, const orders order = FULLNNLO) const;
213  double x_t(const double mu, const orders order = FULLNNLO) const;
214  double mt2omh2(const double mu, const orders order = FULLNNLO) const;
215 
222  double A0t(double x)const;
223 
230  double B0t(double x)const;
231 
238  double C0t(double x)const;
239 
246  double D0t(double x)const;
247 
254  double F0t(double x)const;
255 
262  double E0t(double x)const;
263 
271  double A1t(double x, double mu) const;
272 
280  double B1t(double x, double mu)const;
281 
289  double C1t(double x, double mu)const;
290 
298  double D1t(double x, double mu)const;
299 
307  double F1t(double x, double mu) const;
308 
316  double E1t(double x, double mu) const;
317 
325  double G1t(double x, double mu) const;
326 
333  double C7c_3L_at_mW(double x) const;
334 
341  double C7t_3L_at_mt(double x) const;
342 
350  double C7t_3L_func(double x, double mu) const;
351 
358  double C8c_3L_at_mW(double x) const;
359 
366  double C8t_3L_at_mt(double x) const;
367 
375  double C8t_3L_func(double x, double mu) const;
376 
383  double Tt(double x) const;
384 
391  double Wt(double x) const;
392 
399  double Eet(double x) const;
400 
408  double Rest(double x, double mu) const;
409 
417  double C10_OS1(double x, double mu);
418 
424  double Y0(double x)const;
425 
432  double Y1(double x, double mu)const;
433 
440  double C7LOeff(double x)const;
441 
448  double C7NLOeff(double x)const;
449 
456  double C8LOeff(double x)const;
457 
464  double C8NLOeff(double x)const;
465 
472  double B0b(double x)const;
473 
480  double C0b(double x)const;
481 
488  double D0b(double x)const;
489 
496  double D0b_tilde(double x)const;
497 
504  double E0b(double x)const;
505 
513  double B1d(double x, double mu)const;
514 
522  double B1d_tilde(double x, double mu)const;
523 
531  double B1u(double x, double mu)const;
532 
540  double B1u_tilde(double x, double mu)const;
541 
548  double C1ew(double x)const;
549 
557  double Zew(double xt, double xz)const;
558 
567  double Gew(double xt, double xz, double mu)const;
568 
577  double Hew(double xt, double xz, double mu)const;
578 
584  gslpp::complex S0c() const;
585 
591  gslpp::complex S0ct() const;
592 
598  gslpp::complex S0tt() const;
599 
606  double X0t(double x)const;
607 
614  double X1t(double x)const;
615 
625  double Xewt(double x, double a, double mu)const;
626 
633  double S1(double x) const;
634 
635  virtual double S0(double, double) const;
636 
637  /*
638  * Wilson coefficients Misiak basis
639  * Operator block: L (2)
640  * Normalization: 4 G_F / sqrt(2) x CKM
641  */
642  virtual std::vector<WilsonCoefficientNew>& CMDF1(std::string blocks, unsigned int nops);
643 
644  double getMt_mut() const {
645  return Mt_mut;
646  }
647 
648 protected:
649  std::vector<WilsonCoefficient> vmcdb, vmcds, vmcd2, vmck2, vmck, vmckcc;
650  std::vector<WilsonCoefficient> vmcbsg, vmcprimebsg, vmcBMll, vmcprimeBMll, vmcbnlep, vmcbnlepCC, vmcd1, vmcd1Buras;
651  std::vector<WilsonCoefficient> vmckpnn, vmckmm, vmcbsnn, vmcbdnn, vmcbsmm, vmcbdmm, vmcbtaunu;
652  std::vector<WilsonCoefficient> vmcDLij, vmcDLi3j, vmcmueconv, vmcgminus2mu;
653  std::vector<WilsonCoefficientNew> vmcDF1;
654 
655 
656 private:
657  const StandardModel & SM;
658  double S0(double) const;
659  double S0p(double x) const;
660  double S11(double x) const;
661  double S18(double x) const;
662  WilsonCoefficient mcdbd2, mcdbs2, mcdd2, mcdk2, mck, mckcc;
663  WilsonCoefficient mcbsg, mcprimebsg, mcBMll, mcprimeBMll, mcbnlep, mcbnlepCC, mcd1, mcd1Buras;
664  WilsonCoefficient mckpnn, mckmm, mcbsnn, mcbdnn, mcbsmm, mcbdmm, mcbtaunu;
665  WilsonCoefficient mcDLij, mcDLi3j, mcmueconv, mcgminus2mu;
666  WilsonCoefficientNew mcC, mcP, mcM, mcL, mcQ, mcB;
667 
668  double Mut, Muw, Ale, GF, Mw_tree, Nc, CF, Mt_muw, Mt_mut;
669  double gamma0, J5, BtNDR, Mw, sW2, mu_b;
670  double L, Lz;
671  double alstilde, aletilde;
672 
673  gslpp::complex lam_t;
675 
683  double setWCBsmm(int i, double x, orders order);
684 
692  double setWCBsmmEW(int i, double x, orders_qed order_qed);
693 
701  double setWCBdmm(int i, double x, orders order);
702 
710  double setWCBdmmEW(int i, double x, orders_qed order_qed);
711 
719  double setWCbsg (int i, double x, orders order);
720 
728  double setWCBMll (int i, double x, orders order);
729 
737  double setWCbnlep (int i, double x, orders order);
738 
745  double setWCbnlepEW (int i, double x);
746 
752  double phi1(double z) const;
753 
760  double phi2 (double x, double y) const;
761 
762  double CWbsgArrayLO[8], CWbsgArrayNLO[8], CWbsgArrayNNLO[8];
763  double CWprimebsgArrayLO[8], CWprimebsgArrayNLO[8];
764  double CWBMllArrayLO[19], CWBMllArrayNLO[19];
765  double CWD1ArrayLO[10], CWD1ArrayNLO[10];
766  double CWbnlepArrayLOqcd[10], CWbnlepArrayNLOqcd[10];
767  double CWbnlepArrayLOew[10], CWbnlepArrayNLOew[10];
768 
769  double CWBsmmArrayNNLOqcd[8], CWBsmmArrayNLOqcd[8], CWBsmmArrayLOqcd[8];
770  double CWBsmmArrayNLOewt4[8], CWBsmmArrayNLOewt2[8], CWBsmmArrayNLOew[8];
771 
772  double CWBdmmArrayNNLOqcd[8], CWBdmmArrayNLOqcd[8], CWBdmmArrayLOqcd[8];
773  double CWBdmmArrayNLOewt4[8], CWBdmmArrayNLOewt2[8], CWBdmmArrayNLOew[8];
774 
775  double sw, swa, swb, swc, swd, swe, swf; //sen(theta_W) tree level
776  double xcachea, xcacheb, xcachec, xcached, xcachee, xcachef; // caching
777 
778 
784  double phi_z(double z) const;
785 
792  double phi_xy (double x, double y) const;
793 
799  double C3funNNLO(double x);
800 
807  double C4fun(double x, orders ord);
808 
814  double C5funNNLO(double x);
815 
821  double C6funNNLO(double x);
822 
828  double C7funLO(double x);
829 
835  double C8funLO(double x);
836 
837  unsigned int setCMDF1(WilsonCoefficientNew& CMDF1, WilsonCoefficientNew& DF1block, unsigned int tot, schemes scheme, qcd_orders order_qcd, qed_orders order_qed);
838 
845  double fbb(double x);
846 
853  double gbb(double x);
854 
861  double taub2(double x);
862 
870  double Delta_t(double mu, double x);
871 
872  /*
873  * Wilson coefficients Misiak basis
874  * Operator block: C (2)
875  * Normalization: 4 G_F / sqrt(2) x CKM
876  */
877  WilsonCoefficientNew& mc_C();
878 
879  /*
880  * Wilson coefficients Misiak basis
881  * Operator block: P (4)
882  * Normalization: 4 G_F / sqrt(2) x CKM
883  */
884  WilsonCoefficientNew& mc_P();
885 
886  /*
887  * Wilson coefficients Misiak basis
888  * Operator block: M (2)
889  * Normalization: 4 G_F / sqrt(2) x CKM
890  * QED only available at NLO and in approximate formulas
891  * QED ref.: Gambino, Haisch, JHEP 0110, 020, hep-ph/0109058
892  */
893  WilsonCoefficientNew& mc_M();
894 
895  /*
896  * Wilson coefficients Misiak basis
897  * Operator block: L (2)
898  * Normalization: 4 G_F / sqrt(2) x CKM
899  */
900  WilsonCoefficientNew& mc_L();
901 
902  /*
903  * Wilson coefficients Misiak basis
904  * Operator block: Q (4)
905  * Normalization: 4 G_F / sqrt(2) x CKM
906  * QED_NLO ref.: Gambino, Haisch, JHEP 0110, 020, hep-ph/0109058 - COULD BE CHANGED TO X,Y,W
907  */
908  WilsonCoefficientNew& mc_Q();
909 
910  /*
911  * Wilson coefficients Misiak basis
912  * Operator block: B (1)
913  * Normalization: 4 G_F / sqrt(2) x CKM
914  */
915  WilsonCoefficientNew& mc_B();
916 
917  friend double gslpp_special_functions::dilog(double x);
918  friend double gslpp_special_functions::clausen(double x);
919  friend double gslpp_special_functions::zeta(int i);
920 
921 };
922 
923 #endif /* STANDARDMODELMATCHING_H */
gslpp_special_functions::zeta
double zeta(int i)
Definition: gslpp_special_functions.cpp:20
WilsonCoefficient
A class for the Wilson coefficients.
Definition: WilsonCoefficient.h:22
ModelMatching::CMprimeBMll
virtual std::vector< WilsonCoefficient > & CMprimeBMll(QCD::lepton lepton)=0
ModelMatching::CMd1Buras
virtual std::vector< WilsonCoefficient > & CMd1Buras()=0
StandardModelMatching::CMdbd2
virtual std::vector< WilsonCoefficient > & CMdbd2()
,
Definition: StandardModelMatching.cpp:999
StandardModelMatching::~StandardModelMatching
virtual ~StandardModelMatching()
Definition: StandardModelMatching.cpp:108
StandardModelMatching::CMdbs2
virtual std::vector< WilsonCoefficient > & CMdbs2()
,
Definition: StandardModelMatching.cpp:1049
qcd_orders
qcd_orders
Definition: OrderScheme.h:65
WilsonCoefficientNew
A class for the Wilson coefficients.
Definition: WilsonCoefficientNew.h:22
gslpp.h
ModelMatching::CMbnlepCC
virtual std::vector< WilsonCoefficient > & CMbnlepCC(const int a)=0
ModelMatching::CMbsg
virtual std::vector< WilsonCoefficient > & CMbsg()=0
gslpp::complex
A class for defining operations on and functions of complex numbers.
Definition: gslpp_complex.h:35
gslpp::matrix< gslpp::complex >
StandardModelMatching::StandardModelMatching
StandardModelMatching(const StandardModel &SM_i)
Definition: StandardModelMatching.cpp:16
StandardModel
A model class for the Standard Model.
Definition: StandardModel.h:477
ModelMatching
A class for a template of model matching.
Definition: ModelMatching.h:25
ModelMatching::CMbnlep
virtual std::vector< WilsonCoefficient > & CMbnlep(const int a)=0
ModelMatching::CMd1
virtual std::vector< WilsonCoefficient > & CMd1()=0
StandardModelMatching
A class for the matching in the Standard Model.
Definition: StandardModelMatching.h:26
schemes
schemes
An enum type for regularization schemes.
Definition: OrderScheme.h:19
ModelMatching::CMBMll
virtual std::vector< WilsonCoefficient > & CMBMll(QCD::lepton lepton)=0
QCD::meson
meson
An enum type for mesons.
Definition: QCD.h:336
qed_orders
qed_orders
Definition: OrderScheme.h:81
orders_qed
orders_qed
An enum type for orders in electroweak.
Definition: OrderScheme.h:47
StandardModelMatching::updateSMParameters
void updateSMParameters()
Updates to new Standard Model parameter sets.
Definition: StandardModelMatching.cpp:111
ModelMatching::CMprimebsg
virtual std::vector< WilsonCoefficient > & CMprimebsg()=0
orders
orders
An enum type for orders in QCD.
Definition: OrderScheme.h:31
ModelMatching::CMDF1
virtual std::vector< WilsonCoefficientNew > & CMDF1(std::string blocks, unsigned int nops)=0
gslpp_special_functions::dilog
double dilog(double x)
Definition: gslpp_special_functions.cpp:28
StandardModelMatching::CMdd2
virtual std::vector< WilsonCoefficient > & CMdd2()
,
Definition: StandardModelMatching.cpp:1205
Mw
An observable class for the -boson mass.
Definition: Mw.h:22
gslpp_special_functions::clausen
double clausen(double x)
Definition: gslpp_special_functions.cpp:24
FULLNNLO
Definition: OrderScheme.h:38
ModelMatching.h
QCD::lepton
lepton
An enum type for leptons.
Definition: QCD.h:310