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

Go to the documentation of this file.
00001 #include <iostream>
00002 #include "TFormFactor.h"
00003 #ifndef ALONE
00004 #  include "TRadGlobal.h"
00005 #endif
00006 #include "TConstants.h"
00007 
00008 TFormFactor::TFormFactor(){
00009   fsvsr = NULL;
00010   fsvsi = NULL;
00011   fNp   = 4000;
00012   fUnitFF = false;
00013 }
00014 
00015 TFormFactor::~TFormFactor(){
00016   if(fsvsr) delete fsvsr;
00017   if(fsvsr) delete fsvsi;
00018   //  std::cout<<"Deleting FormFactor"<<std::endl;
00019 }
00020 
00021 void TFormFactor::Init(){
00022 #ifndef ALONE
00023   double smax = gGlobal->Get_s();
00024 #else
00025   double smax = 4*800*800;
00026 #endif
00027   Init(smax);
00028 }
00029 
00030 void TFormFactor::Init(const double &smax){
00031   double *s     = new double[fNp];
00032   double *re_vs = new double[fNp];
00033   double *im_vs = new double[fNp];
00034   /*  
00035   for(int i = 1;i<=1;i++){
00036     double en = 500 + i;
00037     std::complex<double> form = ff(pow(2*en,2));
00038     std::cout<< en << " " << form<<" "<<std::abs(form*std::conj(form))<<std::endl;
00039   }
00040   exit(0);
00041   */
00042   double smin = gGlobal->Get_MF2()*gGlobal->Get_s();
00043   double ds = (smax-smin)/(fNp-1);
00044   for(unsigned int i=0; i<fNp; i++){
00045     s[i] = smin + i*ds;
00046     std::complex<double> vs = ff( (i>0) ? s[i] : smin + 0.01*ds);
00047     //    std::cout<<i<<" "<<s[i]<<" "<<vs<<std::endl;
00048     re_vs[i] = std::real(vs);
00049     im_vs[i] = std::imag(vs);
00050   }
00051 
00052   if(fsvsr) delete fsvsr;
00053   fsvsr = new TRadSpline3("vsr", s, re_vs, fNp);
00054 
00055   if(fsvsi) delete fsvsi;
00056   fsvsi = new TRadSpline3("vsi", s, im_vs, fNp);
00057 
00058   delete [] re_vs;
00059   delete [] im_vs;
00060   delete [] s;
00061 }
00062 
00063 void TFormFactor::Print(){
00064 #ifndef ALONE
00065   std::complex<double> form = Eval(gGlobal->Get_s());
00066 #else
00067   std::complex<double> form = Eval(4*200*200);
00068 #endif
00069   std::cout<<"Formfactor is "<<form<<std::endl;
00070   std::cout<<"Squared formfactor is "<<std::abs(form*std::conj(form))<<std::endl;
00071   std::cout<<std::flush;
00072 }

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