/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Generator/Mcgpj/Mcgpj-00-01-04/src/code/src/TKFun.C

Go to the documentation of this file.
00001 #include <cmath>
00002 #include "TKFun.h"
00003 #include "TGlobal.h"
00004 #include "TConstants.h"
00005 
00006 TKFun *kjr = NULL;
00007 
00008 double TKFun::kfun(const double &co){
00009   double sa  = sqrt((1.-co)*0.5);
00010   double sa2 = sa*sa;
00011   double ca  = sqrt((1.+co)*0.5);
00012   double ca2 = ca*ca;
00013   double c1  = log(sa);
00014   double c2  = log(ca);
00015   double co2 = co*co;
00016   double co3 = co2*co;
00017   double co4 = co2*co2;
00018   double k = -1. + 2.*TLi2::Eval(ca2) - 2.*TLi2::Eval(sa2)+ 
00019     (gConst->Pi2()/3.*(2.*co4 - 3.*co3 - 15.*co) + 
00020      2*(2*co4 - 3*co3 + 9*co2 + 3*co + 21.)*(c1*c1) -
00021      4.*(co4 + co2 - 2.*co)*c2*c2 - 
00022      4.*(co3 + 4.*co2 + 5.*co + 6.)*(c1-c2)*(c1-c2) +
00023      2.*(co3 - 3.*co2 + 7.*co - 5.)*c2 +
00024      2.*(3.*co3 + 9.*co2 + 5.*co + 31.)*c1)/((3.+co2)*(3.+co2));
00025   return k;
00026 };
00027 
00028 double tkfun(double *x){
00029   return kjr->kfun(*x);
00030 }
00031 /*
00032 double tkfun(double *x, double *p){
00033   return kjr->kfun(*x);
00034 }
00035 */
00036 TKFun::TKFun(){
00037   fk = NULL;
00038   kjr = this;
00039   Init(gGlobal->Get_ThetaMin());
00040 }
00041 
00042 void TKFun::Init(){
00043   Init(gGlobal->Get_ThetaMin());
00044 }
00045 
00046 void TKFun::Init(const double &theta){
00047   fxmin = -cos(theta);
00048   fxmax = cos(theta);
00049   //  TF1 fkfun("kfun",tkfun,fxmin,fxmax,0);
00050   if(fk)delete fk;
00051   fk    = new TRadSpline3("k", fxmin, fxmax, tkfun, 10001);
00052 }
00053 
00054 TKFun::TKFun(const double &theta){
00055   fk = NULL;
00056   kjr = this;
00057   Init(theta);
00058 }
00059 
00060 TKFun::~TKFun(){
00061   delete fk;
00062 }
00063 

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