Fix bug in building local list of valid files.
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenModels / EvtWilsonCoefficients.hh
CommitLineData
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
0ca57c2f 5// Coefficient C8eff and C2 correction to C7eff taken from:
da0e9ce3 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
0ca57c2f 21class EvtWilsonCoefficients {
da0e9ce3 22
23public:
24
0ca57c2f 25 EvtWilsonCoefficients();
26 //~EvtWilsonCoefficients() {};
da0e9ce3 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
0ca57c2f 77 void CalculateAllCoefficients();
da0e9ce3 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
129private:
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