#include <RooFlatte.hh>
Public Member Functions | |
RooFlatte (const char *name, const char *title, RooAbsReal &_x, RooAbsReal &_mean, RooAbsReal &_g0, RooAbsReal &_m0a, RooAbsReal &_m0b, RooAbsReal &_g1, RooAbsReal &_m1a, RooAbsReal &_m1b) | |
RooFlatte (const RooFlatte &other, const char *name=0) | |
virtual TObject * | clone (const char *newname) const |
virtual | ~RooFlatte () |
Protected Member Functions | |
Double_t | evaluate () const |
Protected Attributes | |
RooRealProxy | x |
RooRealProxy | mean |
RooRealProxy | g0 |
RooRealProxy | m0a |
RooRealProxy | m0b |
RooRealProxy | g1 |
RooRealProxy | m1a |
RooRealProxy | m1b |
Definition at line 9 of file RooFlatte.hh.
RooFlatte::RooFlatte | ( | const char * | name, | |
const char * | title, | |||
RooAbsReal & | _x, | |||
RooAbsReal & | _mean, | |||
RooAbsReal & | _g0, | |||
RooAbsReal & | _m0a, | |||
RooAbsReal & | _m0b, | |||
RooAbsReal & | _g1, | |||
RooAbsReal & | _m1a, | |||
RooAbsReal & | _m1b | |||
) |
Referenced by clone().
RooFlatte::RooFlatte | ( | const RooFlatte & | other, | |
const char * | name = 0 | |||
) |
Definition at line 60 of file RooFlatte.cc.
00061 : 00062 RooAbsPdf(other,name), 00063 x("x",this,other.x), 00064 mean("mean",this,other.mean), 00065 g0("g0",this,other.g0), 00066 m0a("m0a",this,other.m0a), 00067 m0b("m0b",this,other.m0b), 00068 g1("g1",this,other.g1), 00069 m1a("m1a",this,other.m1a), 00070 m1b("m1b",this,other.m1b) 00071 { 00072 }
virtual RooFlatte::~RooFlatte | ( | ) | [inline, virtual] |
virtual TObject* RooFlatte::clone | ( | const char * | newname | ) | const [inline, virtual] |
Definition at line 19 of file RooFlatte.hh.
References RooFlatte().
00019 { 00020 return new RooFlatte(*this,newname); 00021 }
Double_t RooFlatte::evaluate | ( | ) | const [protected] |
Definition at line 75 of file RooFlatte.cc.
References g0, g1, m0a, m0b, m1a, m1b, mean, and x.
00076 { 00077 // calculate Flatte amplitude 00078 00079 if (g0<0 || g1<0) {return(0);} 00080 00081 Double_t s = x*x; 00082 00083 // Energy, centre of mass p^2 of first channel 00084 Double_t E0a = 0.5 * (s + m0a*m0a - m0b*m0b) / x; 00085 Double_t qSq0 = E0a*E0a - m0a*m0a; 00086 00087 // Energy, centre of mass p^2 of second channel 00088 Double_t E1a = 0.5 * (s + m1a*m1a - m1b*m1b) / x; 00089 Double_t qSq1 = E1a*E1a - m1a*m1a; 00090 00091 RooComplex gamma0 = (qSq0 > 0) ? RooComplex(g0*sqrt(qSq0),0) : 00092 RooComplex(0, g0*sqrt(-qSq0)); 00093 00094 RooComplex gamma1 = (qSq1 > 0) ? RooComplex(g1*sqrt(qSq1),0) : 00095 RooComplex(0, g1*sqrt(-qSq1)); 00096 00097 RooComplex gamma = gamma0 + gamma1; 00098 00099 RooComplex partB = RooComplex(0.0, 2*mean/x) * gamma; 00100 RooComplex partA(mean*mean - s, 0); 00101 00102 RooComplex denom = partA - partB; 00103 00104 //RooComplex T(mean*sqrt(g0*g1),0); 00105 RooComplex T(1,0); 00106 T = T / denom; 00107 00108 return(T.abs2()); // Amplitude (arbitrary scale) 00109 00110 }
RooRealProxy RooFlatte::g0 [protected] |
RooRealProxy RooFlatte::g1 [protected] |
RooRealProxy RooFlatte::m0a [protected] |
RooRealProxy RooFlatte::m0b [protected] |
RooRealProxy RooFlatte::m1a [protected] |
RooRealProxy RooFlatte::m1b [protected] |
RooRealProxy RooFlatte::mean [protected] |
RooRealProxy RooFlatte::x [protected] |