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

EvtMassAmp Class Reference

#include <EvtMassAmp.hh>

Inheritance diagram for EvtMassAmp:

EvtAmplitude< EvtPoint1D > List of all members.

Public Member Functions

void addBirthFact ()
void addBirthFactFF ()
void addDeathFact ()
void addDeathFactFF ()
void addFactorPn (double factor)
virtual EvtComplex amplitude (const EvtPoint1D &p) const
virtual EvtAmplitude< EvtPoint1D > * clone () const
EvtComplex evaluate (const EvtPoint1D &p) const
 EvtMassAmp (const EvtMassAmp &other)
 EvtMassAmp (const EvtPropBreitWignerRel &prop, const EvtTwoBodyVertex &vd)
void fixUpMassForMax ()
void setBirthVtx (const EvtTwoBodyVertex &vb)
virtual ~EvtMassAmp ()

Private Attributes

double _addfactor
bool _fixUpMassForMax
EvtPropBreitWignerRel _prop
bool _useBirthFact
bool _useBirthFactFF
bool _useDeathFact
bool _useDeathFactFF
EvtTwoBodyVertex_vb
EvtTwoBodyVertex _vd

Constructor & Destructor Documentation

EvtMassAmp::EvtMassAmp const EvtPropBreitWignerRel prop,
const EvtTwoBodyVertex vd
 

00021   : EvtAmplitude<EvtPoint1D>()
00022   ,_prop(prop), _vd(vd), _vb(0)
00023   ,_useBirthFact(false), _useDeathFact(false)
00024   ,_useBirthFactFF(false), _useDeathFactFF(false)
00025   ,_fixUpMassForMax(false),_addfactor(0.)
00026 {}

EvtMassAmp::EvtMassAmp const EvtMassAmp other  ) 
 

EvtMassAmp::~EvtMassAmp  )  [virtual]
 

00042 {
00043   if(_vb) delete _vb;
00044 }


Member Function Documentation

void EvtMassAmp::addBirthFact  )  [inline]
 

00046 { _useBirthFact = true; }

void EvtMassAmp::addBirthFactFF  )  [inline]
 

00048 { _useBirthFactFF = true; }

void EvtMassAmp::addDeathFact  )  [inline]
 

00047 { _useDeathFact = true; }

void EvtMassAmp::addDeathFactFF  )  [inline]
 

00049 { _useDeathFactFF = true; }

void EvtMassAmp::addFactorPn double  factor  )  [inline]
 

00051 {_addfactor = factor;}

EvtComplex EvtMassAmp::amplitude const EvtPoint1D p  )  const [virtual]
 

Implements EvtAmplitude< EvtPoint1D >.

00048 {
00049   // Modified vertex
00050 
00051   double m = p.value();
00052   // keep things from crashing..
00053 
00054   if ( m< (_vd.mA()+_vd.mB()) ) return EvtComplex(0.,0.);
00055 
00056   EvtTwoBodyKine vd(_vd.mA(),_vd.mB(),m);
00057   
00058   // Compute mass-dependent width for relativistic propagator
00059 
00060   EvtPropBreitWignerRel bw(_prop.m0(),_prop.g0()*_vd.widthFactor(vd)); 
00061   EvtComplex amp = bw.evaluate(m);
00062 
00063 
00064   // Birth vertex factors
00065 
00066   if(_useBirthFact) {
00067 
00068     assert(_vb);
00069     if ( (m+_vb->mB()) < _vb->mAB() ) {  
00070       EvtTwoBodyKine vb(m,_vb->mB(),_vb->mAB());
00071       double phsp= _vb->phaseSpaceFactor(vb,EvtTwoBodyKine::AB);
00072       amp *= phsp;
00073 
00074       if ( _fixUpMassForMax ) {
00075         amp *= sqrt((vb.p() / _vb->pD()));
00076       }
00077       if(_useBirthFactFF) {
00078         
00079         assert(_vb);
00080         amp *= _vb->formFactor(vb);
00081       }
00082     }
00083     else{
00084       if ( _vb->L() != 0 ) amp=0.;
00085     }
00086   }
00087 
00088 
00089   // Decay vertex factors
00090 
00091   if(_useDeathFact) {
00092     amp *= _vd.phaseSpaceFactor(vd,EvtTwoBodyKine::AB);
00093     if ( _fixUpMassForMax ) {
00094       amp *= sqrt((vd.p() / _vd.pD()));
00095     }
00096   }
00097   if(_useDeathFactFF) amp *= _vd.formFactor(vd);
00098 
00099   // AddFactorPn
00100 
00101   if(fabs(_addfactor) > 0.00000001){ //addFactorPn, pingrg-2011-1-6
00102     assert(_vb);
00103     double phsp;
00104     if ( (m+_vb->mB()) < _vb->mAB() ) {  
00105       EvtTwoBodyKine vb(m,_vb->mB(),_vb->mAB());
00106       phsp= vb.p(EvtTwoBodyKine::AB);
00107     } else{
00108       if ( _vb->L() != 0 ) phsp=0.;
00109     }
00110 
00111     amp *= pow(phsp,_addfactor);
00112     //   std::cout<<"EvtMassAmp::addFactorPn= "<<pow(phsp,_addfactor)<<std::endl;
00113    }
00114  
00115   return amp;
00116 }

virtual EvtAmplitude<EvtPoint1D>* EvtMassAmp::clone  )  const [inline, virtual]
 

Implements EvtAmplitude< EvtPoint1D >.

00039   { return new EvtMassAmp(*this); }

EvtComplex EvtAmplitude< EvtPoint1D >::evaluate const EvtPoint1D p  )  const [inline, inherited]
 

00027   {
00028     EvtComplex ret(0.,0.);
00029     if(p.isValid()) ret = amplitude(p);
00030     return ret;
00031   }

void EvtMassAmp::fixUpMassForMax  )  [inline]
 

00050 { _fixUpMassForMax = true;}

void EvtMassAmp::setBirthVtx const EvtTwoBodyVertex vb  )  [inline]
 

00042   {
00043     _vb = new EvtTwoBodyVertex(vb);
00044   }


Member Data Documentation

double EvtMassAmp::_addfactor [private]
 

bool EvtMassAmp::_fixUpMassForMax [private]
 

EvtPropBreitWignerRel EvtMassAmp::_prop [private]
 

bool EvtMassAmp::_useBirthFact [private]
 

bool EvtMassAmp::_useBirthFactFF [private]
 

bool EvtMassAmp::_useDeathFact [private]
 

bool EvtMassAmp::_useDeathFactFF [private]
 

EvtTwoBodyVertex* EvtMassAmp::_vb [private]
 

EvtTwoBodyVertex EvtMassAmp::_vd [private]
 


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