BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
TDFun.h
Go to the documentation of this file.
1#ifndef RAD_TDFun
2#define RAD_TDFun
3
4#include "TRadSpline.h"
5#include <cmath>
6
7class TDFun {
8protected:
9 double fxmin;
10 double fxmax;
11 double fD0;
12 double fb2;
14
15public:
17 TDFun( const double&, const double& );
19 void Init();
20 void Init( const double&, const double& );
21
22 inline double EvalSpline( const double& z ) { return fd->Eval( z ); }
23
24 inline double Eval( const double& z ) {
25 double x = 1 - z;
26 // double D = fb2*pow(x,fb2-1)*fD0 - 0.5*fb2*(1+z) -
27 // fb2*fb2/8*(4*(1+z)*log(x)+(1+3*z*z)/x*log(z)+5+z);
28 double D = fb2 * pow( x, fb2 - 1 ) * fD0 - 0.5 * fb2 * ( 1 + z ) -
29 fb2 * fb2 / 8 *
30 ( 4 * ( 1 + z ) * log( x ) + ( 1 + 3 * z * z ) / x * log1p( -x ) + 5 + z );
31 return D;
32 }
33
34 inline double Eval( const double& z, const double& b2, const double& D0 ) {
35 double x = 1 - z;
36 // double D = b2*pow(x,b2-1)*D0 - 0.5*b2*(1+z) -
37 // b2*b2/8*(4*(1+z)*log(x)+(1+3*z*z)/x*log(z)+5+z);
38 double D = b2 * pow( x, b2 - 1 ) * D0 - 0.5 * b2 * ( 1 + z ) -
39 b2 * b2 / 8 *
40 ( 4 * ( 1 + z ) * log( x ) + ( 1 + 3 * z * z ) / x * log1p( -x ) + 5 + z );
41 return D;
42 }
43
44 inline double EvalSoft( const double& x ) {
45 double z = 1 - x;
46 double lx = log( x );
47 double t1 = exp( -fb2 * lx );
48 double t2 = t1 * x;
49 // double D = fD0 - t2*(0.5*(1+z) + fb2/8*( 4*(1+z)*lx + 4 + (1+z))) -
50 // fb2/8*t1*(1+3*z*z)*log(z);
51 double D = fD0 -
52 t2 * ( 0.5 * ( 1 + z ) + fb2 / 8 * ( 4 * ( 1 + z ) * lx + 4 + ( 1 + z ) ) ) -
53 fb2 / 8 * t1 * ( 1 + 3 * z * z ) * log1p( -x );
54 return D;
55 }
56
57 inline double EvalSoft( const double& x, const double& b2, const double& D0 ) {
58 double z = 1 - x;
59 double lx = log( x );
60 double t1 = exp( -b2 * lx );
61 double t2 = t1 * x;
62 // double D = D0 - t2*(0.5*(1+z) + b2/8*( 4*(1+z)*lx + 4 + (1+z))) -
63 // b2/8*t1*(1+3*z*z)*log(z);
64 double D = D0 -
65 t2 * ( 0.5 * ( 1 + z ) + b2 / 8 * ( 4 * ( 1 + z ) * lx + 4 + ( 1 + z ) ) ) -
66 b2 / 8 * t1 * ( 1 + 3 * z * z ) * log1p( -x );
67 return D;
68 }
69};
70
71#endif // #ifndef RAD_TDFun
EvtComplex exp(const EvtComplex &c)
double Eval(const double &z, const double &b2, const double &D0)
Definition TDFun.h:34
TRadSpline3 * fd
Definition TDFun.h:13
double EvalSoft(const double &x)
Definition TDFun.h:44
double EvalSoft(const double &x, const double &b2, const double &D0)
Definition TDFun.h:57
TDFun(const double &, const double &)
double EvalSpline(const double &z)
Definition TDFun.h:22
double fxmax
Definition TDFun.h:10
double fxmin
Definition TDFun.h:9
double fb2
Definition TDFun.h:12
double fD0
Definition TDFun.h:11
void Init(const double &, const double &)
void Init()
double Eval(const double &z)
Definition TDFun.h:24