StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
EvtVubBLNP.hh
1 
3 //
4 // Module: EvtVubBLNP.hh
5 //
6 // Description: Modeled on Riccardo Faccini's EvtVubNLO module
7 // author: sheila date: October 2005
8 //
9 // tripleDiff from BLNP's notebook, based on hep-ph/0504071
10 //
12 
13 
14 #ifndef EVTVUBBLNP_HH
15 #define EVTVUBBLNP_HH
16 
17 #include <vector>
18 #include "EvtGenBase/EvtDecayIncoherent.hh"
19 
20 class EvtParticle;
21 
23 
24 public:
25 
26  EvtVubBLNP() {}
27  virtual ~EvtVubBLNP();
28 
29  std::string getName();
30 
31  EvtDecayBase* clone();
32 
33  void initProbMax();
34 
35  void init();
36 
37  void decay(EvtParticle *Bmeson);
38 
39 private:
40 
41  // Input parameters
42  double mBB;
43  double lambda2;
44 
45  // Shape function parameters
46  double b;
47  double Lambda;
48  double Ecut;
49  double wzero;
50 
51  // SF and SSF modes
52  int itype;
53  double dtype;
54  int isubl;
55 
56  // flags
57  int flag1;
58  int flag2;
59  int flag3;
60 
61  // Quark mass
62  double mb;
63 
64  // Matching scales
65  double muh;
66  double mui;
67  double mubar;
68 
69  // Perturbative quantities
70  double CF;
71  double CA;
72 
73  double beta0;
74  double beta1;
75  double beta2;
76 
77  double zeta3;
78 
79  double Gamma0;
80  double Gamma1;
81  double Gamma2;
82 
83  double gp0;
84  double gp1;
85 
86  double Lbar;
87  double mupisq;
88  double moment2;
89 
90  int flagpower;
91  int flag2loop;
92 
93  int maxLoop;
94  double precision;
95 
96  std::vector<double> gvars;
97 
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);
115  double wS(double w);
116  double t(double w);
117  double u(double w);
118  double v(double w);
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;
139 };
140 
141 #endif
142