Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

EvtTwoBodyKine Class Reference

#include <EvtTwoBodyKine.hh>

List of all members.

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


Member Enumeration Documentation

enum EvtTwoBodyKine::Index
 

Enumeration values:
A 
B 
AB 
00021 {A,B,AB}; 


Constructor & Destructor Documentation

EvtTwoBodyKine::EvtTwoBodyKine  ) 
 

00021   : _mA(0.), _mB(0.), _mAB(0.)
00022 {}

EvtTwoBodyKine::EvtTwoBodyKine double  mA,
double  mB,
double  mAB
 

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 }

EvtTwoBodyKine::EvtTwoBodyKine const EvtTwoBodyKine other  ) 
 

00035   : _mA(other._mA), _mB(other._mB), _mAB(other._mAB)
00036 {}

EvtTwoBodyKine::~EvtTwoBodyKine  ) 
 

00039 {}


Member Function Documentation

double EvtTwoBodyKine::e Index  i,
Index  j
const
 

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 }

double EvtTwoBodyKine::m Index  i  )  const
 

00043 {
00044   double ret = _mAB;
00045   if(A == i) ret = _mA;
00046   else
00047     if(B == i) ret = _mB;
00048   
00049   return ret;
00050 }

double EvtTwoBodyKine::mA  )  const [inline]
 

00030 { return _mA; }

double EvtTwoBodyKine::mAB  )  const [inline]
 

00032 { return _mAB; } 

double EvtTwoBodyKine::mB  )  const [inline]
 

00031 { return _mB; }

double EvtTwoBodyKine::p Index  i = AB  )  const
 

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 }

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

00094 {
00095   os << " mA = " << _mA << endl;
00096   os << " mB = " << _mB << endl;
00097   os << "mAB = " << _mAB << endl;
00098 }


Member Data Documentation

double EvtTwoBodyKine::_mA [private]
 

double EvtTwoBodyKine::_mAB [private]
 

double EvtTwoBodyKine::_mB [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 16:12:29 2011 for BOSS6.5.5 by  doxygen 1.3.9.1