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

Go to the documentation of this file.
00001 #ifndef RAD_TDFun
00002 #define RAD_TDFun
00003 
00004 #include <cmath>
00005 #include "TRadSpline.h"
00006 
00007 class TDFun{
00008 protected:
00009   double fxmin;
00010   double fxmax;
00011   double fD0;
00012   double fb2;
00013   TRadSpline3 *fd;
00014 public:
00015   TDFun();
00016   TDFun(const double&, const double&);
00017   ~TDFun();
00018   void Init();
00019   void Init(const double&, const double&);
00020 
00021   inline double EvalSpline(const double &z){return fd->Eval(z);}
00022 
00023   inline double Eval(const double &z){  
00024     double x = 1 - z;
00025     //    double D = fb2*pow(x,fb2-1)*fD0 - 0.5*fb2*(1+z) - 
00026     //      fb2*fb2/8*(4*(1+z)*log(x)+(1+3*z*z)/x*log(z)+5+z);
00027     double D = fb2*pow(x,fb2-1)*fD0 - 0.5*fb2*(1+z) - 
00028       fb2*fb2/8*(4*(1+z)*log(x)+(1+3*z*z)/x*log1p(-x)+5+z);
00029     return D;
00030   }
00031 
00032   inline double Eval(const double &z, const double &b2, const double &D0){
00033     double x = 1 - z;
00034     //    double D = b2*pow(x,b2-1)*D0 - 0.5*b2*(1+z) - 
00035     //      b2*b2/8*(4*(1+z)*log(x)+(1+3*z*z)/x*log(z)+5+z);
00036     double D = b2*pow(x,b2-1)*D0 - 0.5*b2*(1+z) - 
00037       b2*b2/8*(4*(1+z)*log(x)+(1+3*z*z)/x*log1p(-x)+5+z);
00038     return D;
00039   }
00040 
00041   inline double EvalSoft(const double &x){
00042     double z  = 1 - x;
00043     double lx = log(x);
00044     double t1 = exp(-fb2*lx);
00045     double t2 = t1*x;
00046     //    double D  = fD0 - t2*(0.5*(1+z) + fb2/8*( 4*(1+z)*lx + 4 + (1+z))) - 
00047     //      fb2/8*t1*(1+3*z*z)*log(z);
00048     double D  = fD0 - t2*(0.5*(1+z) + fb2/8*( 4*(1+z)*lx + 4 + (1+z))) - 
00049       fb2/8*t1*(1+3*z*z)*log1p(-x);
00050     return D;
00051   }
00052 
00053   inline double EvalSoft(const double &x, const double &b2, const double &D0){
00054     double z  = 1 - x;
00055     double lx = log(x);
00056     double t1 = exp(-b2*lx);
00057     double t2 = t1*x;
00058     //    double D  = D0 - t2*(0.5*(1+z) + b2/8*( 4*(1+z)*lx + 4 + (1+z))) - 
00059     //      b2/8*t1*(1+3*z*z)*log(z);
00060     double D  = D0 - t2*(0.5*(1+z) + b2/8*( 4*(1+z)*lx + 4 + (1+z))) - 
00061       b2/8*t1*(1+3*z*z)*log1p(-x);
00062     return D;
00063   }
00064 
00065 };
00066 
00067 #endif //#ifndef RAD_TDFun

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