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  double getMt_mut() const {
638  return Mt_mut;
639  }
640 
641 protected:
642  std::vector<WilsonCoefficient> vmcdb, vmcds, vmcd2, vmck2, vmck, vmckcc;
643  std::vector<WilsonCoefficient> vmcbsg, vmcprimebsg, vmcBMll, vmcprimeBMll, vmcbnlep, vmcbnlepCC, vmcd1, vmcd1Buras;
644  std::vector<WilsonCoefficient> vmckpnn, vmckmm, vmcbsnn, vmcbdnn, vmcbsmm, vmcbdmm, vmcbtaunu;
645  std::vector<WilsonCoefficient> vmcDLij, vmcDLi3j, vmcmueconv, vmcgminus2mu;
646 
647 
648 private:
649  const StandardModel & SM;
650  double S0(double) const;
651  double S0p(double x) const;
652  double S11(double x) const;
653  double S18(double x) const;
654  WilsonCoefficient mcdbd2, mcdbs2, mcdd2, mcdk2, mck, mckcc;
655  WilsonCoefficient mcbsg, mcprimebsg, mcBMll, mcprimeBMll, mcbnlep, mcbnlepCC, mcd1, mcd1Buras;
656  WilsonCoefficient mckpnn, mckmm, mcbsnn, mcbdnn, mcbsmm, mcbdmm, mcbtaunu;
657  WilsonCoefficient mcDLij, mcDLi3j, mcmueconv, mcgminus2mu;
658 
659  double Mut, Muw, Ale, GF, Mw_tree, Nc, CF, Mt_muw, Mt_mut;
660  double gamma0, J5, BtNDR, Mw, sW2, mu_b;
661  double L, Lz;
662  double alstilde, aletilde;
663 
664  gslpp::complex lam_t;
666 
674  double setWCBsmm(int i, double x, orders order);
675 
683  double setWCBsmmEW(int i, double x, orders_qed order_qed);
684 
692  double setWCBdmm(int i, double x, orders order);
693 
701  double setWCBdmmEW(int i, double x, orders_qed order_qed);
702 
710  double setWCbsg (int i, double x, orders order);
711 
719  double setWCBMll (int i, double x, orders order);
720 
728  double setWCbnlep (int i, double x, orders order);
729 
736  double setWCbnlepEW (int i, double x);
737 
743  double phi1(double z) const;
744 
751  double phi2 (double x, double y) const;
752 
753  double CWbsgArrayLO[8], CWbsgArrayNLO[8], CWbsgArrayNNLO[8];
754  double CWprimebsgArrayLO[8], CWprimebsgArrayNLO[8];
755  double CWBMllArrayLO[19], CWBMllArrayNLO[19];
756  double CWD1ArrayLO[10], CWD1ArrayNLO[10];
757  double CWbnlepArrayLOqcd[10], CWbnlepArrayNLOqcd[10];
758  double CWbnlepArrayLOew[10], CWbnlepArrayNLOew[10];
759 
760  double CWBsmmArrayNNLOqcd[8], CWBsmmArrayNLOqcd[8], CWBsmmArrayLOqcd[8];
761  double CWBsmmArrayNLOewt4[8], CWBsmmArrayNLOewt2[8], CWBsmmArrayNLOew[8];
762 
763  double CWBdmmArrayNNLOqcd[8], CWBdmmArrayNLOqcd[8], CWBdmmArrayLOqcd[8];
764  double CWBdmmArrayNLOewt4[8], CWBdmmArrayNLOewt2[8], CWBdmmArrayNLOew[8];
765 
766  double sw, swa, swb, swc, swd, swe, swf; //sen(theta_W) tree level
767  double xcachea, xcacheb, xcachec, xcached, xcachee, xcachef; // caching
768 
769 
775  double phi_z(double z) const;
776 
783  double phi_xy (double x, double y) const;
784 
790  double C3funNNLO(double x);
791 
798  double C4fun(double x, orders ord);
799 
805  double C5funNNLO(double x);
806 
812  double C6funNNLO(double x);
813 
819  double C7funLO(double x);
820 
826  double C8funLO(double x);
827 
834  double fbb(double x);
835 
842  double gbb(double x);
843 
850  double taub2(double x);
851 
859  double Delta_t(double mu, double x);
860 
861  friend double gslpp_special_functions::dilog(double x);
862  friend double gslpp_special_functions::clausen(double x);
863  friend double gslpp_special_functions::zeta(int i);
864 
865 };
866 
867 #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:993
StandardModelMatching::~StandardModelMatching
virtual ~StandardModelMatching()
Definition: StandardModelMatching.cpp:102
StandardModelMatching::CMdbs2
virtual std::vector< WilsonCoefficient > & CMdbs2()
,
Definition: StandardModelMatching.cpp:1043
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:474
ModelMatching
A class for a template of model matching.
Definition: ModelMatching.h:24
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
ModelMatching::CMBMll
virtual std::vector< WilsonCoefficient > & CMBMll(QCD::lepton lepton)=0
QCD::meson
meson
An enum type for mesons.
Definition: QCD.h:336
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:105
ModelMatching::CMprimebsg
virtual std::vector< WilsonCoefficient > & CMprimebsg()=0
orders
orders
An enum type for orders in QCD.
Definition: OrderScheme.h:31
gslpp_special_functions::dilog
double dilog(double x)
Definition: gslpp_special_functions.cpp:28
StandardModelMatching::CMdd2
virtual std::vector< WilsonCoefficient > & CMdd2()
,
Definition: StandardModelMatching.cpp:1199
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