TFormFactor Class Reference

#include <TFormFactor.h>

Inheritance diagram for TFormFactor:

TKcFormFactor TKnFormFactor TPiFormFactor List of all members.

Public Member Functions

 TFormFactor ()
virtual ~TFormFactor ()
void SetUnitFF ()
void SetDefaultFF ()
bool GetFFMode ()
void SetNpoints (const unsigned int &i)
void Init ()
void Init (const double &)
std::complex< double > Eval (const double &s)
void Print ()

Protected Member Functions

virtual std::complex< double > ff (const double &)=0

Protected Attributes

unsigned int fNp
TRadSplinefsvsr
TRadSplinefsvsi
bool fUnitFF

Detailed Description

Definition at line 7 of file TFormFactor.h.


Constructor & Destructor Documentation

TFormFactor::TFormFactor (  ) 

Definition at line 8 of file TFormFactor.C.

References fNp, fsvsi, fsvsr, and fUnitFF.

00008                         {
00009   fsvsr = NULL;
00010   fsvsi = NULL;
00011   fNp   = 4000;
00012   fUnitFF = false;
00013 }

TFormFactor::~TFormFactor (  )  [virtual]

Definition at line 15 of file TFormFactor.C.

References fsvsi, and fsvsr.

00015                          {
00016   if(fsvsr) delete fsvsr;
00017   if(fsvsr) delete fsvsi;
00018   //  std::cout<<"Deleting FormFactor"<<std::endl;
00019 }


Member Function Documentation

std::complex<double> TFormFactor::Eval ( const double &  s  )  [inline]

Definition at line 23 of file TFormFactor.h.

References TRadSpline::Eval(), fsvsi, fsvsr, and fUnitFF.

Referenced by TPiCrossPart::BornShift(), isr(), main(), Print(), TPiCrossPart::R_Gamma(), TPiCrossPart::R_Gamma_kuraev_eidelman(), and TPiCrossPart::R_Gamma_t().

00023                                                   {
00024     if(fUnitFF) return std::complex<double>(1,0);
00025     return std::complex<double>(fsvsr->Eval(s),fsvsi->Eval(s));
00026   }

virtual std::complex<double> TFormFactor::ff ( const double &   )  [protected, pure virtual]

Implemented in TKcFormFactor, TKnFormFactor, and TPiFormFactor.

Referenced by Init().

bool TFormFactor::GetFFMode (  )  [inline]

Definition at line 19 of file TFormFactor.h.

References fUnitFF.

00019 {return fUnitFF;}

void TFormFactor::Init ( const double &   ) 

Definition at line 30 of file TFormFactor.C.

References ff(), fNp, fsvsi, fsvsr, TRadGlobal::Get_MF2(), TRadGlobal::Get_s(), gGlobal, genRecEmupikp::i, imag(), and s.

00030                                         {
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 }

void TFormFactor::Init (  ) 

Definition at line 21 of file TFormFactor.C.

References TRadGlobal::Get_s(), and gGlobal.

Referenced by TPiCrossPart::Init(), and main().

00021                       {
00022 #ifndef ALONE
00023   double smax = gGlobal->Get_s();
00024 #else
00025   double smax = 4*800*800;
00026 #endif
00027   Init(smax);
00028 }

void TFormFactor::Print (  ) 

Definition at line 63 of file TFormFactor.C.

References abs, conj(), Eval(), TRadGlobal::Get_s(), and gGlobal.

00063                        {
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 }

void TFormFactor::SetDefaultFF (  )  [inline]

Definition at line 18 of file TFormFactor.h.

References fUnitFF.

Referenced by TPiCrossPart::Init().

00018 {fUnitFF = false;}

void TFormFactor::SetNpoints ( const unsigned int &  i  )  [inline]

Definition at line 20 of file TFormFactor.h.

References fNp.

00020 {fNp = i;}

void TFormFactor::SetUnitFF (  )  [inline]

Definition at line 17 of file TFormFactor.h.

References fUnitFF.

Referenced by TPiCrossPart::Init(), and main().

00017 {fUnitFF = true;}


Member Data Documentation

unsigned int TFormFactor::fNp [protected]

Definition at line 9 of file TFormFactor.h.

Referenced by Init(), SetNpoints(), and TFormFactor().

TRadSpline* TFormFactor::fsvsi [protected]

Definition at line 11 of file TFormFactor.h.

Referenced by Eval(), Init(), TFormFactor(), and ~TFormFactor().

TRadSpline* TFormFactor::fsvsr [protected]

Definition at line 10 of file TFormFactor.h.

Referenced by Eval(), Init(), TFormFactor(), and ~TFormFactor().

bool TFormFactor::fUnitFF [protected]

Definition at line 12 of file TFormFactor.h.

Referenced by Eval(), GetFFMode(), SetDefaultFF(), SetUnitFF(), and TFormFactor().


Generated on Tue Nov 29 23:36:00 2016 for BOSS_7.0.2 by  doxygen 1.4.7