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.
EvtKine.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 EVTKINE_HH
22 #define EVTKINE_HH
23 
24 class EvtVector4R;
25 class EvtComplex;
26 
27 double EvtDecayAngle( const EvtVector4R&, const EvtVector4R&, const EvtVector4R& );
28 
29 double EvtDecayAngleChi( const EvtVector4R&, const EvtVector4R&,
30  const EvtVector4R&, const EvtVector4R&,
31  const EvtVector4R& );
32 
33 //
34 // This routine calculates the cosine of the angle between
35 // the normal of the decay plane and the flight direction of particle q
36 // in the parent frame.
37 //
38 double EvtDecayPlaneNormalAngle( const EvtVector4R& p, const EvtVector4R& q,
39  const EvtVector4R& d1, const EvtVector4R& d2 );
40 
41 // Added by AJB
42 //
43 // Calculate phi (between 0 and 2 pi) of the daughter given the 4-momentum of
44 // the grandparent, parent, resonance and the daughter. g, p, q and d need to
45 // be in the same rest frame. Note that for the first level of the tree there
46 // is no grandparent and thus <0,0,0,1> should be passed in for g. When there
47 // is no parent the angles need to be calculated by simply by calculating polar
48 // and azymuthal angles in the rest frame of the resonance (since this will
49 // generally be the root particle and is generally at rest the polar and
50 // azymuthal angels can simply be calculated.
51 //
52 double EvtDecayAnglePhi( const EvtVector4R& g, const EvtVector4R& p,
53  const EvtVector4R& q, const EvtVector4R& d );
54 
55 // Wigner big-D function in Jackson convention
56 //
57 // XXX NOTE XXX
58 // - EvtDecayAngle returns the cos \theta and EvtdFunction requires theta
59 // - In EvtdFunction j m1 and m2 are really 2 * j, 2 * m1, 2*m2 to deal with
60 // spin 1/2 particles
61 //
62 EvtComplex wignerD( int j, int m1, int m2, double phi, double theta,
63  double gamma );
64 
65 //
66 // Function to calculate momentum of daughters in two body decay in mothers
67 // rest frame.
68 double twoBodyMomentum( const double M, const double m1, const double m2 );
69 
70 #endif
double EvtDecayAngleChi(const EvtVector4R &, const EvtVector4R &, const EvtVector4R &, const EvtVector4R &, const EvtVector4R &)
Definition: EvtKine.cpp:49
double twoBodyMomentum(const double M, const double m1, const double m2)
Definition: EvtKine.cpp:135
double EvtDecayAnglePhi(const EvtVector4R &g, const EvtVector4R &p, const EvtVector4R &q, const EvtVector4R &d)
Definition: EvtKine.cpp:106
double EvtDecayAngle(const EvtVector4R &, const EvtVector4R &, const EvtVector4R &)
Definition: EvtKine.cpp:33
double EvtDecayPlaneNormalAngle(const EvtVector4R &p, const EvtVector4R &q, const EvtVector4R &d1, const EvtVector4R &d2)
Definition: EvtKine.cpp:91
EvtComplex wignerD(int j, int m1, int m2, double phi, double theta, double gamma)
Definition: EvtKine.cpp:127