]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TEvtGen/EvtGenModels/EvtVubBLNP.hh
AliDecayer realisation for the EvtGen code and EvtGen itself.
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenModels / EvtVubBLNP.hh
1
2 //////////////////////////////////////////////////////////////////////
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 //
11 //////////////////////////////////////////////////////////////////
12
13
14 #ifndef EVTVUBBLNP_HH
15 #define EVTVUBBLNP_HH
16
17 #include <vector>
18 #include "EvtGenBase/EvtDecayIncoherent.hh"
19
20 class EvtParticle;
21
22 class EvtVubBLNP:public  EvtDecayIncoherent  {
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