RooLass Class Reference

#include <RooLass.hh>

List of all members.

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


Detailed Description

Definition at line 21 of file RooLass.hh.


Constructor & Destructor Documentation

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]

Definition at line 32 of file RooLass.hh.

00032 {}


Member Function Documentation

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 }


Member Data Documentation

RooRealProxy RooLass::effRange [protected]

Definition at line 43 of file RooLass.hh.

Referenced by kmatrix(), and smatrix().

RooRealProxy RooLass::mean [protected]

Definition at line 40 of file RooLass.hh.

Referenced by kmatrix(), and smatrix().

RooRealProxy RooLass::scatLen [protected]

Definition at line 44 of file RooLass.hh.

Referenced by kmatrix(), and smatrix().

TString RooLass::spec [protected]

Definition at line 42 of file RooLass.hh.

RooRealProxy RooLass::turnOffVal [protected]

Definition at line 45 of file RooLass.hh.

Referenced by kmatrix(), and smatrix().

RooRealProxy RooLass::width [protected]

Definition at line 41 of file RooLass.hh.

Referenced by kmatrix(), and smatrix().

RooRealProxy RooLass::x [protected]

Definition at line 39 of file RooLass.hh.

Referenced by kmatrix(), and smatrix().


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