00001 #ifndef RAD_TFormFactor 00002 #define RAD_TFormFactor 00003 00004 #include <complex> 00005 #include "TRadSpline.h" 00006 00007 class TFormFactor{ 00008 protected: 00009 unsigned int fNp; 00010 TRadSpline *fsvsr; 00011 TRadSpline *fsvsi; 00012 bool fUnitFF; 00013 virtual std::complex<double> ff(const double &)=0; 00014 public: 00015 TFormFactor(); 00016 virtual ~TFormFactor(); 00017 void SetUnitFF(){fUnitFF = true;} 00018 void SetDefaultFF(){fUnitFF = false;} 00019 bool GetFFMode(){return fUnitFF;} 00020 void SetNpoints(const unsigned int &i){fNp = i;} 00021 void Init(); 00022 void Init(const double&); 00023 inline std::complex <double> Eval(const double &s){ 00024 if(fUnitFF) return std::complex<double>(1,0); 00025 return std::complex<double>(fsvsr->Eval(s),fsvsi->Eval(s)); 00026 } 00027 void Print(); 00028 }; 00029 00030 #endif // #ifndef RAD_TFormFactor