/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Generator/Mcgpj/Mcgpj-00-01-04/src/code3pi/inc/TDFun_o.h

Go to the documentation of this file.
00001 #ifndef RAD_TDFun_o
00002 #define RAD_TDFun_o
00003 
00004 #include <cmath>
00005 #include "TConstant.h"
00006 namespace rb{
00007 class TDFun{
00008 protected:
00009   double fD0;
00010   double fiD0;
00011   double fb2;
00012   double fib2;
00013 public:
00014   TDFun();
00015 
00016   TDFun(const double& E){
00017     double L    = 2.*log(2.*E/me);
00018     double fBeta = 2.*alpha/M_PI*(L-1.);
00019     fb2  = fBeta/2;
00020     fib2 = 1/fb2;
00021     //  fD0   = 1.+3./8.*fBeta-fBeta*fBeta/48.*(gConst->Pi2() + fL/3. - 47./8.);
00022     fD0  = 1.+3./8.*fBeta+fBeta*fBeta/16.*(9./8. - M_PI*M_PI/3);
00023     fiD0 = 1/fD0;
00024   }
00025 
00026   ~TDFun(){};
00027 
00028   inline double GetD0() const { return fD0;};
00029   inline double GetiD0() const { return fiD0;};
00030   inline double GetBeta2() const { return fb2;};
00031   inline double GetiBeta2() const { return fib2;};
00032 
00033   inline double Eval(const double &z){  
00034     double x = 1 - z;
00035     //    double D = fb2*pow(x,fb2-1)*fD0 - 0.5*fb2*(1+z) - 
00036     //      fb2*fb2/8*(4*(1+z)*log(x)+(1+3*z*z)/x*log(z)+5+z);
00037     double D = fb2*pow(x,fb2-1)*fD0 - 0.5*fb2*(1+z) - 
00038       fb2*fb2/8*(4*(1+z)*log(x)+(1+3*z*z)/x*log1p(-x)+5+z);
00039     return D;
00040   }
00041 
00042   inline double Eval(const double &z, const double &b2, const double &D0){
00043     double x = 1 - z;
00044     //    double D = b2*pow(x,b2-1)*D0 - 0.5*b2*(1+z) - 
00045     //      b2*b2/8*(4*(1+z)*log(x)+(1+3*z*z)/x*log(z)+5+z);
00046     double D = b2*pow(x,b2-1)*D0 - 0.5*b2*(1+z) - 
00047       b2*b2/8*(4*(1+z)*log(x)+(1+3*z*z)/x*log1p(-x)+5+z);
00048     return D;
00049   }
00050 
00051   inline double EvalSoft(const double &x){
00052     double z  = 1 - x;
00053     double lx = log(x);
00054     double t1 = exp(-fb2*lx);
00055     double t2 = t1*x;
00056     //    double D  = fD0 - t2*(0.5*(1+z) + fb2/8*( 4*(1+z)*lx + 4 + (1+z))) - 
00057     //      fb2/8*t1*(1+3*z*z)*log(z);
00058     double D  = fD0 - t2*(0.5*(1+z) + fb2/8*( 4*(1+z)*lx + 4 + (1+z))) - 
00059       fb2/8*t1*(1+3*z*z)*log1p(-x);
00060     return D;
00061   }
00062 
00063   inline double EvalSoft(const double &x, const double &b2, const double &D0){
00064     double z  = 1 - x;
00065     double lx = log(x);
00066     double t1 = exp(-b2*lx);
00067     double t2 = t1*x;
00068     //    double D  = D0 - t2*(0.5*(1+z) + b2/8*( 4*(1+z)*lx + 4 + (1+z))) - 
00069     //      b2/8*t1*(1+3*z*z)*log(z);
00070     double D  = D0 - t2*(0.5*(1+z) + b2/8*( 4*(1+z)*lx + 4 + (1+z))) - 
00071       b2/8*t1*(1+3*z*z)*log1p(-x);
00072     return D;
00073   }
00074 
00075 };
00076 }
00077 
00078 #endif //#ifndef RAD_TDFun

Generated on Tue Nov 29 23:12:42 2016 for BOSS_7.0.2 by  doxygen 1.4.7