Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

EvtTwoBodyVertex Class Reference

#include <EvtTwoBodyVertex.hh>

List of all members.

Public Member Functions

 EvtTwoBodyVertex (const EvtTwoBodyVertex &other)
 EvtTwoBodyVertex (double mA, double mB, double mAB, int L)
 EvtTwoBodyVertex ()
double formFactor (EvtTwoBodyKine x) const
int L () const
double mA () const
double mAB () const
double mB () const
double pD () const
double phaseSpaceFactor (EvtTwoBodyKine x, EvtTwoBodyKine::Index) const
void print (std::ostream &os) const
void set_f (double R)
double widthFactor (EvtTwoBodyKine x) const
 ~EvtTwoBodyVertex ()

Private Attributes

EvtBlattWeisskopf_f
EvtTwoBodyKine _kine
int _LL
double _p0


Constructor & Destructor Documentation

EvtTwoBodyVertex::EvtTwoBodyVertex  ) 
 

00023   : _LL(0), _p0(0), _f(0)
00024 {}

EvtTwoBodyVertex::EvtTwoBodyVertex double  mA,
double  mB,
double  mAB,
int  L
 

00027   : _kine(), _LL(L), _p0(0), _f(0)
00028 {
00029   // Kinematics is initialized only if the decay is above threshold
00030 
00031   if(mAB > mA + mB) {
00032 
00033     _kine = EvtTwoBodyKine(mA,mB,mAB);
00034     _p0 = _kine.p();
00035   }
00036 }

EvtTwoBodyVertex::EvtTwoBodyVertex const EvtTwoBodyVertex other  ) 
 

00040   : _kine(other._kine), _LL(other._LL), _p0(other._p0), 
00041   _f( (other._f) ? new EvtBlattWeisskopf(*other._f) : 0 )
00042 {}

EvtTwoBodyVertex::~EvtTwoBodyVertex  ) 
 

00045 {
00046   if(_f) delete _f;
00047 }


Member Function Documentation

double EvtTwoBodyVertex::formFactor EvtTwoBodyKine  x  )  const
 

00078 {
00079   double ff = 1.;
00080 
00081   if(_f) {
00082 
00083     double p1 = x.p();
00084     ff = (*_f)(p1);
00085   }
00086   
00087   return ff;
00088 }

int EvtTwoBodyVertex::L  )  const [inline]
 

00034 { return _LL; }

double EvtTwoBodyVertex::mA  )  const [inline]
 

00035 { return _kine.mA(); }

double EvtTwoBodyVertex::mAB  )  const [inline]
 

00037 { return _kine.mAB(); }

double EvtTwoBodyVertex::mB  )  const [inline]
 

00036 { return _kine.mB(); }

double EvtTwoBodyVertex::pD  )  const [inline]
 

00038 { return _p0; }

double EvtTwoBodyVertex::phaseSpaceFactor EvtTwoBodyKine  x,
EvtTwoBodyKine::Index 
const
 

00070 {
00071   double p1 = x.p(i);
00072   double factor = pow(p1,_LL);
00073   return factor;
00074 }

void EvtTwoBodyVertex::print std::ostream os  )  const
 

00091 {
00092   os << " mA = " << mA() << endl;
00093   os << " mB = " << mB() << endl;
00094   os << "mAB = " << mAB() << endl;
00095   os << "  L = " << _LL << endl;
00096   os << " p0 = " << _p0 << endl;
00097 }

void EvtTwoBodyVertex::set_f double  R  ) 
 

00051 {
00052   if(_f) delete _f;
00053   _f = new EvtBlattWeisskopf(_LL,R,_p0);
00054 }

double EvtTwoBodyVertex::widthFactor EvtTwoBodyKine  x  )  const
 

00058 {
00059   assert(_p0 > 0.);
00060 
00061   double p1 = x.p();
00062   double ff = formFactor(x);
00063   double factor = pow(p1/_p0,2*_LL+1)*pow(mAB()/x.mAB(),2) * ff * ff;  //pingrg,2008-11-24, in EvtGen Manual Eq 66, (m0/m) should be squared 
00064 
00065   return factor;
00066 }


Member Data Documentation

EvtBlattWeisskopf* EvtTwoBodyVertex::_f [private]
 

EvtTwoBodyKine EvtTwoBodyVertex::_kine [private]
 

int EvtTwoBodyVertex::_LL [private]
 

double EvtTwoBodyVertex::_p0 [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 16:12:30 2011 for BOSS6.5.5 by  doxygen 1.3.9.1