evtgen is hosted by Hepforge, IPPP Durham
EvtGen  2.0.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
EvtTwoBodyKine.hh
Go to the documentation of this file.
1 
2 /***********************************************************************
3 * Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
4 * *
5 * This file is part of EvtGen. *
6 * *
7 * EvtGen is free software: you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation, either version 3 of the License, or *
10 * (at your option) any later version. *
11 * *
12 * EvtGen is distributed in the hope that it will be useful, *
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 * GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU General Public License *
18 * along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
19 ***********************************************************************/
20 
21 #ifndef EVT_TWO_BODY_KINE_HH
22 #define EVT_TWO_BODY_KINE_HH
23 
24 #include <iostream>
25 
26 // Descriptions of the kinematics of a two-body decay.
27 
29  public:
30  enum Index
31  {
32  A,
33  B,
35  };
36 
38  EvtTwoBodyKine( double mA, double mB, double mAB );
39 
40  // Accessors
41 
42  inline double mA() const { return _mA; }
43  inline double mB() const { return _mB; }
44  inline double mAB() const { return _mAB; }
45  double m( Index i ) const;
46 
47  // Momentum of the other two particles in the
48  // rest-frame of particle i.
49 
50  double p( Index i = AB ) const;
51 
52  // Energy of particle i in the rest frame of particle j
53 
54  double e( Index i, Index j ) const;
55 
56  void print( std::ostream& os ) const;
57 
58  private:
59  double _mA;
60  double _mB;
61  double _mAB;
62 };
63 
64 std::ostream& operator<<( std::ostream& os, const EvtTwoBodyKine& p );
65 
66 #endif
void print(std::ostream &os) const
double mAB() const
double mA() const
double mB() const
double m(Index i) const
std::ostream & operator<<(std::ostream &os, const EvtTwoBodyKine &p)
double e(Index i, Index j) const
double p(Index i=AB) const