EvtDalitzPlot Class Reference

#include <EvtDalitzPlot.hh>

List of all members.

Public Member Functions

 EvtDalitzPlot ()
 EvtDalitzPlot (double mA, double mB, double mC, double bigM, double ldel=0., double rdel=0.)
 EvtDalitzPlot (const EvtDecayMode &mode, double ldel=0., double rdel=0.)
 EvtDalitzPlot (const EvtDalitzPlot &other)
 ~EvtDalitzPlot ()
bool operator== (const EvtDalitzPlot &other) const
const EvtDalitzPlotclone () const
double qAbsMin (EvtCyclic3::Pair i) const
double qAbsMax (EvtCyclic3::Pair i) const
double mAbsMin (EvtCyclic3::Pair i) const
double mAbsMax (EvtCyclic3::Pair i) const
double qResAbsMin (EvtCyclic3::Pair i) const
double qResAbsMax (EvtCyclic3::Pair i) const
double qHelAbsMin (EvtCyclic3::Pair i) const
double qHelAbsMax (EvtCyclic3::Pair i) const
double qSumMin () const
double qSumMax () const
bool fuzzy () const
double getArea (int N=1000, EvtCyclic3::Pair i=EvtCyclic3::AB, EvtCyclic3::Pair j=EvtCyclic3::BC) const
double qMin (EvtCyclic3::Pair i, EvtCyclic3::Pair j, double q) const
double qMax (EvtCyclic3::Pair i, EvtCyclic3::Pair j, double q) const
double cosTh (EvtCyclic3::Pair i1, double q1, EvtCyclic3::Pair i2, double q2) const
double e (EvtCyclic3::Index i, EvtCyclic3::Pair j, double q) const
double p (EvtCyclic3::Index i, EvtCyclic3::Pair j, double q) const
double q (EvtCyclic3::Pair i1, double cosTh, EvtCyclic3::Pair i2, double q2) const
double jacobian (EvtCyclic3::Pair i, double q) const
EvtTwoBodyVertex vD (EvtCyclic3::Pair iRes, double m0, int L) const
EvtTwoBodyVertex vB (EvtCyclic3::Pair iRes, double m0, int L) const
double sum () const
double bigM () const
double mA () const
double mB () const
double mC () const
double m (EvtCyclic3::Index i) const
void print () const
void sanityCheck () const

Protected Attributes

double _mA
double _mB
double _mC
double _bigM
double _ldel
double _rdel


Detailed Description

Definition at line 25 of file EvtDalitzPlot.hh.


Constructor & Destructor Documentation

EvtDalitzPlot::EvtDalitzPlot (  ) 

Definition at line 33 of file EvtDalitzPlot.cc.

Referenced by clone().

00034   : _mA(0.), _mB(0.), _mC(0.), _bigM(0.),
00035     _ldel(0.), _rdel(0.)
00036 {}

EvtDalitzPlot::EvtDalitzPlot ( double  mA,
double  mB,
double  mC,
double  bigM,
double  ldel = 0.,
double  rdel = 0. 
)

Definition at line 39 of file EvtDalitzPlot.cc.

References sanityCheck().

00041   : _mA(mA), _mB(mB), _mC(mC), _bigM(bigM),
00042     _ldel(ldel), _rdel(rdel) 
00043 {
00044   sanityCheck();
00045 }

EvtDalitzPlot::EvtDalitzPlot ( const EvtDecayMode mode,
double  ldel = 0.,
double  rdel = 0. 
)

Definition at line 47 of file EvtDalitzPlot.cc.

References _bigM, _ldel, _mA, _mB, _mC, _rdel, EvtCyclic3::A, EvtCyclic3::B, EvtCyclic3::C, EvtDecayMode::dau(), EvtPDL::getId(), EvtPDL::getMeanMass(), EvtDecayMode::mother(), and sanityCheck().

00048 {
00049   _mA = EvtPDL::getMeanMass(EvtPDL::getId(mode.dau(A)));
00050   _mB = EvtPDL::getMeanMass(EvtPDL::getId(mode.dau(B)));
00051   _mC = EvtPDL::getMeanMass(EvtPDL::getId(mode.dau(C)));
00052   _bigM = EvtPDL::getMeanMass(EvtPDL::getId(mode.mother()));
00053 
00054   _ldel = ldel;
00055   _rdel = rdel;
00056   
00057   sanityCheck();
00058 }

EvtDalitzPlot::EvtDalitzPlot ( const EvtDalitzPlot other  ) 

Definition at line 61 of file EvtDalitzPlot.cc.

00062   : _mA(other._mA), _mB(other._mB), _mC(other._mC), _bigM(other._bigM),
00063     _ldel(other._ldel), _rdel(other._rdel)
00064 {}

EvtDalitzPlot::~EvtDalitzPlot (  ) 

Definition at line 67 of file EvtDalitzPlot.cc.

00068 {}


Member Function Documentation

double EvtDalitzPlot::bigM (  )  const [inline]

Definition at line 92 of file EvtDalitzPlot.hh.

References _bigM.

Referenced by EvtDalitzReso::evaluate(), and print().

00092 { return _bigM; }

const EvtDalitzPlot * EvtDalitzPlot::clone (  )  const

Definition at line 83 of file EvtDalitzPlot.cc.

References EvtDalitzPlot().

00084 {
00085   return new EvtDalitzPlot(*this);
00086 }

double EvtDalitzPlot::cosTh ( EvtCyclic3::Pair  i1,
double  q1,
EvtCyclic3::Pair  i2,
double  q2 
) const

Definition at line 260 of file EvtDalitzPlot.cc.

References cos(), qMax(), and qMin().

Referenced by EvtDalitzPoint::cosTh().

00261 {
00262   if(i1 == i2) return 1.;
00263   
00264   double qmax = qMax(i1,i2,q2);
00265   double qmin = qMin(i1,i2,q2);
00266   
00267   double cos = (qmax + qmin - 2*q1)/(qmax - qmin);
00268   
00269   return cos;
00270 }

double EvtDalitzPlot::e ( EvtCyclic3::Index  i,
EvtCyclic3::Pair  j,
double  q 
) const

Referenced by EvtDalitzPoint::e(), and q().

bool EvtDalitzPlot::fuzzy (  )  const [inline]

Definition at line 55 of file EvtDalitzPlot.hh.

References _ldel, and _rdel.

00055 { return (_rdel - _ldel != 0.); }

double EvtDalitzPlot::getArea ( int  N = 1000,
EvtCyclic3::Pair  i = EvtCyclic3::AB,
EvtCyclic3::Pair  j = EvtCyclic3::BC 
) const

Referenced by EvtDalitzFlatPdf::compute_integral().

double EvtDalitzPlot::jacobian ( EvtCyclic3::Pair  i,
double  q 
) const

Definition at line 319 of file EvtDalitzPlot.cc.

References first, EvtCyclic3::other(), and p().

00320 {
00321   return 2*p(first(i),i,q)*p(other(i),i,q);  // J(BC) = 2pA*pB = 2pA*pC
00322 }

double EvtDalitzPlot::m ( EvtCyclic3::Index  i  )  const

Referenced by EvtDalitzReso::evaluate(), and q().

double EvtDalitzPlot::mA (  )  const [inline]

Definition at line 93 of file EvtDalitzPlot.hh.

References _mA.

00093 { return _mA; } 

double EvtDalitzPlot::mAbsMax ( EvtCyclic3::Pair  i  )  const

double EvtDalitzPlot::mAbsMin ( EvtCyclic3::Pair  i  )  const

double EvtDalitzPlot::mB (  )  const [inline]

Definition at line 94 of file EvtDalitzPlot.hh.

References _mB.

00094 { return _mB; } 

double EvtDalitzPlot::mC (  )  const [inline]

Definition at line 95 of file EvtDalitzPlot.hh.

References _mC.

00095 { return _mC; } 

bool EvtDalitzPlot::operator== ( const EvtDalitzPlot other  )  const

Definition at line 71 of file EvtDalitzPlot.cc.

References _bigM, _mA, _mB, _mC, and EvtCyclic3::other().

00072 {
00073   bool ret = false;
00074   if(_mA == other._mA && 
00075      _mB == other._mB &&
00076      _mC == other._mC &&
00077      _bigM == other._bigM) ret = true;
00078 
00079   return ret;
00080 }

double EvtDalitzPlot::p ( EvtCyclic3::Index  i,
EvtCyclic3::Pair  j,
double  q 
) const

Referenced by jacobian(), EvtDalitzPoint::p(), and q().

void EvtDalitzPlot::print (  )  const

Definition at line 338 of file EvtDalitzPlot.cc.

References _mA, _mB, _mC, EvtCyclic3::AB, EvtCyclic3::BC, bigM(), EvtCyclic3::CA, qAbsMax(), qAbsMin(), qSumMax(), qSumMin(), and sum().

Referenced by EvtDalitzPoint::print().

00339 {
00340   // masses
00341   printf("Mass  M    %f\n",bigM());
00342   printf("Mass mA    %f\n",_mA);
00343   printf("Mass mB    %f\n",_mB);
00344   printf("Mass mC    %f\n",_mC);
00345   // limits
00346   printf("Limits qAB %f : %f\n",qAbsMin(AB),qAbsMax(AB));
00347   printf("Limits qBC %f : %f\n",qAbsMin(BC),qAbsMax(BC));
00348   printf("Limits qCA %f : %f\n",qAbsMin(CA),qAbsMax(CA));
00349   printf("Sum q       %f\n",sum());
00350   printf("Limit qsum  %f : %f\n",qSumMin(),qSumMax());
00351 }

double EvtDalitzPlot::q ( EvtCyclic3::Pair  i1,
double  cosTh,
EvtCyclic3::Pair  i2,
double  q2 
) const

Definition at line 309 of file EvtDalitzPlot.cc.

References e(), first, m(), p(), s, and EvtCyclic3::second().

00310 {
00311   if(i1 == i2) return q2;
00312 
00313   EvtCyclic3::Index f = first(i1);
00314   EvtCyclic3::Index s = second(i1);
00315   return m(f)*m(f) + m(s)*m(s) + 2*e(f,i2,q2)*e(s,i2,q2) - 2*p(f,i2,q2)*p(s,i2,q2)*cosTh;
00316 }

double EvtDalitzPlot::qAbsMax ( EvtCyclic3::Pair  i  )  const

Referenced by EvtDalitzResPdf::compute_integral(), EvtDalitzPoint::isValid(), print(), qHelAbsMax(), qHelAbsMin(), qResAbsMax(), EvtDalitzResPdf::randomPoint(), and EvtDalitzFlatPdf::randomPoint().

double EvtDalitzPlot::qAbsMin ( EvtCyclic3::Pair  i  )  const

Referenced by EvtDalitzResPdf::compute_integral(), EvtDalitzPoint::isValid(), print(), qHelAbsMax(), qHelAbsMin(), qResAbsMin(), EvtDalitzResPdf::randomPoint(), and EvtDalitzFlatPdf::randomPoint().

double EvtDalitzPlot::qHelAbsMax ( EvtCyclic3::Pair  i  )  const

Definition at line 151 of file EvtDalitzPlot.cc.

References next, EvtCyclic3::prev(), qAbsMax(), and qAbsMin().

00152 {
00153   Pair j = next(i);
00154   Pair k = prev(i);
00155   return  (qAbsMax(j) - qAbsMin(k))/2.;
00156 }

double EvtDalitzPlot::qHelAbsMin ( EvtCyclic3::Pair  i  )  const

Definition at line 144 of file EvtDalitzPlot.cc.

References next, EvtCyclic3::prev(), qAbsMax(), and qAbsMin().

00145 {
00146   Pair j = next(i);
00147   Pair k = prev(i);
00148   return  (qAbsMin(j) - qAbsMax(k))/2.;
00149 }

double EvtDalitzPlot::qMax ( EvtCyclic3::Pair  i,
EvtCyclic3::Pair  j,
double  q 
) const

Referenced by EvtDalitzResPdf::compute_integral(), cosTh(), and EvtDalitzPoint::qMax().

double EvtDalitzPlot::qMin ( EvtCyclic3::Pair  i,
EvtCyclic3::Pair  j,
double  q 
) const

Referenced by EvtDalitzResPdf::compute_integral(), cosTh(), and EvtDalitzPoint::qMin().

double EvtDalitzPlot::qResAbsMax ( EvtCyclic3::Pair  i  )  const

Definition at line 139 of file EvtDalitzPlot.cc.

References qAbsMax(), and sum().

00140 {
00141   return  qAbsMax(i) - sum()/3.;
00142 }

double EvtDalitzPlot::qResAbsMin ( EvtCyclic3::Pair  i  )  const

Definition at line 134 of file EvtDalitzPlot.cc.

References qAbsMin(), and sum().

00135 {
00136   return qAbsMin(i) - sum()/3.;
00137 }

double EvtDalitzPlot::qSumMax (  )  const [inline]

Definition at line 54 of file EvtDalitzPlot.hh.

References _rdel, and sum().

Referenced by print().

00054 { return sum() + _rdel; }

double EvtDalitzPlot::qSumMin (  )  const [inline]

Definition at line 53 of file EvtDalitzPlot.hh.

References _ldel, and sum().

Referenced by print().

00053 { return sum() + _ldel; }

void EvtDalitzPlot::sanityCheck (  )  const

Definition at line 89 of file EvtDalitzPlot.cc.

References _bigM, _ldel, _mA, _mB, _mC, and _rdel.

Referenced by EvtDalitzPlot().

00090 {
00091   if(_mA < 0 || _mB < 0 || _mC < 0 || _bigM <= 0 || _bigM - _mA - _mB - _mC < 0.) {
00092     
00093     printf("Invalid Dalitz plot %f %f %f %f\n",_mA,_mB,_mC,_bigM);
00094     assert(0);
00095   }
00096   assert(_ldel <= 0.);
00097   assert(_rdel >= 0.);
00098 }

double EvtDalitzPlot::sum (  )  const

Definition at line 112 of file EvtDalitzPlot.cc.

References _bigM, _mA, _mB, and _mC.

Referenced by EvtDalitzPoint::EvtDalitzPoint(), print(), qResAbsMax(), qResAbsMin(), qSumMax(), and qSumMin().

00113 {
00114   return _mA*_mA + _mB*_mB + _mC*_mC + _bigM*_bigM;
00115 }

EvtTwoBodyVertex EvtDalitzPlot::vB ( EvtCyclic3::Pair  iRes,
double  m0,
int  L 
) const

EvtTwoBodyVertex EvtDalitzPlot::vD ( EvtCyclic3::Pair  iRes,
double  m0,
int  L 
) const


Member Data Documentation

double EvtDalitzPlot::_bigM [protected]

Definition at line 110 of file EvtDalitzPlot.hh.

Referenced by bigM(), EvtDalitzPlot(), operator==(), sanityCheck(), and sum().

double EvtDalitzPlot::_ldel [protected]

Definition at line 114 of file EvtDalitzPlot.hh.

Referenced by EvtDalitzPlot(), fuzzy(), qSumMin(), and sanityCheck().

double EvtDalitzPlot::_mA [protected]

Definition at line 107 of file EvtDalitzPlot.hh.

Referenced by EvtDalitzPlot(), mA(), operator==(), print(), sanityCheck(), and sum().

double EvtDalitzPlot::_mB [protected]

Definition at line 108 of file EvtDalitzPlot.hh.

Referenced by EvtDalitzPlot(), mB(), operator==(), print(), sanityCheck(), and sum().

double EvtDalitzPlot::_mC [protected]

Definition at line 109 of file EvtDalitzPlot.hh.

Referenced by EvtDalitzPlot(), mC(), operator==(), print(), sanityCheck(), and sum().

double EvtDalitzPlot::_rdel [protected]

Definition at line 115 of file EvtDalitzPlot.hh.

Referenced by EvtDalitzPlot(), fuzzy(), qSumMax(), and sanityCheck().


Generated on Tue Nov 29 23:18:57 2016 for BOSS_7.0.2 by  doxygen 1.4.7