StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
EvtWilsonCoefficients.hh
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 // Coefficient 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 
22 
23 public:
24 
26  //~EvtWilsonCoefficients() {};
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 CalculateAllCoefficients();
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