00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef EVTBTOXSGAMMAKAGAN_HH
00024 #define EVTBTOXSGAMMAKAGAN_HH
00025
00026 #include <vector>
00027 #include "EvtGenModels/EvtBtoXsgammaAbsModel.hh"
00028
00029 class EvtBtoXsgammaKagan : public EvtBtoXsgammaAbsModel {
00030
00031 public:
00032
00033 EvtBtoXsgammaKagan() {}
00034
00035 virtual ~EvtBtoXsgammaKagan();
00036
00037 void init(int, double*);
00038
00039 void computeHadronicMass(int, double*);
00040
00041 void getDefaultHadronicMass();
00042
00043 double GetMass(int code);
00044
00045 double CalcAlphaS(double);
00046
00047 void CalcWilsonCoeffs();
00048 void CalcDelta();
00049 double Fz(double);
00050
00051 private:
00052
00053
00054 double _mb;
00055 double _mB;
00056 double _delta;
00057 double _nIntervalS;
00058 double _nIntervalmH;
00059 double _lambdabar;
00060 double _lam1;
00061 double _mHmin;
00062 double _mHmax;
00063
00064 double _r7;
00065 double _gam77;
00066 double _gam27;
00067 double _gam87;
00068 double _beta0;
00069 double _beta1;
00070 double _alphasmZ;
00071 double _mZ;
00072 double _z;
00073 double _fz;
00074 double _lam2;
00075 double _kappabar;
00076 double _rer2;
00077 double _rer8;
00078 double _kSLemmu;
00079 double _mW;
00080 double _mt;
00081 double _ms;
00082 double _mu;
00083
00084 double _c2mu;
00085 double _c70mu;
00086 double _c80mu;
00087 double _c71mu;
00088 double _c7emmu;
00089
00090 double _cDeltatot;
00091
00092 double _alpha;
00093 double _alphasmW;
00094 double _alphasmt;
00095 double _alphasmu;
00096 double _alphasmubar;
00097 double _etamu;
00098
00099 std::vector<double> _mHVect;
00100
00101 static double ReG(double);
00102 static double ImG(double);
00103 static double s77(double);
00104 static double s88(double, double, double);
00105 static double s78(double);
00106 static double s22Func(double var, const std::vector<double> &coeffs);
00107 static double s27Func(double var, const std::vector<double> &coeffs);
00108
00109 static double Delta(double, double);
00110 static double DeltaFermiFunc(double, const std::vector<double> &coeffs1, const std::vector<double> &coeffs2, const std::vector<double> &coeffs3);
00111 static double s77FermiFunc(double, const std::vector<double> &coeffs1, const std::vector<double> &coeffs2);
00112 static double s88FermiFunc(double, const std::vector<double> &coeffs1, const std::vector<double> &coeffs2, const std::vector<double> &coeffs3);
00113 static double s78FermiFunc(double, const std::vector<double> &coeffs1, const std::vector<double> &coeffs2);
00114 static double s22FermiFunc(double, std::vector<double> &coeffs);
00115 static double s27FermiFunc(double, std::vector<double> &coeffs);
00116 static double s28FermiFunc(double, std::vector<double> &coeffs);
00117 static double GetArrayVal(double, double, double, double, std::vector<double>);
00118 static double sFermiFunc(double, const std::vector<double> &coeffs1, const std::vector<double> &coeffs2,
00119 const std::vector<double> &coeffs3, const std::vector<double> &coeffs4);
00120 static double FermiFunc(double, const std::vector<double> &coeffs);
00121 static double diLogFunc(double);
00122 static double diLogMathematica(double);
00123 double *massHad; double *brHad;
00124 static double intervalMH;
00125 static bool bbprod;
00126 };
00127
00128 #endif
00129
00130
00131