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
16class StandardModel;
17
27public:
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>& CMdiujleptonknu(int i, int j, int k) ;
175
176
181 virtual std::vector<WilsonCoefficient>& CMBXsnn(QCD::lepton lepton) ;
182
187 virtual std::vector<WilsonCoefficient>& CMBXdnn() ;
188
193 virtual std::vector<WilsonCoefficient>& CMDLij(int li_lj) ;
194
199 virtual std::vector<WilsonCoefficient>& CMDLi3j(int li_lj) ;
200
205 virtual std::vector<WilsonCoefficient>& CMmueconv() ;
206
211 virtual std::vector<WilsonCoefficient>& CMgminus2mu() ;
212
213 const double x_c(const double mu, const orders order = FULLNNLO) const;
214 const double x_t(const double mu, const orders order = FULLNNLO) const;
215 const double mt2omh2(const double mu, const orders order = FULLNNLO) const;
216
223 const double A0t(double x) const;
224
231 const double B0t(double x) const;
232
239 const double C0t(double x) const;
240
247 const double D0t(double x) const;
248
255 const double F0t(double x) const;
256
263 const double E0t(double x) const;
264
272 const double A1t(double x, double mu) const;
273
281 const double B1t(double x, double mu) const;
282
290 const double C1t(double x, double mu) const;
291
299 const double D1t(double x, double mu) const;
300
308 const double F1t(double x, double mu) const;
309
317 const double E1t(double x, double mu) const;
318
326 const double G1t(double x, double mu) const;
327
334 const double C7c_3L_at_mW(double x) const;
335
342 const double C7t_3L_at_mt(double x) const;
343
351 const double C7t_3L_func(double x, double mu) const;
352
359 const double C8c_3L_at_mW(double x) const;
360
367 const double C8t_3L_at_mt(double x) const;
368
376 const double C8t_3L_func(double x, double mu) const;
377
384 const double Tt(double x) const;
385
392 const double Wt(double x) const;
393
400 const double Eet(double x) const;
401
409 const double Rest(double x, double mu) const;
410
418 double C10_OS1(double x, double mu);
419
425 const double Y0(double x) const;
426
433 const double Y1(double x, double mu) const;
434
441 const double C7LOeff(double x) const;
442
449 const double C7NLOeff(double x) const;
450
457 const double C8LOeff(double x) const;
458
465 const double C8NLOeff(double x) const;
466
473 const double B0b(double x) const;
474
481 const double C0b(double x) const;
482
489 const double D0b(double x) const;
490
497 const double D0b_tilde(double x) const;
498
505 const double E0b(double x) const;
506
514 const double B1d(double x, double mu) const;
515
523 const double B1d_tilde(double x, double mu) const;
524
532 const double B1u(double x, double mu) const;
533
541 const double B1u_tilde(double x, double mu) const;
542
549 const double C1ew(double x) const;
550
558 const double Zew(double xt, double xz) const;
559
568 const double Gew(double xt, double xz, double mu) const;
569
578 const double Hew(double xt, double xz, double mu) const;
579
585 gslpp::complex S0c() const;
586
592 gslpp::complex S0ct() const;
593
599 gslpp::complex S0tt() const;
600
607 const double X0t(double x) const;
608
615 const double X1t(double x) const;
616
626 const double Xewt(double x, double a, double mu) const;
627
634 const double S1(double x) const;
635
636 virtual const double S0(double, double) const;
637
638 /*
639 * Wilson coefficients Misiak basis
640 * Operator block: L (2)
641 * Normalization: 4 G_F / sqrt(2) x CKM
642 */
643 virtual std::vector<WilsonCoefficientNew>& CMDF1(std::string blocks, unsigned int nops);
644
645 const double getMt_mut() const {
646 return Mt_mut;
647 }
648
649protected:
650 std::vector<WilsonCoefficient> vmcdb, vmcds, vmcd2, vmck2, vmck, vmckcc;
651 std::vector<WilsonCoefficient> vmcbsg, vmcprimebsg, vmcBMll, vmcprimeBMll, vmcbnlep, vmcbnlepCC, vmcd1, vmcd1Buras;
652 std::vector<WilsonCoefficient> vmckpnn, vmckmm, vmcbsnn, vmcbdnn, vmcbsmm, vmcbdmm, vmculeptonnu;
653 std::vector<WilsonCoefficient> vmcDLij, vmcDLi3j, vmcmueconv, vmcgminus2mu;
654 std::vector<WilsonCoefficientNew> vmcDF1;
655
656
657private:
658 const StandardModel & SM;
659 const double S0(double) const;
660 const double S0p(double x) const;
661 const double S11(double x) const;
662 const double S18(double x) const;
663 WilsonCoefficient mcdbd2, mcdbs2, mcdd2, mcdk2, mck, mckcc;
664 WilsonCoefficient mcbsg, mcprimebsg, mcBMll, mcprimeBMll, mcbnlep, mcbnlepCC, mcd1, mcd1Buras;
665 WilsonCoefficient mckpnn, mckmm, mcbsnn, mcbdnn, mcbsmm, mcbdmm, mculeptonnu;
666 WilsonCoefficient mcDLij, mcDLi3j, mcmueconv, mcgminus2mu;
667 WilsonCoefficientNew mcC, mcP, mcM, mcL, mcQ, mcB;
668
669 double Mut, Muw, Ale, GF, Mw_tree, Nc, CF, Mt_muw, Mt_mut;
670 double gamma0, J5, BtNDR, Mw, sW2, mu_b, sw;
671 double L, Lz;
672 double alstilde, aletilde;
673
674 gslpp::complex lam_t;
675 gslpp::matrix<gslpp::complex> Vckm;
676
684 double setWCBsmm(int i, double x, orders order);
685
693 double setWCBsmmEW(int i, double x, orders_qed order_qed);
694
702 double setWCBdmm(int i, double x, orders order);
703
711 double setWCBdmmEW(int i, double x, orders_qed order_qed);
712
720 double setWCbsg (int i, double x, orders order);
721
729 double setWCBMll (int i, double x, orders order);
730
738 double setWCbnlep (int i, double x, orders order);
739
746 double setWCbnlepEW (int i, double x);
747
753 const double phi1(double z) const;
754
761 const double phi2 (double x, double y) const;
762
763 double CWbsgArrayLO[8], CWbsgArrayNLO[8], CWbsgArrayNNLO[8];
764 double CWprimebsgArrayLO[8], CWprimebsgArrayNLO[8];
765 double CWBMllArrayLO[19], CWBMllArrayNLO[19];
766 double CWD1ArrayLO[10], CWD1ArrayNLO[10];
767 double CWbnlepArrayLOqcd[10], CWbnlepArrayNLOqcd[10];
768 double CWbnlepArrayLOew[10], CWbnlepArrayNLOew[10];
769
770 double CWBsmmArrayNNLOqcd[8], CWBsmmArrayNLOqcd[8], CWBsmmArrayLOqcd[8];
771 double CWBsmmArrayNLOewt4[8], CWBsmmArrayNLOewt2[8], CWBsmmArrayNLOew[8];
772
773 double CWBdmmArrayNNLOqcd[8], CWBdmmArrayNLOqcd[8], CWBdmmArrayLOqcd[8];
774 double CWBdmmArrayNLOewt4[8], CWBdmmArrayNLOewt2[8], CWBdmmArrayNLOew[8];
775
776 double sw2, swa, sw2a, swb, sw2b, swc, sw2c, swd, sw2d, swe, sw2e, swf, sw2f; //sen(theta_W) tree level
777 double xcachea, xcacheb, xcachec, xcached, xcachee, xcachef; // caching
778
779
785 const double phi_z(double z) const;
786
793 const double phi_xy (double x, double y) const;
794
800 double C3funNNLO(double x);
801
808 double C4fun(double x, orders ord);
809
815 double C5funNNLO(double x);
816
822 double C6funNNLO(double x);
823
829 double C7funLO(double x);
830
836 double C8funLO(double x);
837
838 unsigned int setCMDF1(WilsonCoefficientNew& CMDF1, WilsonCoefficientNew& DF1block, unsigned int tot, schemes scheme, qcd_orders order_qcd, qed_orders order_qed);
839
846 double fbb(double x);
847
854 double gbb(double x);
855
862 double taub2(double x);
863
871 double Delta_t(double mu, double x);
872
873 /*
874 * Wilson coefficients Misiak basis
875 * Operator block: C (2)
876 * Normalization: 4 G_F / sqrt(2) x CKM
877 */
878 WilsonCoefficientNew& mc_C();
879
880 /*
881 * Wilson coefficients Misiak basis
882 * Operator block: P (4)
883 * Normalization: 4 G_F / sqrt(2) x CKM
884 */
885 WilsonCoefficientNew& mc_P();
886
887 /*
888 * Wilson coefficients Misiak basis
889 * Operator block: M (2)
890 * Normalization: 4 G_F / sqrt(2) x CKM
891 * QED only available at NLO and in approximate formulas
892 * QED ref.: Gambino, Haisch, JHEP 0110, 020, hep-ph/0109058
893 */
894 WilsonCoefficientNew& mc_M();
895
896 /*
897 * Wilson coefficients Misiak basis
898 * Operator block: L (2)
899 * Normalization: 4 G_F / sqrt(2) x CKM
900 */
901 WilsonCoefficientNew& mc_L();
902
903 /*
904 * Wilson coefficients Misiak basis
905 * Operator block: Q (4)
906 * Normalization: 4 G_F / sqrt(2) x CKM
907 * QED_NLO ref.: Gambino, Haisch, JHEP 0110, 020, hep-ph/0109058 - COULD BE CHANGED TO X,Y,W
908 */
909 WilsonCoefficientNew& mc_Q();
910
911 /*
912 * Wilson coefficients Misiak basis
913 * Operator block: B (1)
914 * Normalization: 4 G_F / sqrt(2) x CKM
915 */
916 WilsonCoefficientNew& mc_B();
917
918 friend double gslpp_special_functions::dilog(double x);
919 friend double gslpp_special_functions::clausen(double x);
920 friend double gslpp_special_functions::zeta(int i);
921
922};
923
924#endif /* STANDARDMODELMATCHING_H */
@ FULLNNLO
Definition: OrderScheme.h:39
A class for a template of model matching.
Definition: ModelMatching.h:25
virtual std::vector< WilsonCoefficient > & CMBMll(QCD::lepton lepton)=0
virtual std::vector< WilsonCoefficient > & CMBXsnn(QCD::lepton lepton)=0
virtual std::vector< WilsonCoefficientNew > & CMDF1(std::string blocks, unsigned int nops)=0
virtual std::vector< WilsonCoefficient > & CMd1()=0
virtual std::vector< WilsonCoefficient > & CMd1Buras()=0
virtual std::vector< WilsonCoefficient > & CMprimebsg()=0
virtual std::vector< WilsonCoefficient > & CMbnlep(int a)=0
virtual std::vector< WilsonCoefficient > & CMbnlepCC(const int a)=0
virtual std::vector< WilsonCoefficient > & CMprimeBMll(QCD::lepton lepton)=0
virtual std::vector< WilsonCoefficient > & CMbsg()=0
An observable class for the -boson mass.
Definition: Mw.h:22
lepton
An enum type for leptons.
Definition: QCD.h:310
A model class for the Standard Model.
A class for the matching in the Standard Model.
void updateSMParameters()
Updates to new Standard Model parameter sets.
virtual std::vector< WilsonCoefficient > & CMdbs2()
,
virtual std::vector< WilsonCoefficient > & CMdbd2()
,
StandardModelMatching(const StandardModel &SM_i)
virtual std::vector< WilsonCoefficient > & CMdd2()
,
A class for the Wilson coefficients.
A class for the Wilson coefficients.
orders
An enum type for orders in QCD.
Definition: OrderScheme.h:33
schemes
An enum type for regularization schemes.
Definition: OrderScheme.h:20
qed_orders
An enum type for qed_orders in electroweak.
Definition: OrderScheme.h:90
orders_qed
An enum type for orders in electroweak.
Definition: OrderScheme.h:56
qcd_orders
An enum type for qcd_orders in QCD.
Definition: OrderScheme.h:74