RooGounarisSakurai Class Reference

#include <RooGounarisSakurai.hh>

List of all members.

Public Member Functions

 RooGounarisSakurai (const char *name, const char *title, RooAbsReal &_x, RooAbsReal &_mean, RooAbsReal &_width, RooAbsReal &_spin, RooAbsReal &_radius, RooAbsReal &_mass_a, RooAbsReal &_mass_b)
 RooGounarisSakurai (const RooGounarisSakurai &other, const char *name=0)
virtual TObject * clone (const char *newname) const
virtual ~RooGounarisSakurai ()

Protected Member Functions

Double_t evaluate () const

Protected Attributes

RooRealProxy x
RooRealProxy mean
RooRealProxy width
RooRealProxy spin
RooRealProxy radius
RooRealProxy mass_a
RooRealProxy mass_b

Private Member Functions

Double_t Gamma () const
Double_t KFunction (Double_t X) const
Double_t FFunction (Double_t X) const
Double_t dFunction () const
Double_t hFunction (Double_t X) const
Double_t dhds () const
Double_t fFunction (Double_t X) const


Detailed Description

Definition at line 16 of file RooGounarisSakurai.hh.


Constructor & Destructor Documentation

RooGounarisSakurai::RooGounarisSakurai ( const char *  name,
const char *  title,
RooAbsReal &  _x,
RooAbsReal &  _mean,
RooAbsReal &  _width,
RooAbsReal &  _spin,
RooAbsReal &  _radius,
RooAbsReal &  _mass_a,
RooAbsReal &  _mass_b 
)

Referenced by clone().

RooGounarisSakurai::RooGounarisSakurai ( const RooGounarisSakurai other,
const char *  name = 0 
)

Definition at line 48 of file RooGounarisSakurai.cc.

00049                                                          : 
00050   RooAbsPdf(other,name), 
00051   x("x",this,other.x), 
00052   mean("mean",this,other.mean),
00053   width("width",this,other.width),
00054   spin("spin", this, other.spin), 
00055   radius("radius", this, other.radius), 
00056   mass_a("mass_a", this, other.mass_a), 
00057   mass_b("mass_b", this, other.mass_b) 
00058 {
00059 }

virtual RooGounarisSakurai::~RooGounarisSakurai (  )  [inline, virtual]

Definition at line 33 of file RooGounarisSakurai.hh.

00033 { }


Member Function Documentation

virtual TObject* RooGounarisSakurai::clone ( const char *  newname  )  const [inline, virtual]

Definition at line 30 of file RooGounarisSakurai.hh.

References RooGounarisSakurai().

00030                                                     { 
00031     return new RooGounarisSakurai(*this,newname); 
00032   }

Double_t RooGounarisSakurai::dFunction (  )  const [private]

Definition at line 169 of file RooGounarisSakurai.cc.

References KFunction(), mass_a, mass_b, and mean.

00170 {
00171   // assume that the pion mass is the average of the two pion masses used.
00172   Double_t mpi  = 0.5*(mass_a + mass_b); 
00173   Double_t mpi2 = mpi*mpi; 
00174   Double_t kfunc = KFunction(mean); 
00175   Double_t kfunc2 = kfunc*kfunc;
00176 
00177   Double_t logCoeff = (3*mpi2)/(M_PI*kfunc2);
00178   Double_t one = (mean + 2*kfunc)/(2*mpi);
00179   Double_t two = mean/(2*M_PI*kfunc);
00180   Double_t three = (mpi2*mean)/(M_PI*kfunc2*kfunc);
00181 
00182   return (logCoeff * log(one) + two - three);
00183 }

Double_t RooGounarisSakurai::dhds (  )  const [private]

Definition at line 110 of file RooGounarisSakurai.cc.

References hFunction(), KFunction(), and mean.

Referenced by fFunction().

00111 {
00112   if(mean == 0.0) return 0.0;
00113   Double_t k = KFunction(mean);
00114   if(k == 0.0) return 0.0;
00115   Double_t h = hFunction(mean);
00116   Double_t m0_2 = mean*mean;
00117   return h*( 1.0/(8.0*k*k) - 1.0/(2.0*m0_2)) + 1.0/(2*M_PI*m0_2);
00118 }

Double_t RooGounarisSakurai::evaluate (  )  const [protected]

Definition at line 62 of file RooGounarisSakurai.cc.

References fFunction(), Gamma(), mass_a, mass_b, mean, and x.

00063 {
00064   Double_t arg= x*x - mean*mean - fFunction(x);  
00065   Double_t gammaf = mean*Gamma();
00066 
00067   //  return (1 + d * width/mean)*(1 + d * width/mean) / (arg*arg + gammaf*gammaf);
00068   // the 1-dGamma_0/m_0 term is constant and can be ignored.  RF will deal with the
00069   // normalisation properly.
00070   if(x < (mass_a + mass_b)) return 0;
00071   else return x*x / (arg*arg + gammaf*gammaf);
00072 }

Double_t RooGounarisSakurai::fFunction ( Double_t  X  )  const [private]

Definition at line 136 of file RooGounarisSakurai.cc.

References dhds(), hFunction(), KFunction(), mean, and width.

Referenced by evaluate().

00137 {
00138   /*
00139    * Argument is X = sqrt(s)
00140    */
00141   Double_t grad = dhds();
00142   Double_t h_s  = hFunction(X);
00143   Double_t h_m0 = hFunction(mean);
00144   Double_t k_s  = KFunction(X);
00145   Double_t k_m0 = KFunction(mean);
00146   if(k_m0 == 0.0) return 0.0;
00147   Double_t k2_m0 = k_m0*k_m0;
00148   Double_t k3_m0 = k2_m0*k_m0;
00149   Double_t mean2 = mean*mean;
00150 
00151   Double_t func = k_s*k_s*(h_s - h_m0) + (mean2 - X*X)*k2_m0*grad;
00152   return func * width*mean2 / k3_m0;
00153 }

Double_t RooGounarisSakurai::FFunction ( Double_t  X  )  const [private]

Definition at line 97 of file RooGounarisSakurai.cc.

References spin.

00098 {
00099   /*
00100    * These are the Blatt-Weisskopf form factors.  The argument 
00101    *  X = sqrt(s)
00102    */
00103   if(spin==0) return 1.0;
00104   if(spin==1) return 1.0/(1 + X*X);
00105   if(spin==2) return 1.0/(9 + 3*X*X + X*X*X*X); 
00106   return 1.0;
00107 }

Double_t RooGounarisSakurai::Gamma (  )  const [private]

Definition at line 75 of file RooGounarisSakurai.cc.

References KFunction(), mean, spin, width, and x.

Referenced by evaluate().

00076 {
00077   /*
00078    * This is the mass (and momentum) dependent width 
00079    * For the GS model, there is no Blatt-Weisskopf FF ratio 
00080    */
00081   Double_t kx = KFunction((double)x);
00082   Double_t km = KFunction(mean);
00083   Double_t rk = 0.0;
00084   if(km!=0){
00085     rk = (kx/km);
00086     if(spin ==1){
00087       rk = rk*rk*rk;
00088     }
00089     if(spin ==2){
00090       rk = rk*rk*rk*rk*rk;
00091     }    
00092   }
00093   return width*(mean/x)*rk;
00094 }

Double_t RooGounarisSakurai::hFunction ( Double_t  X  )  const [private]

Definition at line 121 of file RooGounarisSakurai.cc.

References KFunction(), mass_a, and mass_b.

Referenced by dhds(), and fFunction().

00122 {
00123   /*
00124    * Argument X = sqrt(s)
00125    */
00126   if(X == 0.0) return 0.0;
00127   // assume that the pion mass is the average of the two pion masses used.
00128   Double_t mpi  = 0.5*(mass_a + mass_b); 
00129   Double_t k = KFunction(X);
00130 
00131   Double_t theLog =  log( (X + 2.0*k) / (2.0* mpi) );
00132   return (2.0*k/(M_PI*X))*theLog;
00133 }

Double_t RooGounarisSakurai::KFunction ( Double_t  X  )  const [private]

Definition at line 156 of file RooGounarisSakurai.cc.

References mass_a, and mass_b.

Referenced by dFunction(), dhds(), fFunction(), Gamma(), and hFunction().

00157 {
00158   /*
00159    * This is momentum calculation
00160    * Argument X = sqrt(s)
00161    */
00162   if(X==0) return 0;
00163   Double_t massone = sqrt(1 - (mass_a + mass_b)*(mass_a + mass_b)/(X*X));
00164   Double_t masstwo = sqrt(1 - (mass_a - mass_b)*(mass_a - mass_b)/(X*X));
00165   return X/2.0 * massone * masstwo;
00166 }


Member Data Documentation

RooRealProxy RooGounarisSakurai::mass_a [protected]

Definition at line 42 of file RooGounarisSakurai.hh.

Referenced by dFunction(), evaluate(), hFunction(), and KFunction().

RooRealProxy RooGounarisSakurai::mass_b [protected]

Definition at line 43 of file RooGounarisSakurai.hh.

Referenced by dFunction(), evaluate(), hFunction(), and KFunction().

RooRealProxy RooGounarisSakurai::mean [protected]

Definition at line 38 of file RooGounarisSakurai.hh.

Referenced by dFunction(), dhds(), evaluate(), fFunction(), and Gamma().

RooRealProxy RooGounarisSakurai::radius [protected]

Definition at line 41 of file RooGounarisSakurai.hh.

RooRealProxy RooGounarisSakurai::spin [protected]

Definition at line 40 of file RooGounarisSakurai.hh.

Referenced by FFunction(), and Gamma().

RooRealProxy RooGounarisSakurai::width [protected]

Definition at line 39 of file RooGounarisSakurai.hh.

Referenced by fFunction(), and Gamma().

RooRealProxy RooGounarisSakurai::x [protected]

Definition at line 37 of file RooGounarisSakurai.hh.

Referenced by evaluate(), and Gamma().


The documentation for this class was generated from the following files:
Generated on 30 Oct 2013 for RooRarFit by  doxygen 1.4.7