BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtDalitzPoint Class Reference

#include <EvtDalitzPoint.hh>

Public Member Functions

 EvtDalitzPoint ()
 EvtDalitzPoint (double mA, double mB, double mC, double qAB, double qBC, double qCA)
 EvtDalitzPoint (double mA, double mB, double mC, EvtCyclic3::Pair i, double qres, double qhel, double qsum)
 EvtDalitzPoint (const EvtDalitzPlot &, const EvtDalitzCoord &)
 EvtDalitzPoint (const EvtDalitzPoint &other)
 ~EvtDalitzPoint ()
EvtDalitzCoord getDalitzPoint (EvtCyclic3::Pair i, EvtCyclic3::Pair j) const
EvtDalitzPlot getDalitzPlot () const
double q (EvtCyclic3::Pair) const
double bigM () const
double m (EvtCyclic3::Index) const
double qres (EvtCyclic3::Pair i) const
double qhel (EvtCyclic3::Pair i) const
double qsum () const
double qMin (EvtCyclic3::Pair i, EvtCyclic3::Pair j) const
double qMax (EvtCyclic3::Pair i, EvtCyclic3::Pair j) const
double pp (EvtCyclic3::Index i, EvtCyclic3::Index j) const
double e (EvtCyclic3::Index i, EvtCyclic3::Pair j) const
double p (EvtCyclic3::Index i, EvtCyclic3::Pair j) const
double cosTh (EvtCyclic3::Pair pairAng, EvtCyclic3::Pair pairRes) const
bool isValid () const
void print () const

Detailed Description

Definition at line 27 of file EvtDalitzPoint.hh.

Constructor & Destructor Documentation

◆ EvtDalitzPoint() [1/5]

EvtDalitzPoint::EvtDalitzPoint ( )

Definition at line 18 of file EvtDalitzPoint.cc.

19 : _mA( -1. ), _mB( -1. ), _mC( -1. ), _qAB( -1. ), _qBC( -1. ), _qCA( -1. ) {}

Referenced by EvtDalitzPoint().

◆ EvtDalitzPoint() [2/5]

EvtDalitzPoint::EvtDalitzPoint ( double mA,
double mB,
double mC,
double qAB,
double qBC,
double qCA )

Definition at line 21 of file EvtDalitzPoint.cc.

23 : _mA( mA ), _mB( mB ), _mC( mC ), _qAB( qAB ), _qBC( qBC ), _qCA( qCA ) {}

◆ EvtDalitzPoint() [3/5]

EvtDalitzPoint::EvtDalitzPoint ( double mA,
double mB,
double mC,
EvtCyclic3::Pair i,
double qres,
double qhel,
double qsum )

Definition at line 27 of file EvtDalitzPoint.cc.

29 : _mA( mA ), _mB( mB ), _mC( mC ) {
30 double qi = qres + qsum / 3.;
31 double qj = -qres / 2. + qhel + qsum / 3.;
32 double qk = -qres / 2. - qhel + qsum / 3.;
33
34 if ( i == AB )
35 {
36 _qAB = qi;
37 _qBC = qj;
38 _qCA = qk;
39 }
40 else if ( i == BC )
41 {
42 _qAB = qk;
43 _qBC = qi;
44 _qCA = qj;
45 }
46 else if ( i == CA )
47 {
48 _qAB = qj;
49 _qBC = qk;
50 _qCA = qi;
51 }
52}
double qsum() const
double qhel(EvtCyclic3::Pair i) const
double qres(EvtCyclic3::Pair i) const

◆ EvtDalitzPoint() [4/5]

EvtDalitzPoint::EvtDalitzPoint ( const EvtDalitzPlot & dp,
const EvtDalitzCoord & x )

Definition at line 54 of file EvtDalitzPoint.cc.

55 : _mA( dp.m( A ) ), _mB( dp.m( B ) ), _mC( dp.m( C ) ) {
56 if ( x.pair1() == AB ) _qAB = x.q1();
57 else if ( x.pair2() == AB ) _qAB = x.q2();
58 else _qAB = dp.sum() - x.q1() - x.q2();
59
60 if ( x.pair1() == BC ) _qBC = x.q1();
61 else if ( x.pair2() == BC ) _qBC = x.q2();
62 else _qBC = dp.sum() - x.q1() - x.q2();
63
64 if ( x.pair1() == CA ) _qCA = x.q1();
65 else if ( x.pair2() == CA ) _qCA = x.q2();
66 else _qCA = dp.sum() - x.q1() - x.q2();
67}
Double_t x[10]
double sum() const
double m(EvtCyclic3::Index i) const

◆ EvtDalitzPoint() [5/5]

EvtDalitzPoint::EvtDalitzPoint ( const EvtDalitzPoint & other)

Definition at line 69 of file EvtDalitzPoint.cc.

70 : _mA( other._mA )
71 , _mB( other._mB )
72 , _mC( other._mC )
73 , _qAB( other._qAB )
74 , _qBC( other._qBC )
75 , _qCA( other._qCA ) {}
Index other(Index i, Index j)

◆ ~EvtDalitzPoint()

EvtDalitzPoint::~EvtDalitzPoint ( )

Definition at line 77 of file EvtDalitzPoint.cc.

77{}

Member Function Documentation

◆ bigM()

double EvtDalitzPoint::bigM ( ) const

Definition at line 163 of file EvtDalitzPoint.cc.

163 {
164 return sqrt( _qAB + _qBC + _qCA - _mA * _mA - _mB * _mB - _mC * _mC );
165}

Referenced by getDalitzPlot(), and isValid().

◆ cosTh()

double EvtDalitzPoint::cosTh ( EvtCyclic3::Pair pairAng,
EvtCyclic3::Pair pairRes ) const

Definition at line 132 of file EvtDalitzPoint.cc.

132 {
133 EvtDalitzPlot dp = getDalitzPlot();
134 return dp.cosTh( pairAng, q( pairAng ), pairRes, q( pairRes ) );
135}
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
Definition KKsem.h:33
double cosTh(EvtCyclic3::Pair i1, double q1, EvtCyclic3::Pair i2, double q2) const
EvtDalitzPlot getDalitzPlot() const

◆ e()

double EvtDalitzPoint::e ( EvtCyclic3::Index i,
EvtCyclic3::Pair j ) const

Definition at line 122 of file EvtDalitzPoint.cc.

122 {
123 EvtDalitzPlot dp = getDalitzPlot();
124 return dp.e( i, j, q( j ) );
125}
double e(EvtCyclic3::Index i, EvtCyclic3::Pair j, double q) const

◆ getDalitzPlot()

EvtDalitzPlot EvtDalitzPoint::getDalitzPlot ( ) const

Definition at line 141 of file EvtDalitzPoint.cc.

141 {
142 return EvtDalitzPlot( _mA, _mB, _mC, bigM() );
143}
double bigM() const

Referenced by cosTh(), e(), isValid(), p(), print(), qMax(), and qMin().

◆ getDalitzPoint()

EvtDalitzCoord EvtDalitzPoint::getDalitzPoint ( EvtCyclic3::Pair i,
EvtCyclic3::Pair j ) const

Definition at line 137 of file EvtDalitzPoint.cc.

137 {
138 return EvtDalitzCoord( i, q( i ), j, q( j ) );
139}

◆ isValid()

bool EvtDalitzPoint::isValid ( ) const

Definition at line 145 of file EvtDalitzPoint.cc.

145 {
146 // Check masses
147
148 double M = bigM();
149 if ( _mA < 0 || _mB < 0 || _mC < 0 || M <= 0 ) return false;
150 if ( M < _mA + _mB + _mC ) return false;
151
152 // Check that first coordinate is within absolute limits
153
154 bool inside = false;
155 EvtDalitzPlot dp = getDalitzPlot();
156
157 if ( dp.qAbsMin( AB ) <= _qAB && _qAB <= dp.qAbsMax( AB ) )
158 if ( qMin( BC, AB ) <= _qBC && _qBC <= qMax( BC, AB ) ) inside = true;
159
160 return inside;
161}
double qAbsMin(EvtCyclic3::Pair i) const
double qAbsMax(EvtCyclic3::Pair i) const
double qMin(EvtCyclic3::Pair i, EvtCyclic3::Pair j) const
double qMax(EvtCyclic3::Pair i, EvtCyclic3::Pair j) const

Referenced by EvtDalitzResPdf::randomPoint().

◆ m()

double EvtDalitzPoint::m ( EvtCyclic3::Index i) const

Definition at line 87 of file EvtDalitzPoint.cc.

87 {
88 double ret = _mA;
89 if ( B == i ) ret = _mB;
90 else if ( C == i ) ret = _mC;
91
92 return ret;
93}

Referenced by EvtDalitzPoint(), and pp().

◆ p()

double EvtDalitzPoint::p ( EvtCyclic3::Index i,
EvtCyclic3::Pair j ) const

Definition at line 127 of file EvtDalitzPoint.cc.

127 {
128 EvtDalitzPlot dp = getDalitzPlot();
129 return dp.p( i, j, q( j ) );
130}
double p(EvtCyclic3::Index i, EvtCyclic3::Pair j, double q) const

◆ pp()

double EvtDalitzPoint::pp ( EvtCyclic3::Index i,
EvtCyclic3::Index j ) const

Definition at line 117 of file EvtDalitzPoint.cc.

117 {
118 if ( i == j ) return m( i ) * m( i );
119 else return ( q( combine( i, j ) ) - m( i ) * m( i ) - m( j ) * m( j ) ) / 2.;
120}
double m(EvtCyclic3::Index) const
Pair combine(Index i, Index j)

◆ print()

void EvtDalitzPoint::print ( ) const

Definition at line 167 of file EvtDalitzPoint.cc.

167 {
169 printf( "%f %f %f\n", _qAB, _qBC, _qCA );
170}
void print() const

◆ q()

double EvtDalitzPoint::q ( EvtCyclic3::Pair i) const

Definition at line 79 of file EvtDalitzPoint.cc.

79 {
80 double ret = _qAB;
81 if ( BC == i ) ret = _qBC;
82 else if ( CA == i ) ret = _qCA;
83
84 return ret;
85}

◆ qhel()

double EvtDalitzPoint::qhel ( EvtCyclic3::Pair i) const

Definition at line 100 of file EvtDalitzPoint.cc.

100 {
101 Pair j = next( i );
102 Pair k = prev( i );
103 return ( q( j ) - q( k ) ) / 2.;
104}
Index next(Index i)
Index prev(Index i)
Definition EvtCyclic3.cc:94

Referenced by EvtDalitzPoint().

◆ qMax()

double EvtDalitzPoint::qMax ( EvtCyclic3::Pair i,
EvtCyclic3::Pair j ) const

Definition at line 112 of file EvtDalitzPoint.cc.

112 {
113 EvtDalitzPlot dp = getDalitzPlot();
114 return dp.qMax( i, j, q( j ) );
115}
double qMax(EvtCyclic3::Pair i, EvtCyclic3::Pair j, double q) const

Referenced by isValid().

◆ qMin()

double EvtDalitzPoint::qMin ( EvtCyclic3::Pair i,
EvtCyclic3::Pair j ) const

Definition at line 107 of file EvtDalitzPoint.cc.

107 {
108 EvtDalitzPlot dp = getDalitzPlot();
109 return dp.qMin( i, j, q( j ) );
110}
double qMin(EvtCyclic3::Pair i, EvtCyclic3::Pair j, double q) const

Referenced by isValid().

◆ qres()

double EvtDalitzPoint::qres ( EvtCyclic3::Pair i) const

Definition at line 97 of file EvtDalitzPoint.cc.

97 {
98 return ( 2. * q( i ) - q( EvtCyclic3::prev( i ) ) - q( EvtCyclic3::next( i ) ) ) / 3.;
99}

Referenced by EvtDalitzPoint().

◆ qsum()

double EvtDalitzPoint::qsum ( ) const

Definition at line 105 of file EvtDalitzPoint.cc.

105{ return _qAB + _qBC + _qCA; }

Referenced by EvtDalitzPoint().


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