EvtMassAmp Class Reference

#include <EvtMassAmp.hh>

Inheritance diagram for EvtMassAmp:

EvtAmplitude< EvtPoint1D > List of all members.

Public Member Functions

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

Private Attributes

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

Detailed Description

Definition at line 29 of file EvtMassAmp.hh.


Constructor & Destructor Documentation

EvtMassAmp::EvtMassAmp ( const EvtPropBreitWignerRel prop,
const EvtTwoBodyVertex vd 
)

Definition at line 20 of file EvtMassAmp.cc.

Referenced by clone().

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  ) 

Definition at line 28 of file EvtMassAmp.cc.

00029   : EvtAmplitude<EvtPoint1D>(other)
00030   ,_prop(other._prop), _vd(other._vd)
00031   ,_vb(other._vb ? new EvtTwoBodyVertex(*other._vb) : 0)
00032   ,_useBirthFact(other._useBirthFact)
00033   ,_useDeathFact(other._useDeathFact)
00034   ,_useBirthFactFF(other._useBirthFactFF)
00035   ,_useDeathFactFF(other._useDeathFactFF)
00036   ,_fixUpMassForMax(other._fixUpMassForMax)
00037   ,_addfactor(other._addfactor)
00038 {}

EvtMassAmp::~EvtMassAmp (  )  [virtual]

Definition at line 41 of file EvtMassAmp.cc.

References _vb.

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


Member Function Documentation

void EvtMassAmp::addBirthFact (  )  [inline]

Definition at line 46 of file EvtMassAmp.hh.

References _useBirthFact.

Referenced by EvtRelBreitWignerBarrierFact::getRandMass().

00046 { _useBirthFact = true; }

void EvtMassAmp::addBirthFactFF (  )  [inline]

Definition at line 48 of file EvtMassAmp.hh.

References _useBirthFactFF.

Referenced by EvtRelBreitWignerBarrierFact::getRandMass().

00048 { _useBirthFactFF = true; }

void EvtMassAmp::addDeathFact (  )  [inline]

Definition at line 47 of file EvtMassAmp.hh.

References _useDeathFact.

Referenced by EvtRelBreitWignerBarrierFact::getRandMass().

00047 { _useDeathFact = true; }

void EvtMassAmp::addDeathFactFF (  )  [inline]

Definition at line 49 of file EvtMassAmp.hh.

References _useDeathFactFF.

Referenced by EvtRelBreitWignerBarrierFact::getRandMass().

00049 { _useDeathFactFF = true; }

void EvtMassAmp::addFactorPn ( double  factor  )  [inline]

Definition at line 51 of file EvtMassAmp.hh.

References _addfactor.

Referenced by EvtRelBreitWignerBarrierFact::getRandMass().

00051 {_addfactor = factor;}

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

Implements EvtAmplitude< EvtPoint1D >.

Definition at line 47 of file EvtMassAmp.cc.

References _addfactor, _fixUpMassForMax, _prop, _useBirthFact, _useBirthFactFF, _useDeathFact, _useDeathFactFF, _vb, _vd, EvtTwoBodyKine::AB, EvtTwoBodyVertex::formFactor(), EvtPropagator::g0(), EvtTwoBodyVertex::L(), EvtPropagator::m0(), EvtTwoBodyVertex::mA(), EvtTwoBodyVertex::mAB(), EvtTwoBodyVertex::mB(), EvtTwoBodyVertex::pD(), EvtTwoBodyVertex::phaseSpaceFactor(), EvtPoint1D::value(), and EvtTwoBodyVertex::widthFactor().

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 >.

Definition at line 38 of file EvtMassAmp.hh.

References EvtMassAmp().

00039   { return new EvtMassAmp(*this); }

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

Definition at line 26 of file EvtAmplitude.hh.

References EvtAmplitude< T >::amplitude().

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

void EvtMassAmp::fixUpMassForMax (  )  [inline]

Definition at line 50 of file EvtMassAmp.hh.

References _fixUpMassForMax.

00050 { _fixUpMassForMax = true;}

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

Definition at line 41 of file EvtMassAmp.hh.

References _vb.

Referenced by EvtRelBreitWignerBarrierFact::getRandMass().

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


Member Data Documentation

double EvtMassAmp::_addfactor [private]

Definition at line 58 of file EvtMassAmp.hh.

Referenced by addFactorPn(), and amplitude().

bool EvtMassAmp::_fixUpMassForMax [private]

Definition at line 64 of file EvtMassAmp.hh.

Referenced by amplitude(), and fixUpMassForMax().

EvtPropBreitWignerRel EvtMassAmp::_prop [private]

Definition at line 55 of file EvtMassAmp.hh.

Referenced by amplitude().

bool EvtMassAmp::_useBirthFact [private]

Definition at line 60 of file EvtMassAmp.hh.

Referenced by addBirthFact(), and amplitude().

bool EvtMassAmp::_useBirthFactFF [private]

Definition at line 62 of file EvtMassAmp.hh.

Referenced by addBirthFactFF(), and amplitude().

bool EvtMassAmp::_useDeathFact [private]

Definition at line 61 of file EvtMassAmp.hh.

Referenced by addDeathFact(), and amplitude().

bool EvtMassAmp::_useDeathFactFF [private]

Definition at line 63 of file EvtMassAmp.hh.

Referenced by addDeathFactFF(), and amplitude().

EvtTwoBodyVertex* EvtMassAmp::_vb [private]

Definition at line 57 of file EvtMassAmp.hh.

Referenced by amplitude(), setBirthVtx(), and ~EvtMassAmp().

EvtTwoBodyVertex EvtMassAmp::_vd [private]

Definition at line 56 of file EvtMassAmp.hh.

Referenced by amplitude().


Generated on Tue Nov 29 23:19:06 2016 for BOSS_7.0.2 by  doxygen 1.4.7