#include <EvtTwoBodyKine.hh>
Public Types | |
enum | Index { A, B, AB } |
Public Member Functions | |
double | e (Index i, Index j) const |
EvtTwoBodyKine (const EvtTwoBodyKine &other) | |
EvtTwoBodyKine (double mA, double mB, double mAB) | |
EvtTwoBodyKine () | |
double | m (Index i) const |
double | mA () const |
double | mAB () const |
double | mB () const |
double | p (Index i=AB) const |
void | print (std::ostream &os) const |
~EvtTwoBodyKine () | |
Private Attributes | |
double | _mA |
double | _mAB |
double | _mB |
|
00021 {A,B,AB};
|
|
|
|
00025 : _mA(mA), _mB(mB), _mAB(mAB) 00026 { 00027 if(mAB < mA + mB) { 00028 00029 report(INFO,"EvtGen") << mAB << " < " << mA << " + " << mB << endl; 00030 assert(0); 00031 } 00032 }
|
|
|
|
00039 {}
|
|
00082 { 00083 double ret = m(i); 00084 if(i != j) { 00085 00086 double pD = p(j); 00087 ret = sqrt(ret*ret + pD*pD); 00088 } 00089 return ret; 00090 }
|
|
00043 { 00044 double ret = _mAB; 00045 if(A == i) ret = _mA; 00046 else 00047 if(B == i) ret = _mB; 00048 00049 return ret; 00050 }
|
|
00030 { return _mA; }
|
|
00032 { return _mAB; }
|
|
00031 { return _mB; }
|
|
00054 { 00055 double p0 = 0.; 00056 00057 if(i == AB) { 00058 00059 double x = _mAB*_mAB - _mA*_mA - _mB*_mB; 00060 double y = 2*_mA*_mB; 00061 p0 = sqrt(x*x - y*y)/2./_mAB; 00062 } 00063 else 00064 if(i == A) { 00065 00066 double x = _mA*_mA - _mAB*_mAB - _mB*_mB; 00067 double y = 2*_mAB*_mB; 00068 p0 = sqrt(x*x - y*y)/2./_mA; 00069 } 00070 else { 00071 00072 double x = _mB*_mB - _mAB*_mAB - _mA*_mA; 00073 double y = 2*_mAB*_mA; 00074 p0 = sqrt(x*x - y*y)/2./_mB; 00075 } 00076 00077 return p0; 00078 }
|
|
00094 { 00095 os << " mA = " << _mA << endl; 00096 os << " mB = " << _mB << endl; 00097 os << "mAB = " << _mAB << endl; 00098 }
|
|
|
|
|
|
|