BOSS 7.0.8
BESIII Offline Software System
Loading...
Searching...
No Matches
TDFun_o.h
Go to the documentation of this file.
1#ifndef RAD_TDFun_o
2#define RAD_TDFun_o
3
4#include <cmath>
5#include "TConstant.h"
6namespace rb{
7class TDFun{
8protected:
9 double fD0;
10 double fiD0;
11 double fb2;
12 double fib2;
13public:
15
16 TDFun(const double& E){
17 double L = 2.*log(2.*E/me);
18 double fBeta = 2.*alpha/M_PI*(L-1.);
19 fb2 = fBeta/2;
20 fib2 = 1/fb2;
21 // fD0 = 1.+3./8.*fBeta-fBeta*fBeta/48.*(gConst->Pi2() + fL/3. - 47./8.);
22 fD0 = 1.+3./8.*fBeta+fBeta*fBeta/16.*(9./8. - M_PI*M_PI/3);
23 fiD0 = 1/fD0;
24 }
25
26 ~TDFun(){};
27
28 inline double GetD0() const { return fD0;};
29 inline double GetiD0() const { return fiD0;};
30 inline double GetBeta2() const { return fb2;};
31 inline double GetiBeta2() const { return fib2;};
32
33 inline double Eval(const double &z){
34 double x = 1 - z;
35 // double D = fb2*pow(x,fb2-1)*fD0 - 0.5*fb2*(1+z) -
36 // fb2*fb2/8*(4*(1+z)*log(x)+(1+3*z*z)/x*log(z)+5+z);
37 double D = fb2*pow(x,fb2-1)*fD0 - 0.5*fb2*(1+z) -
38 fb2*fb2/8*(4*(1+z)*log(x)+(1+3*z*z)/x*log1p(-x)+5+z);
39 return D;
40 }
41
42 inline double Eval(const double &z, const double &b2, const double &D0){
43 double x = 1 - z;
44 // double D = b2*pow(x,b2-1)*D0 - 0.5*b2*(1+z) -
45 // b2*b2/8*(4*(1+z)*log(x)+(1+3*z*z)/x*log(z)+5+z);
46 double D = b2*pow(x,b2-1)*D0 - 0.5*b2*(1+z) -
47 b2*b2/8*(4*(1+z)*log(x)+(1+3*z*z)/x*log1p(-x)+5+z);
48 return D;
49 }
50
51 inline double EvalSoft(const double &x){
52 double z = 1 - x;
53 double lx = log(x);
54 double t1 = exp(-fb2*lx);
55 double t2 = t1*x;
56 // double D = fD0 - t2*(0.5*(1+z) + fb2/8*( 4*(1+z)*lx + 4 + (1+z))) -
57 // fb2/8*t1*(1+3*z*z)*log(z);
58 double D = fD0 - t2*(0.5*(1+z) + fb2/8*( 4*(1+z)*lx + 4 + (1+z))) -
59 fb2/8*t1*(1+3*z*z)*log1p(-x);
60 return D;
61 }
62
63 inline double EvalSoft(const double &x, const double &b2, const double &D0){
64 double z = 1 - x;
65 double lx = log(x);
66 double t1 = exp(-b2*lx);
67 double t2 = t1*x;
68 // double D = D0 - t2*(0.5*(1+z) + b2/8*( 4*(1+z)*lx + 4 + (1+z))) -
69 // b2/8*t1*(1+3*z*z)*log(z);
70 double D = D0 - t2*(0.5*(1+z) + b2/8*( 4*(1+z)*lx + 4 + (1+z))) -
71 b2/8*t1*(1+3*z*z)*log1p(-x);
72 return D;
73 }
74
75};
76}
77
78#endif //#ifndef RAD_TDFun
Double_t x[10]
EvtComplex exp(const EvtComplex &c)
Definition: EvtComplex.hh:252
#define M_PI
Definition: TConstant.h:4
double fb2
Definition: TDFun_o.h:11
double Eval(const double &z, const double &b2, const double &D0)
Definition: TDFun_o.h:42
double fiD0
Definition: TDFun_o.h:10
double EvalSoft(const double &x)
Definition: TDFun_o.h:51
double GetBeta2() const
Definition: TDFun_o.h:30
double GetiD0() const
Definition: TDFun_o.h:29
TDFun(const double &E)
Definition: TDFun_o.h:16
double fib2
Definition: TDFun_o.h:12
double GetD0() const
Definition: TDFun_o.h:28
double EvalSoft(const double &x, const double &b2, const double &D0)
Definition: TDFun_o.h:63
~TDFun()
Definition: TDFun_o.h:26
double Eval(const double &z)
Definition: TDFun_o.h:33
double GetiBeta2() const
Definition: TDFun_o.h:31
double fD0
Definition: TDFun_o.h:9
Definition: TConstant.h:3
const double me
Definition: TConstant.h:5
const double alpha
Definition: TConstant.h:40