BOSS 8.0.0
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 20 of file EvtTwoBodyKine.hh.

Constructor & Destructor Documentation

◆ EvtTwoBodyKine() [1/3]

EvtTwoBodyKine::EvtTwoBodyKine ( )

Definition at line 19 of file EvtTwoBodyKine.cc.

19: _mA( 0. ), _mB( 0. ), _mAB( 0. ) {}

Referenced by EvtTwoBodyKine().

◆ EvtTwoBodyKine() [2/3]

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

Definition at line 21 of file EvtTwoBodyKine.cc.

22 : _mA( mA ), _mB( mB ), _mAB( mAB ) {
23 if ( mAB < mA + mB )
24 {
25
26 report( INFO, "EvtGen" ) << mAB << " < " << mA << " + " << mB << endl;
27 assert( 0 );
28 }
29}
ostream & report(Severity severity, const char *facility)
Definition EvtReport.cc:34
@ 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 31 of file EvtTwoBodyKine.cc.

32 : _mA( other._mA ), _mB( other._mB ), _mAB( other._mAB ) {}
Index other(Index i, Index j)

◆ ~EvtTwoBodyKine()

EvtTwoBodyKine::~EvtTwoBodyKine ( )

Definition at line 34 of file EvtTwoBodyKine.cc.

34{}

Member Function Documentation

◆ e()

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

Definition at line 72 of file EvtTwoBodyKine.cc.

72 {
73 double ret = m( i );
74 if ( i != j )
75 {
76
77 double pD = p( j );
78 ret = sqrt( ret * ret + pD * pD );
79 }
80 return ret;
81}
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 36 of file EvtTwoBodyKine.cc.

36 {
37 double ret = _mAB;
38 if ( A == i ) ret = _mA;
39 else if ( B == i ) ret = _mB;
40
41 return ret;
42}

Referenced by e().

◆ mA()

double EvtTwoBodyKine::mA ( ) const
inline

Definition at line 29 of file EvtTwoBodyKine.hh.

29{ return _mA; }

Referenced by EvtTwoBodyKine().

◆ mAB()

double EvtTwoBodyKine::mAB ( ) const
inline

Definition at line 31 of file EvtTwoBodyKine.hh.

31{ return _mAB; }

Referenced by EvtTwoBodyKine().

◆ mB()

double EvtTwoBodyKine::mB ( ) const
inline

Definition at line 30 of file EvtTwoBodyKine.hh.

30{ return _mB; }

Referenced by EvtTwoBodyKine().

◆ p()

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

Definition at line 44 of file EvtTwoBodyKine.cc.

44 {
45 double p0 = 0.;
46
47 if ( i == AB )
48 {
49
50 double x = _mAB * _mAB - _mA * _mA - _mB * _mB;
51 double y = 2 * _mA * _mB;
52 p0 = sqrt( x * x - y * y ) / 2. / _mAB;
53 }
54 else if ( i == A )
55 {
56
57 double x = _mA * _mA - _mAB * _mAB - _mB * _mB;
58 double y = 2 * _mAB * _mB;
59 p0 = sqrt( x * x - y * y ) / 2. / _mA;
60 }
61 else
62 {
63
64 double x = _mB * _mB - _mAB * _mAB - _mA * _mA;
65 double y = 2 * _mAB * _mA;
66 p0 = sqrt( x * x - y * y ) / 2. / _mB;
67 }
68
69 return p0;
70}
Double_t x[10]

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

◆ print()

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

Definition at line 83 of file EvtTwoBodyKine.cc.

83 {
84 os << " mA = " << _mA << endl;
85 os << " mB = " << _mB << endl;
86 os << "mAB = " << _mAB << endl;
87}

Referenced by operator<<().


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