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

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

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