LCOV - code coverage report
Current view: top level - TEvtGen/EvtGen/EvtGenModels - EvtWilsonCoefficients.hh (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 12 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 12 0.0 %

          Line data    Source code
       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             : 
      21             : class EvtWilsonCoefficients {
      22             : 
      23             : public:
      24             : 
      25             :   EvtWilsonCoefficients();
      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           0 :   double GetStrongCouplingConst() { return m_alphaS; }
      94             :   double GetScale() { return m_mu; }
      95             :   int GetNumberOfFlavours() { return m_n_f; }
      96           0 :   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           0 :   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           0 :   EvtComplex GetC1() { return m_C1; }
     113           0 :   EvtComplex GetC2() { return m_C2; }
     114           0 :   EvtComplex GetC3() { return m_C3; }
     115           0 :   EvtComplex GetC4() { return m_C4; }
     116           0 :   EvtComplex GetC5() { return m_C5; }
     117           0 :   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           0 :   EvtComplex GetC7eff0() { return m_C7eff0; }
     123             :   EvtComplex GetC8eff0() { return m_C8eff0; }
     124           0 :   EvtComplex GetC9tilda() { return m_C9tilda; }
     125           0 :   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

Generated by: LCOV version 1.11