/******************************************************************************* * Project: BaBar detector at the SLAC PEP-II B-factory * Package: EvtGenBase * File: $Id: EvtTwoBodyKine.hh,v 1.6 2004/08/06 06:08:26 bartoldu Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech *******************************************************************************/ // Descriptions of the kinematics of a two-body decay. #ifndef EVT_TWO_BODY_KINE_HH #define EVT_TWO_BODY_KINE_HH #include class EvtTwoBodyKine { public: enum Index {A,B,AB}; EvtTwoBodyKine(); EvtTwoBodyKine(double mA, double mB, double mAB); EvtTwoBodyKine(const EvtTwoBodyKine& other); ~EvtTwoBodyKine(); // Accessors inline double mA() const { return _mA; } inline double mB() const { return _mB; } inline double mAB() const { return _mAB; } double m(Index i) const; // Momentum of the other two particles in the // rest-frame of particle i. double p(Index i = AB) const; // Energy of particle i in the rest frame of particle j double e(Index i, Index j) const; void print(std::ostream& os) const; private: double _mA; double _mB; double _mAB; }; std::ostream& operator<<(std::ostream& os, const EvtTwoBodyKine& p); #endif