CGEM BOSS 6.6.5.g
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtTwoBodyVertex Class Reference

#include <EvtTwoBodyVertex.hh>

Public Member Functions

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

Detailed Description

Definition at line 21 of file EvtTwoBodyVertex.hh.

Constructor & Destructor Documentation

◆ EvtTwoBodyVertex() [1/3]

EvtTwoBodyVertex::EvtTwoBodyVertex ( )

Definition at line 22 of file EvtTwoBodyVertex.cc.

23 : _LL(0), _p0(0), _f(0)
24{}

◆ EvtTwoBodyVertex() [2/3]

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

Definition at line 26 of file EvtTwoBodyVertex.cc.

27 : _kine(), _LL(L), _p0(0), _f(0)
28{
29 // Kinematics is initialized only if the decay is above threshold
30
31 if(mAB > mA + mB) {
32
33 _kine = EvtTwoBodyKine(mA,mB,mAB);
34 _p0 = _kine.p();
35 }
36}
double p(Index i=AB) const
double mAB() const
double mA() const
double mB() const

◆ EvtTwoBodyVertex() [3/3]

EvtTwoBodyVertex::EvtTwoBodyVertex ( const EvtTwoBodyVertex other)

Definition at line 39 of file EvtTwoBodyVertex.cc.

40 : _kine(other._kine), _LL(other._LL), _p0(other._p0),
41 _f( (other._f) ? new EvtBlattWeisskopf(*other._f) : 0 )
42{}
Index other(Index i, Index j)
Definition: EvtCyclic3.cc:118

◆ ~EvtTwoBodyVertex()

EvtTwoBodyVertex::~EvtTwoBodyVertex ( )

Definition at line 44 of file EvtTwoBodyVertex.cc.

45{
46 if(_f) delete _f;
47}

Member Function Documentation

◆ formFactor()

double EvtTwoBodyVertex::formFactor ( EvtTwoBodyKine  x) const

Definition at line 77 of file EvtTwoBodyVertex.cc.

78{
79 double ff = 1.;
80
81 if(_f) {
82
83 double p1 = x.p();
84 ff = (*_f)(p1);
85 }
86
87 return ff;
88}
Double_t x[10]

Referenced by EvtPto3PAmp::amplitude(), EvtMassAmp::amplitude(), EvtDalitzReso::evaluate(), and widthFactor().

◆ L()

int EvtTwoBodyVertex::L ( ) const
inline

Definition at line 34 of file EvtTwoBodyVertex.hh.

34{ return _LL; }

Referenced by EvtMassAmp::amplitude().

◆ mA()

double EvtTwoBodyVertex::mA ( ) const
inline

Definition at line 35 of file EvtTwoBodyVertex.hh.

35{ return _kine.mA(); }
double mA() const

Referenced by EvtMassAmp::amplitude(), EvtTwoBodyVertex(), and print().

◆ mAB()

double EvtTwoBodyVertex::mAB ( ) const
inline

Definition at line 37 of file EvtTwoBodyVertex.hh.

37{ return _kine.mAB(); }
double mAB() const

Referenced by EvtMassAmp::amplitude(), EvtTwoBodyVertex(), print(), and widthFactor().

◆ mB()

double EvtTwoBodyVertex::mB ( ) const
inline

Definition at line 36 of file EvtTwoBodyVertex.hh.

36{ return _kine.mB(); }
double mB() const

Referenced by EvtMassAmp::amplitude(), EvtTwoBodyVertex(), and print().

◆ pD()

double EvtTwoBodyVertex::pD ( ) const
inline

Definition at line 38 of file EvtTwoBodyVertex.hh.

38{ return _p0; }

Referenced by EvtMassAmp::amplitude(), EvtDalitzReso::evaluate(), and EvtAbsLineShape::getRandMass().

◆ phaseSpaceFactor()

double EvtTwoBodyVertex::phaseSpaceFactor ( EvtTwoBodyKine  x,
EvtTwoBodyKine::Index  i 
) const

Definition at line 69 of file EvtTwoBodyVertex.cc.

70{
71 double p1 = x.p(i);
72 double factor = pow(p1,_LL);
73 return factor;
74}

Referenced by EvtMassAmp::amplitude(), and EvtPto3PAmp::numerator().

◆ print()

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

Definition at line 90 of file EvtTwoBodyVertex.cc.

91{
92 os << " mA = " << mA() << endl;
93 os << " mB = " << mB() << endl;
94 os << "mAB = " << mAB() << endl;
95 os << " L = " << _LL << endl;
96 os << " p0 = " << _p0 << endl;
97}

◆ set_f()

void EvtTwoBodyVertex::set_f ( double  R)

Definition at line 50 of file EvtTwoBodyVertex.cc.

51{
52 if(_f) delete _f;
53 _f = new EvtBlattWeisskopf(_LL,R,_p0);
54}

Referenced by EvtRelBreitWignerBarrierFact::getRandMass(), EvtDalitzReso::set_fb(), EvtPto3PAmp::set_fb(), EvtDalitzReso::set_fd(), and EvtPto3PAmp::set_fd().

◆ widthFactor()

double EvtTwoBodyVertex::widthFactor ( EvtTwoBodyKine  x) const

Definition at line 57 of file EvtTwoBodyVertex.cc.

58{
59 assert(_p0 > 0.);
60
61 double p1 = x.p();
62 double ff = formFactor(x);
63 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
64
65 return factor;
66}
double formFactor(EvtTwoBodyKine x) const

Referenced by EvtPto3PAmp::amplitude(), EvtMassAmp::amplitude(), and EvtDalitzReso::evaluate().


The documentation for this class was generated from the following files: