00001 #include "TKnFormFactor.h" 00002 #include "TRadGlobal.h" 00003 #ifdef K0 00004 #include "xsection.h" 00005 00006 xsection *fFK0 = NULL; 00007 00008 TKnFormFactor::TKnFormFactor():TFormFactor(){ 00009 // Neutral Kaon Formfactor 00010 fFK0 = new xsection(); 00011 fFK0->SetChannel(0); // Neutral kaons channel 00012 fFK0->SetITMvalue(0); // Integral test mode value - off 00013 fFK0->SetSpectraType(1); // full VDM rho-omega-phi 00014 fFK0->SetEMvalue(0); // must be zero 00015 fFK0->SetMatrix2Type(true); // form-factor only 00016 00017 #ifdef TEST 00018 cout<<"s="<<4*500*500<<"MeV^2, Fk2="<<fFK0->GetXS(4*500*500)<<endl; 00019 cout<<"s="<<gGlobal->Get_s()<<"MeV^2, Fk2="<<fFK0->GetXS(gGlobal->Get_s())<<endl; 00020 cout<<"s="<<1.01*gGlobal->Get_s()<<"MeV^2, Fk2="<<fFK0->GetXS(1.01*gGlobal->Get_s())<<endl; 00021 cout<<"s="<<1.1*gGlobal->Get_s()<<"MeV^2, Fk2="<<fFK0->GetXS(1.1*gGlobal->Get_s())<<endl; 00022 cout<<"s="<<1.5*gGlobal->Get_s()<<"MeV^2, Fk2="<<fFK0->GetXS(1.5*gGlobal->Get_s())<<endl; 00023 #endif 00024 Init(gGlobal->Get_s()); 00025 } 00026 00027 TKnFormFactor::~TKnFormFactor(){ 00028 if(fFK0) delete fFK0; 00029 } 00030 00031 std::complex<double> TKnFormFactor::ff(const double &s){ 00032 return std::complex<double>(sqrt(fFK0->GetXS(s)),0); 00033 } 00034 00035 #else 00036 00037 TKnFormFactor::TKnFormFactor():TFormFactor(){} 00038 00039 TKnFormFactor::~TKnFormFactor(){} 00040 00041 std::complex<double> TKnFormFactor::ff(const double &s){ 00042 return std::complex<double>(1,0); 00043 } 00044 00045 #endif