#include <RooLass.hh>
Public Member Functions | |
RooLass (const char *name, const char *title, RooAbsReal &fitVariable, RooAbsReal &theMean, RooAbsReal &theWidth, RooAbsReal &effectiveRange, RooAbsReal &scatteringLength, RooAbsReal &turnOffValue) | |
RooLass (const RooLass &other, const char *name=0) | |
virtual TObject * | clone (const char *newname) const |
virtual | ~RooLass () |
Protected Member Functions | |
Double_t | evaluate () const |
Protected Attributes | |
RooRealProxy | x |
RooRealProxy | mean |
RooRealProxy | width |
TString | spec |
RooRealProxy | effRange |
RooRealProxy | scatLen |
RooRealProxy | turnOffVal |
Private Member Functions | |
Double_t | getQ (Double_t mass) const |
Double_t | kmatrix () const |
Double_t | smatrix () const |
Definition at line 21 of file RooLass.hh.
RooLass::RooLass | ( | const char * | name, | |
const char * | title, | |||
RooAbsReal & | fitVariable, | |||
RooAbsReal & | theMean, | |||
RooAbsReal & | theWidth, | |||
RooAbsReal & | effectiveRange, | |||
RooAbsReal & | scatteringLength, | |||
RooAbsReal & | turnOffValue | |||
) |
Referenced by clone().
RooLass::RooLass | ( | const RooLass & | other, | |
const char * | name = 0 | |||
) |
Definition at line 50 of file RooLass.cc.
00051 : RooAbsPdf(other,name), 00052 x("x",this,other.x), 00053 mean("mean",this,other.mean), 00054 width("width",this,other.width), 00055 effRange("effRange",this,other.effRange), 00056 scatLen("scatLen",this,other.scatLen), 00057 turnOffVal("turnOffVal",this,other.turnOffVal) 00058 { 00059 }
virtual RooLass::~RooLass | ( | ) | [inline, virtual] |
virtual TObject* RooLass::clone | ( | const char * | newname | ) | const [inline, virtual] |
Definition at line 31 of file RooLass.hh.
References RooLass().
00031 {return new RooLass(*this,newname);}
Double_t RooLass::evaluate | ( | ) | const [protected] |
Definition at line 78 of file RooLass.cc.
References smatrix().
00079 { 00080 //return (kmatrix()); 00081 return (smatrix()); 00082 }
Double_t RooLass::getQ | ( | Double_t | mass | ) | const [private] |
Definition at line 62 of file RooLass.cc.
Referenced by kmatrix(), and smatrix().
00063 { 00064 00065 const Double_t m_Kaon = 0.493677; 00066 const Double_t m_Pion = 0.13957018; 00067 00068 if (mass < (m_Kaon+m_Pion)) {return(0);} 00069 00070 const Double_t mDaugSumSq = (m_Kaon+m_Pion)*(m_Kaon+m_Pion); 00071 const Double_t mDaugDiffSq = (m_Kaon-m_Pion)*(m_Kaon-m_Pion); 00072 00073 Double_t q = sqrt((mass*mass-mDaugSumSq)*(mass*mass-mDaugDiffSq))/(2*mass); 00074 return(q); 00075 }
Double_t RooLass::kmatrix | ( | ) | const [private] |
Definition at line 85 of file RooLass.cc.
References effRange, getQ(), mean, scatLen, turnOffVal, width, and x.
00086 { 00087 Double_t mass = x; 00088 00089 Double_t q = getQ(mass); 00090 if (q==0) {return(0);} 00091 00092 Double_t q0 = getQ(mean); 00093 if (q0==0) {return(0);} 00094 00095 Double_t rho = 2*q/mass; 00096 Double_t rho0 = 2*q0/mean; 00097 00098 Double_t g0sqr = mean*mass*width/rho0; 00099 // K matrix for BW resonance 00100 Double_t Khat = g0sqr/(mean*mean - mass*mass); 00101 00102 if (mass <= turnOffVal) { 00103 // K matrix for S-wave background + BW resonance 00104 Khat += ((scatLen*mass)/(2+scatLen*effRange*q*q)); 00105 } 00106 00107 RooComplex T(Khat,0.0); 00108 RooComplex denom(1.0,-Khat*rho); 00109 T = T / denom; // Transition probability 00110 00111 return (T.abs2()); // Amplitude (arbitrary scale); 00112 }
Double_t RooLass::smatrix | ( | ) | const [private] |
Definition at line 115 of file RooLass.cc.
References effRange, getQ(), mean, scatLen, turnOffVal, width, and x.
Referenced by evaluate().
00116 { 00117 Double_t mass = x; 00118 00119 const Double_t q = getQ(mass); 00120 if (q==0) {return(0);} 00121 00122 const Double_t qR = getQ(mean); 00123 if (qR==0) {return(0);} 00124 00125 // Breit-Wigner resonace 00126 RooComplex T2(width*mean*mean/qR,0); 00127 RooComplex bw_denom(mean*mean - mass*mass, -mean*width*q*mean/(mass*qR)); 00128 00129 T2 = T2 / bw_denom; 00130 00131 RooComplex T(T2); 00132 00133 if (mass < turnOffVal) { 00134 // effective range parameterization 00135 Double_t cot_db = 1.0/ (scatLen*q) + (effRange*q)*0.5; 00136 Double_t db = TMath::ATan(1.0/cot_db); 00137 00138 // relative phase exp^(2 i db) 00139 RooComplex phase(cos(2*db),sin(2*db)); 00140 00141 // S-wave 00142 RooComplex T1(mass, 0); 00143 RooComplex s_denom(q*cot_db, -q); 00144 00145 T = (T1/s_denom) + (phase * T); 00146 } 00147 00148 return (T.abs2()); // Amplitude (arbitrary scale); 00149 }
RooRealProxy RooLass::effRange [protected] |
RooRealProxy RooLass::mean [protected] |
RooRealProxy RooLass::scatLen [protected] |
TString RooLass::spec [protected] |
Definition at line 42 of file RooLass.hh.
RooRealProxy RooLass::turnOffVal [protected] |
RooRealProxy RooLass::width [protected] |
RooRealProxy RooLass::x [protected] |