]>
Commit | Line | Data |
---|---|---|
da0e9ce3 | 1 | //--------------------------------------------------------------------------------- |
2 | // | |
3 | // Wilson coeficients according to A.J.Buras and M.Munz, Phys.Rev. D52, 186. (1995) | |
4 | // Thanks to N. Nikitine for example code for Pythia | |
5 | // Coeficient C8eff and C2 correction to C7eff taken from: | |
6 | // A.J.Buras, M.Misiak, M.Munz, S.Pokorski, Nucl.Phys. B424, 374 (1994) | |
7 | // | |
8 | // Used constants come from PDG 2004 | |
9 | // | |
10 | // P. Reznicek 18.02.2005 | |
11 | // | |
12 | // 04/03/2005 PR Added h-function | |
13 | // | |
14 | //--------------------------------------------------------------------------------- | |
15 | ||
16 | #ifndef EVTWILSONCOEFICIENTS_HH | |
17 | #define EVTWILSONCOEFICIENTS_HH | |
18 | ||
19 | #include "EvtGenBase/EvtComplex.hh" | |
20 | ||
21 | class EvtWilsonCoeficients { | |
22 | ||
23 | public: | |
24 | ||
25 | EvtWilsonCoeficients(); | |
26 | //~EvtWilsonCoeficients() {}; | |
27 | ||
28 | // calculate strong coupling constant for n_f flavours and scale mu | |
29 | double alphaS(double mu,int n_f,double Lambda); | |
30 | // calculate Lambda matching alphaS using simple iterative method | |
31 | double Lambda(double alpha,int n_f,double mu,double epsilon,int maxstep); | |
32 | // eta-function: ratio of strong coupling constants | |
33 | double eta(double mu,int n_f,double Lambda,double M_W); | |
34 | ||
35 | // Wilson coeficients C1-C6 | |
36 | EvtComplex C1(double mu,int n_f,double Lambda,double M_W); | |
37 | EvtComplex C2(double mu,int n_f,double Lambda,double M_W); | |
38 | EvtComplex C3(double mu,int n_f,double Lambda,double M_W); | |
39 | EvtComplex C4(double mu,int n_f,double Lambda,double M_W); | |
40 | EvtComplex C5(double mu,int n_f,double Lambda,double M_W); | |
41 | EvtComplex C6(double mu,int n_f,double Lambda,double M_W); | |
42 | // Wilson coeficietns C7,C8 => C7eff | |
43 | EvtComplex C7(double M_t,double M_W); | |
44 | EvtComplex C8(double M_t,double M_W); | |
45 | EvtComplex C7eff0(double mu,int n_f,double Lambda,double M_t,double M_W); | |
46 | EvtComplex C8eff0(double mu,int n_f,double Lambda,double M_t,double M_W); | |
47 | // Wilson coeficient C10 | |
48 | EvtComplex C10tilda(double sin2W,double M_t,double M_W); | |
49 | EvtComplex C10(double sin2W,double M_t,double M_W,double ialpha); | |
50 | // Wilson coeficient C9 | |
51 | double PE(double mu,int n_f,double Lambda,double M_W); | |
52 | EvtComplex P0(int ksi,double mu,int n_f,double Lambda,double M_W); | |
53 | EvtComplex C9tilda(int ksi,double mu,int n_f,double Lambda,double sin2W,double M_t,double M_W); | |
54 | EvtComplex C9(int ksi,double mu,int n_f,double Lambda,double sin2W,double M_t,double M_W,double ialpha); | |
55 | ||
56 | // Intermediate functions A-F,Y,Z | |
57 | double A(double x); | |
58 | double B(double x); | |
59 | double C(double x); | |
60 | double D(double x); | |
61 | double E(double x); | |
62 | double F(double x); | |
63 | double Y(double x); | |
64 | double Z(double x); | |
65 | ||
66 | // Mode decay specific functions | |
67 | EvtComplex hzs(double z,double shat,double mu,double M_b); | |
68 | double fz(double z); | |
69 | double kappa(double z,double alpha_S); | |
70 | double etatilda(double shat,double alpha_S); | |
71 | double omega(double shat); | |
72 | EvtComplex C9efftilda(double z,double shat,double alpha_S,EvtComplex c1,EvtComplex c2,EvtComplex c3,EvtComplex c4,EvtComplex c5,EvtComplex c6,EvtComplex c9tilda,int ksi); | |
73 | EvtComplex C7b2sg(double alpha_S,double et,EvtComplex c2,double M_t,double M_W); | |
74 | EvtComplex Yld(double q2,double ki[],double Gi[],double Mi[],int ni,EvtComplex c1,EvtComplex c2,EvtComplex c3,EvtComplex c4,EvtComplex c5,EvtComplex c6,double ialpha); | |
75 | ||
76 | // User function | |
77 | void CalculateAllCoeficients(); | |
78 | // Set parameters | |
79 | void SetLambda(double lambda) { m_Lambda=lambda; } | |
80 | void CalculateLambda(double epsilon,int maxstep) { m_Lambda=Lambda(m_alphaMZ,m_n_f,m_mu,epsilon,maxstep); } | |
81 | void SetStrongCouplingAtZMass(double alphaMZ) { m_alphaMZ=alphaMZ; } | |
82 | void SetScale(double mu) { m_mu=mu; } | |
83 | void SetNumberOfFlavours(int n_f) { m_n_f=n_f; } | |
84 | void SetZMass(double M_Z) { m_M_Z=M_Z; } | |
85 | void SetWMass(double M_W) { m_M_W=M_W; } | |
86 | void SetTopMass(double M_t) { m_M_t=M_t; } | |
87 | void SetSin2WeinbergAngle(double sin2W) { m_sin2W=sin2W;} | |
88 | void SetInvElMagCoupling(double ialpha) { m_ialpha=ialpha; } | |
89 | void SetRenormalizationScheme(std::string scheme); | |
90 | // Get parameters | |
91 | double GetLambda() { return m_Lambda; } | |
92 | double GetStrongCouplingAtZMass() { return m_alphaMZ; } | |
93 | double GetStrongCouplingConst() { return m_alphaS; } | |
94 | double GetScale() { return m_mu; } | |
95 | int GetNumberOfFlavours() { return m_n_f; } | |
96 | int GetRenormSchemePar() { return m_ksi; } | |
97 | double GetZMass() { return m_M_Z; } | |
98 | double GetWMass() { return m_M_W; } | |
99 | double GetTopMass() { return m_M_t; } | |
100 | double GetSin2WeinbergAngle() { return m_sin2W;} | |
101 | double GetInvElMagCoupling() { return m_ialpha; } | |
102 | double GetEta() { return m_eta; } | |
103 | // Get results | |
104 | double GetA() { return m_A; } | |
105 | double GetB() { return m_B; } | |
106 | double GetC() { return m_C; } | |
107 | double GetD() { return m_D; } | |
108 | double GetE() { return m_E; } | |
109 | double GetF() { return m_F; } | |
110 | double GetY() { return m_Y; } | |
111 | double GetZ() { return m_Z; } | |
112 | EvtComplex GetC1() { return m_C1; } | |
113 | EvtComplex GetC2() { return m_C2; } | |
114 | EvtComplex GetC3() { return m_C3; } | |
115 | EvtComplex GetC4() { return m_C4; } | |
116 | EvtComplex GetC5() { return m_C5; } | |
117 | EvtComplex GetC6() { return m_C6; } | |
118 | EvtComplex GetC7() { return m_C7; } | |
119 | EvtComplex GetC8() { return m_C8; } | |
120 | EvtComplex GetC9() { return m_C9; } | |
121 | EvtComplex GetC10() { return m_C10; } | |
122 | EvtComplex GetC7eff0() { return m_C7eff0; } | |
123 | EvtComplex GetC8eff0() { return m_C8eff0; } | |
124 | EvtComplex GetC9tilda() { return m_C9tilda; } | |
125 | EvtComplex GetC10tilda() { return m_C10tilda; } | |
126 | EvtComplex GetP0() { return m_P0; } | |
127 | double GetPE() { return m_PE; } | |
128 | ||
129 | private: | |
130 | ||
131 | int m_n_f,m_ksi; | |
132 | double m_Lambda,m_alphaMZ,m_mu,m_M_Z,m_M_t,m_M_W,m_alphaS,m_eta,m_sin2W,m_ialpha; | |
133 | EvtComplex m_C1,m_C2,m_C3,m_C4,m_C5,m_C6,m_C7,m_C7eff0,m_C8,m_C8eff0,m_C9,m_C9tilda,m_C10,m_C10tilda,m_P0; | |
134 | double m_A,m_B,m_C,m_D,m_E,m_F,m_Y,m_Z,m_PE; | |
135 | ||
136 | double k[6][8],a[8],h[8],p[8],r[2][8],s[8],q[8],g[8]; | |
137 | ||
138 | }; | |
139 | ||
140 | #endif |