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

#include <EvtTwoBodyKine.hh>

Public Types

enum  Index { A , B , AB }
 

Public Member Functions

 EvtTwoBodyKine ()
 
 EvtTwoBodyKine (double mA, double mB, double mAB)
 
 EvtTwoBodyKine (const EvtTwoBodyKine &other)
 
 ~EvtTwoBodyKine ()
 
double mA () const
 
double mB () const
 
double mAB () const
 
double m (Index i) const
 
double p (Index i=AB) const
 
double e (Index i, Index j) const
 
void print (std::ostream &os) const
 

Detailed Description

Definition at line 17 of file EvtTwoBodyKine.hh.

Member Enumeration Documentation

◆ Index

Enumerator
AB 

Definition at line 21 of file EvtTwoBodyKine.hh.

Constructor & Destructor Documentation

◆ EvtTwoBodyKine() [1/3]

EvtTwoBodyKine::EvtTwoBodyKine ( )

Definition at line 20 of file EvtTwoBodyKine.cc.

21 : _mA(0.), _mB(0.), _mAB(0.)
22{}

◆ EvtTwoBodyKine() [2/3]

EvtTwoBodyKine::EvtTwoBodyKine ( double  mA,
double  mB,
double  mAB 
)

Definition at line 24 of file EvtTwoBodyKine.cc.

25 : _mA(mA), _mB(mB), _mAB(mAB)
26{
27 if(mAB < mA + mB) {
28
29 report(INFO,"EvtGen") << mAB << " < " << mA << " + " << mB << endl;
30 assert(0);
31 }
32}
ostream & report(Severity severity, const char *facility)
Definition: EvtReport.cc:36
@ INFO
Definition: EvtReport.hh:52
double mB() const
double mAB() const
double mA() const

◆ EvtTwoBodyKine() [3/3]

EvtTwoBodyKine::EvtTwoBodyKine ( const EvtTwoBodyKine other)

Definition at line 34 of file EvtTwoBodyKine.cc.

35 : _mA(other._mA), _mB(other._mB), _mAB(other._mAB)
36{}
Index other(Index i, Index j)
Definition: EvtCyclic3.cc:118

◆ ~EvtTwoBodyKine()

EvtTwoBodyKine::~EvtTwoBodyKine ( )

Definition at line 38 of file EvtTwoBodyKine.cc.

39{}

Member Function Documentation

◆ e()

double EvtTwoBodyKine::e ( Index  i,
Index  j 
) const

Definition at line 81 of file EvtTwoBodyKine.cc.

82{
83 double ret = m(i);
84 if(i != j) {
85
86 double pD = p(j);
87 ret = sqrt(ret*ret + pD*pD);
88 }
89 return ret;
90}
double m(Index i) const
double p(Index i=AB) const

Referenced by EvtDalitzPlot::qMax(), and EvtDalitzPlot::qMin().

◆ m()

double EvtTwoBodyKine::m ( Index  i) const

Definition at line 42 of file EvtTwoBodyKine.cc.

43{
44 double ret = _mAB;
45 if(A == i) ret = _mA;
46 else
47 if(B == i) ret = _mB;
48
49 return ret;
50}

Referenced by e().

◆ mA()

double EvtTwoBodyKine::mA ( ) const
inline

Definition at line 30 of file EvtTwoBodyKine.hh.

30{ return _mA; }

Referenced by EvtTwoBodyKine(), and EvtTwoBodyVertex::mA().

◆ mAB()

double EvtTwoBodyKine::mAB ( ) const
inline

Definition at line 32 of file EvtTwoBodyKine.hh.

32{ return _mAB; }

Referenced by EvtTwoBodyKine(), and EvtTwoBodyVertex::mAB().

◆ mB()

double EvtTwoBodyKine::mB ( ) const
inline

Definition at line 31 of file EvtTwoBodyKine.hh.

31{ return _mB; }

Referenced by EvtTwoBodyKine(), and EvtTwoBodyVertex::mB().

◆ p()

double EvtTwoBodyKine::p ( Index  i = AB) const

Definition at line 53 of file EvtTwoBodyKine.cc.

54{
55 double p0 = 0.;
56
57 if(i == AB) {
58
59 double x = _mAB*_mAB - _mA*_mA - _mB*_mB;
60 double y = 2*_mA*_mB;
61 p0 = sqrt(x*x - y*y)/2./_mAB;
62 }
63 else
64 if(i == A) {
65
66 double x = _mA*_mA - _mAB*_mAB - _mB*_mB;
67 double y = 2*_mAB*_mB;
68 p0 = sqrt(x*x - y*y)/2./_mA;
69 }
70 else {
71
72 double x = _mB*_mB - _mAB*_mAB - _mA*_mA;
73 double y = 2*_mAB*_mA;
74 p0 = sqrt(x*x - y*y)/2./_mB;
75 }
76
77 return p0;
78}
Double_t x[10]

Referenced by EvtMassAmp::amplitude(), e(), EvtDalitzReso::evaluate(), EvtTwoBodyVertex::EvtTwoBodyVertex(), EvtDalitzPlot::qMax(), and EvtDalitzPlot::qMin().

◆ print()

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

Definition at line 93 of file EvtTwoBodyKine.cc.

94{
95 os << " mA = " << _mA << endl;
96 os << " mB = " << _mB << endl;
97 os << "mAB = " << _mAB << endl;
98}

Referenced by operator<<().


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