2 //////////////////////////////////////////////////////////////////////
4 // Module: EvtVubBLNP.hh
6 // Description: Modeled on Riccardo Faccini's EvtVubNLO module
7 // author: sheila date: October 2005
9 // tripleDiff from BLNP's notebook, based on hep-ph/0504071
11 //////////////////////////////////////////////////////////////////
18 #include "EvtGenBase/EvtDecayIncoherent.hh"
22 class EvtVubBLNP:public EvtDecayIncoherent {
27 virtual ~EvtVubBLNP();
29 std::string getName();
31 EvtDecayBase* clone();
37 void decay(EvtParticle *Bmeson);
45 // Shape function parameters
69 // Perturbative quantities
96 std::vector<double> gvars;
98 double rate3(double Pp, double Pl, double Pm);
99 double F1(double Pp, double Pm, double muh, double mui, double mubar, double doneJS, double done1);
100 double F2(double Pp, double Pm, double muh, double mui, double mubar, double done3);
101 double F3(double Pp, double Pm, double muh, double mui, double mubar, double done2);
102 double DoneJS(double Pp, double Pm, double mui);
103 double Done1(double Pp, double Pm, double mui);
104 double Done2(double Pp, double Pm, double mui);
105 double Done3(double Pp, double Pm, double mui);
106 static double IntJS(double what, const std::vector<double> &vars);
107 static double Int1(double what, const std::vector<double> &vars);
108 static double Int2(double what, const std::vector<double> &vars);
109 static double Int3(double what, const std::vector<double> &vars);
110 static double g1(double w, const std::vector<double> &vars);
111 static double g2(double w, const std::vector<double> &vars);
112 static double g3(double w, const std::vector<double> &vars);
113 static double Shat(double w, const std::vector<double> &vars);
114 static double Mzero(double muf, double mu, double mupisq, const std::vector<double> &vars);
119 double myfunction(double w, double Lbar, double mom2);
120 double myfunctionBIK(double w, double Lbar, double mom2);
121 double dU1nlo(double muh, double mui);
122 double U1lo(double muh, double mui);
123 double Sfun(double mu1, double mu2, double epsilon);
124 double S0(double a1, double r);
125 double S1(double a1, double r);
126 double S2(double a1, double r);
127 double aGamma(double mu1, double mu2, double epsilon);
128 double agp(double mu1, double mu2, double epsilon);
129 double alo(double muh, double mui);
130 double anlo(double muh, double mui); // d/depsilon of aGamma
131 static double alphas(double mu, const std::vector<double> &vars);
132 double PolyLog(double v, double z);
133 static double Gamma(double z);
134 static double Gamma(double a, double x);
135 static double gamser(double a, double x, double LogGamma);
136 static double gammcf(double a, double x, double LogGamma);
137 double findBLNPWhat();
138 std::vector<double> _pf;